diff --git a/pom.xml b/pom.xml index f5523fa..6974927 100644 --- a/pom.xml +++ b/pom.xml @@ -157,6 +157,16 @@ spring-boot-starter-aop 3.2.1 + + javax.mail + mail + 1.4.7 + + + com.microsoft.ews-java-api + ews-java-api + 2.0 + diff --git a/src/main/java/com/wms/WmsApplication.java b/src/main/java/com/wms/WmsApplication.java index 0370a6e..db6e685 100644 --- a/src/main/java/com/wms/WmsApplication.java +++ b/src/main/java/com/wms/WmsApplication.java @@ -1,5 +1,6 @@ package com.wms; +import com.wms.utils.MailUtils; import org.springframework.boot.ApplicationArguments; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; diff --git a/src/main/java/com/wms/constants/enums/ConfigMapKeyEnum.java b/src/main/java/com/wms/constants/enums/ConfigMapKeyEnum.java index d9cf23c..11f85d0 100644 --- a/src/main/java/com/wms/constants/enums/ConfigMapKeyEnum.java +++ b/src/main/java/com/wms/constants/enums/ConfigMapKeyEnum.java @@ -2,7 +2,8 @@ package com.wms.constants.enums; public enum ConfigMapKeyEnum { MAX_WEIGHT("MAX_WEIGHT"), - URL_WCS_TASK("URL_WCS_TASK"); + URL_WCS_TASK("URL_WCS_TASK"), + URL_NEW_DESTINATION("URL_NEW_DESTINATION"); private final String configKey; ConfigMapKeyEnum(String configKey) { this.configKey = configKey; diff --git a/src/main/java/com/wms/constants/enums/WmsTaskStatus.java b/src/main/java/com/wms/constants/enums/WmsTaskStatus.java index ac39eab..127e32f 100644 --- a/src/main/java/com/wms/constants/enums/WmsTaskStatus.java +++ b/src/main/java/com/wms/constants/enums/WmsTaskStatus.java @@ -4,6 +4,7 @@ package com.wms.constants.enums; * Wms任务状态的枚举 */ public enum WmsTaskStatus { + DUPLICATE(-2, "重复入库"), TEMP(-1, "暂存任务"), NEW(0, "任务新建,待下发"), WAIT(1, "任务已下发"), diff --git a/src/main/java/com/wms/controller/JobComponent.java b/src/main/java/com/wms/controller/JobComponent.java index a6f3e9b..ebe8075 100644 --- a/src/main/java/com/wms/controller/JobComponent.java +++ b/src/main/java/com/wms/controller/JobComponent.java @@ -7,6 +7,7 @@ import com.wms.constants.enums.*; import com.wms.entity.app.ResponseEntity; import com.wms.entity.app.dto.TaskDto; import com.wms.entity.app.wcs.WcsTaskRequest; +import com.wms.entity.table.Stand; import com.wms.entity.table.Task; import com.wms.entity.table.WmsLog; import com.wms.service.*; @@ -49,14 +50,124 @@ public class JobComponent { * 日志服务 */ private final LogService logService; + /** + * 站台服务 + */ + private final StandService standService; /** * 向Wcs下发任务 * 每2秒执行一次 */ - @Scheduled(fixedDelay = 2000) +// @Scheduled(fixedDelay = 2000) public void executeTasks() { + // 发送正常任务 + sendCommonTask(); + // 针对重复入库的任务,发送新的目的地 + solveDuplicateTask(); + } + + /** + * 执行备料任务的轮询,处理站台任务 + */ +// @Scheduled(fixedDelay = 2000) + public void checkForOrders() { + // 轮询工作站台,判断是否需要下发任务 + List stands = standService.list(new LambdaQueryWrapper() + .eq(Stand::getStandType, 2)); + for (Stand workStation : stands) { + // TODO 判断当前站台还有没有未完成的任务 + // 1.有未完成的任务,继续做未完成的 + doTask(workStation.getStandId()); + // 2.没有任务,生成新的任务 + createTask(workStation.getStandId()); + } + } + + /** + * 做备料任务 + */ + private void doTask(String workStationId) { + // TODO 生成出库任务---针对未完成的任务 + // 1. 判断堵塞阈值,超过则不生成任务 + // 2. 已经出库的物料不再重复下发任务 + // 3. 生成某个箱子的出库任务后,对应箱子的所有物料添加进出库列表 + } + + /** + * 做备料任务 + */ + private void createTask(String workStationId) { + // TODO 联表查询 要加一个一个order,确保序号靠前的工单先做 + // 装载机机型 工站配置-工作站台+工位+机型+大工位+开工时间调整-----DBS-顺序-工单+开工时间-----工单-工单+工位+物料号+数量 + // 平地机机型 + } + + +// /** +// * 每天查询一次是否有过期的库存 +// * 每天晚上8点执行一次 +// */ +//// @Scheduled(cron = "0 0 20 * * ?") +// public void detectOutOfDateStock() { +// logger.info("执行定时任务:查询过期库存"); +// List outOfDateStocks = stockService.selStockOutOfDate(); +// if (outOfDateStocks.size() > 0) { +// logger.info("过期库存数量不为0,准备更新过期库存"); +// for (StockDto outOfDateStock : outOfDateStocks) { +// try { +// outOfDateStock.setGoodsStatus(GoodsStatus.OVERDUE.getCode()); +// stockService.modifyStock(outOfDateStock); +// logger.info("过期库存更新成功"); +// } catch (Exception e) { +// logger.error("过期库存更新异常:{}", e.getMessage()); +// } +// } +// } +// } +// +// /** +// * 每天查询一次是否有入库后长期未使用的库存 +// * 每天晚上9点执行一次 +// */ +//// @Scheduled(cron = "0 0 21 * * ?") +// public void detectStockLongTimeNoUse() { +// logger.info("执行定时任务:查询是否有入库后长期未使用的库存"); +// List stocksLongTimeNoUse = stockService.selStockLongTimeNoUse(7); +// if (stocksLongTimeNoUse.size() > 0) { +// logger.info("有入库后长期未使用的库存, 准备更新库存状态"); +// for (StockDto stockLongTimeNoUse : stocksLongTimeNoUse) { +// try { +// stockLongTimeNoUse.setGoodsStatus(GoodsStatus.SCRAP.getCode()); +// stockService.modifyStock(stockLongTimeNoUse); +// logger.info("长时间未使用库存状态更新成功"); +// } catch (Exception e) { +// logger.error("长时间未使用库存状态更新异常:{}", e.getMessage()); +// } +// } +// } +// } +// +// /** +// * 每天查询一次是否有过期记录 +// * 每天晚上10点执行一次 +// */ +//// @Scheduled(cron = "0 0 22 * * ?") +// public void deleteOutOfDateData() { +// logger.info("执行定时任务:删除过期数据"); +// taskRecordService.deleteTaskRecordRegularly(); +// if (logService.deleteWmsLogsRegularly(90)) { +// logger.info("删除过期日志数据成功"); +// } else { +// logger.info("删除过期日志数据失败"); +// } +// } + + /** + * 发送正常的任务 + */ + private void sendCommonTask() { try { // 检索任务表---新建未下发的任务 LambdaQueryWrapper waitForDistributeTaskQuery = new LambdaQueryWrapper() @@ -124,66 +235,76 @@ public class JobComponent { } } } catch (Exception exception) { - logger.error("查询等待任务发生异常:{}", convertJsonString(exception)); + logger.error("向Wcs发送任务时发生异常:{}", convertJsonString(exception)); } } -// /** -// * 每天查询一次是否有过期的库存 -// * 每天晚上8点执行一次 -// */ -//// @Scheduled(cron = "0 0 20 * * ?") -// public void detectOutOfDateStock() { -// logger.info("执行定时任务:查询过期库存"); -// List outOfDateStocks = stockService.selStockOutOfDate(); -// if (outOfDateStocks.size() > 0) { -// logger.info("过期库存数量不为0,准备更新过期库存"); -// for (StockDto outOfDateStock : outOfDateStocks) { -// try { -// outOfDateStock.setGoodsStatus(GoodsStatus.OVERDUE.getCode()); -// stockService.modifyStock(outOfDateStock); -// logger.info("过期库存更新成功"); -// } catch (Exception e) { -// logger.error("过期库存更新异常:{}", e.getMessage()); -// } -// } -// } -// } -// -// /** -// * 每天查询一次是否有入库后长期未使用的库存 -// * 每天晚上9点执行一次 -// */ -//// @Scheduled(cron = "0 0 21 * * ?") -// public void detectStockLongTimeNoUse() { -// logger.info("执行定时任务:查询是否有入库后长期未使用的库存"); -// List stocksLongTimeNoUse = stockService.selStockLongTimeNoUse(7); -// if (stocksLongTimeNoUse.size() > 0) { -// logger.info("有入库后长期未使用的库存, 准备更新库存状态"); -// for (StockDto stockLongTimeNoUse : stocksLongTimeNoUse) { -// try { -// stockLongTimeNoUse.setGoodsStatus(GoodsStatus.SCRAP.getCode()); -// stockService.modifyStock(stockLongTimeNoUse); -// logger.info("长时间未使用库存状态更新成功"); -// } catch (Exception e) { -// logger.error("长时间未使用库存状态更新异常:{}", e.getMessage()); -// } -// } -// } -// } -// -// /** -// * 每天查询一次是否有过期记录 -// * 每天晚上10点执行一次 -// */ -//// @Scheduled(cron = "0 0 22 * * ?") -// public void deleteOutOfDateData() { -// logger.info("执行定时任务:删除过期数据"); -// taskRecordService.deleteTaskRecordRegularly(); -// if (logService.deleteWmsLogsRegularly(90)) { -// logger.info("删除过期日志数据成功"); -// } else { -// logger.info("删除过期日志数据失败"); -// } -// } + /** + * 处理重复入库的任务 + */ + private void solveDuplicateTask() { + try { + // 检索任务表---新建未下发的任务 + LambdaQueryWrapper duplicateTaskQueryWrapper = new LambdaQueryWrapper() + .eq(Task::getTaskType, TaskType.IN.getCode()) + .eq(Task::getTaskStatus, WmsTaskStatus.DUPLICATE.getCode()); + List duplicateTasks = BeanUtil.copyToList(taskService.list(duplicateTaskQueryWrapper), TaskDto.class); + // 需要发送给wcs的任务列表 + List request = new ArrayList<>(); + // 已经下发的任务组列表 + List taskGroupIds = new ArrayList<>(); + if (!duplicateTasks.isEmpty()) { + for (TaskDto task : duplicateTasks) { + if (StringUtils.isNotEmpty(task.getPreTask())) {// 当前任务具有前置任务 + // 查询一下前置的任务有没有存在,存在则不下发 + if (taskService.exists(new LambdaQueryWrapper().eq(Task::getTaskId, task.getPreTask()))) { + continue; + } + } + if (taskGroupIds.contains(task.getTaskGroup())) { + // 已经发送过的任务组,直接设置状态 + task.setTaskStatus(WmsTaskStatus.WAIT.getCode()); + } + // 创建发送的任务 + WcsTaskRequest tempTask = new WcsTaskRequest(); + tempTask.setTaskId(task.getTaskGroup()); + tempTask.setDestination(task.getDestination()); + tempTask.setVehicleNo(task.getVehicleId()); + request.add(tempTask); + task.setTaskStatus(WmsTaskStatus.WAIT.getCode()); + // 已经发送过的任务组 + taskGroupIds.add(task.getTaskGroup()); + } + if (request.size() == 0) { + return; + } + // 发送任务 + String url = configMap.get(ConfigMapKeyEnum.URL_NEW_DESTINATION.getConfigKey()); + if (url != null) { + logger.info("向WCS发送新目的地,地址:{},请求详情:{}", url, convertJsonString(request)); + request.forEach(wcsTaskRequest -> { + ResponseEntity result = JSON.parseObject(HttpUtils.sendHttpPostWithoutToken(url, convertJsonString(wcsTaskRequest)), ResponseEntity.class); + try { + logService.save(new WmsLog(WmsUtils.generateId("LOG_"), "向WCS发送新目的地", "setStackerTaskNewDestination", JSON.toJSONString(wcsTaskRequest), JSON.toJSONString(result), url, LocalDateTime.now(), "WMS")); + } catch (Exception e) { + logger.error("插入日志错误"); + } + if (result != null && Objects.equals(ResponseCode.OK.getCode(), result.getCode())) { + taskService.saveBatch(BeanUtil.copyToList(duplicateTasks, Task.class)); + } else { + if (result != null) { + logger.error("存在错误:{}", result.getMessage()); + } else { + logger.error("请求无返回"); + } + } + }); + } else { + logger.error("向WCS发送新目的地的地址为空"); + } + } + } catch (Exception exception) { + logger.error("向WCS发送新目的地时发生异常:{}", convertJsonString(exception)); + } + } } \ No newline at end of file diff --git a/src/main/java/com/wms/controller/SystemController.java b/src/main/java/com/wms/controller/SystemController.java index 7511608..7040a4e 100644 --- a/src/main/java/com/wms/controller/SystemController.java +++ b/src/main/java/com/wms/controller/SystemController.java @@ -1,9 +1,11 @@ package com.wms.controller; +import com.wms.annotation.MyLog; import com.wms.constants.enums.ResponseCode; import com.wms.entity.app.ResponseEntity; import com.wms.entity.app.request.UserQuery; import com.wms.system_service.ISystemService; +import com.wms.utils.MailUtils; import lombok.RequiredArgsConstructor; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -36,6 +38,7 @@ public class SystemController { @PostMapping("/restartSystem") @ResponseBody @Transactional(isolation = Isolation.REPEATABLE_READ, propagation = Propagation.REQUIRED) + @MyLog(logTitle = "重启系统", logMethod = "restartSystem") public String restartSystem(@RequestBody UserQuery user) { logger.info("接收到重启系统请求:{}", convertJsonString(user)); ResponseEntity response = new ResponseEntity(); @@ -66,6 +69,7 @@ public class SystemController { @PostMapping("/reloadConfig") @ResponseBody @Transactional(isolation = Isolation.REPEATABLE_READ, propagation = Propagation.REQUIRED) + @MyLog(logTitle = "重新载入配置", logMethod = "reloadConfig") public String reloadConfig(@RequestBody UserQuery user) { logger.info("接收到重载配置请求:{}", convertJsonString(user)); ResponseEntity response = new ResponseEntity(); @@ -86,4 +90,23 @@ public class SystemController { } return convertJsonString(response); } + + /** + * 发送邮件 + * + * @param user 用户 + * @return 结果 + */ + @PostMapping("/sendMail") + @ResponseBody + @Transactional(isolation = Isolation.REPEATABLE_READ, propagation = Propagation.REQUIRED) +// @MyLog(logTitle = "发送邮件", logMethod = "sendMail") + public String sendMail(@RequestBody UserQuery user) { + try { + MailUtils.sendMailSmtp("594755172@qq.com", "测试发送", "测试发送"); + } catch (Exception e) { + logger.error("发送邮件失败"); + } + return convertJsonString(new ResponseEntity()); + } } diff --git a/src/main/java/com/wms/controller/TaskController.java b/src/main/java/com/wms/controller/TaskController.java index dcace28..6880e28 100644 --- a/src/main/java/com/wms/controller/TaskController.java +++ b/src/main/java/com/wms/controller/TaskController.java @@ -7,13 +7,13 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.wms.annotation.MyLog; import com.wms.constants.enums.*; import com.wms.entity.app.*; -import com.wms.entity.app.dto.TaskDto; import com.wms.entity.app.dto.extend.StockDetailInfo; import com.wms.entity.app.dto.extend.TaskDetailInfo; import com.wms.entity.app.request.GoodsInRequest; import com.wms.entity.app.request.TaskInRequest; import com.wms.entity.app.request.TaskOutRequest; -import com.wms.entity.app.request.WcsTaskResultRequest; +import com.wms.entity.app.wcs.WcsTaskResultRequest; +import com.wms.entity.app.wcs.WcsVehicleInRequest; import com.wms.entity.table.*; import com.wms.service.*; import com.wms.utils.HttpUtils; @@ -50,7 +50,6 @@ import static com.wms.utils.WmsUtils.generateId; @CrossOrigin @RequiredArgsConstructor(onConstructor = @__(@Autowired)) @RequestMapping(value = "/wms/task") -@Api(value = "WMS任务控制类") public class TaskController { private final Logger logger = LoggerFactory.getLogger(this.getClass()); /** @@ -96,7 +95,6 @@ public class TaskController { @ResponseBody @Transactional(isolation = Isolation.REPEATABLE_READ, propagation = Propagation.REQUIRED) @MyLog(logTitle = "入库请求", logMethod = "requestIn") - @ApiOperation(value = "请求入库") public String receiveTaskInRequest(@RequestBody TaskInRequest taskInRequest) { logger.info("接收到入库请求:{},ip地址:{}", JSON.toJSONString(taskInRequest), HttpUtils.getIpAddr(servletRequest)); // 创建响应信息 @@ -110,48 +108,19 @@ public class TaskController { response.setMessage("入库请求验证错误!" + validationInfo); return convertJsonString(response); } - Map nextLocationMap = new HashMap<>(); - // 请求可用库位 - for (int i = 0; i < locationService.count(new LambdaQueryWrapper().eq(Location::getLocationStatus, LocationStatus.EMPTY.getCode())); i++) { - Map resultMap = locationService.getOneLocation(taskInRequest.getOriginPoint(), null); - if (resultMap.isEmpty() || !resultMap.containsKey("nextLocationId")) { - logger.error("暂无可用库位"); - response.setCode(ResponseCode.ERROR.getCode()); - response.setMessage("暂无可用库位!"); - return convertJsonString(response); - } else { - Location nextLocation = locationService.getOne(new LambdaQueryWrapper().eq(Location::getLocationId, resultMap.get("nextLocationId"))); - LambdaUpdateWrapper updateLocationWrapper = new LambdaUpdateWrapper() - .set(Location::getLocationStatus, LocationStatus.OCCUPY.getCode()) - .set(Location::getVehicleId, taskInRequest.getVehicleId()) - .eq(Location::getLocationId, nextLocation.getLocationId()) - .eq(Location::getLocationStatus, LocationStatus.EMPTY.getCode()); - if (locationService.update(updateLocationWrapper)) { - nextLocationMap = resultMap; - break; - } - } - } - if (nextLocationMap.isEmpty() || !nextLocationMap.containsKey("nextLocationId")) { - logger.error("暂无可用库位"); - response.setCode(ResponseCode.ERROR.getCode()); - response.setMessage("暂无可用库位!"); - return convertJsonString(response); - } // 生成入库任务 String saveTaskResult; if (taskInRequest.getGoodsList() == null || taskInRequest.getGoodsList().isEmpty()) {// 空托入库 - saveTaskResult = genEmptyInTask(taskInRequest, nextLocationMap.get("nextLocationId"), nextLocationMap.get("preTaskId")); + saveTaskResult = genEmptyInTask(taskInRequest); } else {// 带料入库 - saveTaskResult = genGoodsInTask(taskInRequest, nextLocationMap.get("nextLocationId"), nextLocationMap.get("preTaskId")); + saveTaskResult = genGoodsInTask(taskInRequest); } if (!saveTaskResult.equals("")) { - // 回退库位锁定 - locationService.update(new LambdaUpdateWrapper() - .set(Location::getLocationStatus, LocationStatus.EMPTY.getCode()) - .set(Location::getVehicleId, "") - .eq(Location::getLocationId, nextLocationMap.get("nextLocationId")) - .eq(Location::getLocationStatus, LocationStatus.OCCUPY.getCode())); + // 返回失败 + logger.error(saveTaskResult); + response.setCode(ResponseCode.ERROR.getCode()); + response.setMessage(saveTaskResult); + return convertJsonString(response); } logger.info("接收入库请求成功!"); @@ -173,26 +142,21 @@ public class TaskController { * 添加空入库任务 * * @param taskInRequest 入库请求 - * @param locationId 库位id - * @param preTaskId 前置任务 * @return 添加结果 */ - private String genEmptyInTask(TaskInRequest taskInRequest, String locationId, String preTaskId) { + private String genEmptyInTask(TaskInRequest taskInRequest) { String result = ""; Task tempInTask = new Task(); tempInTask.setTaskId(generateId("RK_")); tempInTask.setTaskType(TaskType.IN.getCode()); - tempInTask.setTaskStatus(WmsTaskStatus.NEW.getCode()); + tempInTask.setTaskStatus(WmsTaskStatus.TEMP.getCode()); tempInTask.setTaskGroup(generateId("")); tempInTask.setTaskPriority(1); tempInTask.setVehicleId(taskInRequest.getVehicleId()); - tempInTask.setOrigin(taskInRequest.getOriginPoint()); - tempInTask.setDestination(locationId); tempInTask.setVehicleSize(1); tempInTask.setWeight(taskInRequest.getTotalWeight()); tempInTask.setCreateTime(LocalDateTime.now()); tempInTask.setUserName(taskInRequest.getUserName()); - tempInTask.setPreTask(preTaskId); try { if (!taskService.save(tempInTask)) { return "添加空入库任务失败"; @@ -208,11 +172,9 @@ public class TaskController { * 添加入库任务 * * @param taskInRequest 入库请求 - * @param locationId 库位号 - * @param preTaskId 前置任务 * @return 添加结果 */ - private String genGoodsInTask(TaskInRequest taskInRequest, String locationId, String preTaskId) { + private String genGoodsInTask(TaskInRequest taskInRequest) { String result = ""; String taskGroupId = generateId(""); List tempTasks = new ArrayList<>(); @@ -220,17 +182,14 @@ public class TaskController { Task tempInTask = new Task(); tempInTask.setTaskId(generateId("RK_")); tempInTask.setTaskType(TaskType.IN.getCode()); - tempInTask.setTaskStatus(WmsTaskStatus.NEW.getCode()); + tempInTask.setTaskStatus(WmsTaskStatus.TEMP.getCode()); tempInTask.setTaskGroup(taskGroupId); tempInTask.setTaskPriority(1); tempInTask.setVehicleId(taskInRequest.getVehicleId()); - tempInTask.setOrigin(taskInRequest.getOriginPoint()); - tempInTask.setDestination(locationId); tempInTask.setVehicleSize(1); tempInTask.setWeight(taskInRequest.getTotalWeight()); tempInTask.setCreateTime(LocalDateTime.now()); tempInTask.setUserName(taskInRequest.getUserName()); - tempInTask.setPreTask(preTaskId); // 物料相关信息 TaskDetailInfo goodsRelatedInfo = new TaskDetailInfo(); // TODO 物料信息需要完善 @@ -332,7 +291,6 @@ public class TaskController { @ResponseBody @Transactional(isolation = Isolation.REPEATABLE_READ, propagation = Propagation.REQUIRED) @MyLog(logTitle = "出库请求", logMethod = "requestOut") - @ApiOperation(value = "请求入库") public String receiveTaskOutRequest(@RequestBody TaskOutRequest taskOutRequest) { logger.info("接收到出库请求:{},ip地址:{}", JSON.toJSONString(taskOutRequest), HttpUtils.getIpAddr(servletRequest)); // 创建响应信息 @@ -393,13 +351,6 @@ public class TaskController { vehicleOutTask.setTaskGroup(generateId("")); vehicleOutTask.setTaskStatus(WmsTaskStatus.NEW.getCode()); vehicleOutTask.setTaskPriority(1); - TaskDto moveTask = taskService.genMoveTask(currentVehicle.getCurrentLocation()); - if (moveTask != null) { - if (moveTask.getTaskId().equals("LOCKED")) { - return "外层库位上锁,无法出库"; - } - vehicleOutTask.setPreTask(moveTask.getTaskId()); - } vehicleOutTask.setVehicleId(taskOutRequest.getVehicleId()); vehicleOutTask.setUserName(taskOutRequest.getUserName()); vehicleOutTask.setOrigin(currentVehicle.getCurrentLocation()); @@ -426,13 +377,6 @@ public class TaskController { vehicleOutTask.setTaskGroup(generateId("")); vehicleOutTask.setTaskStatus(WmsTaskStatus.NEW.getCode()); vehicleOutTask.setTaskPriority(1); - TaskDto moveTask = taskService.genMoveTask(currentLocation.getLocationId()); - if (moveTask != null) { - if (moveTask.getTaskId().equals("LOCKED")) { - return "外层库位上锁,无法出库"; - } - vehicleOutTask.setPreTask(moveTask.getTaskId()); - } vehicleOutTask.setVehicleId(currentLocation.getVehicleId()); vehicleOutTask.setUserName(taskOutRequest.getUserName()); vehicleOutTask.setOrigin(currentLocation.getLocationId()); @@ -500,13 +444,6 @@ public class TaskController { vehicleOutTask.setTaskGroup(generateId("")); vehicleOutTask.setTaskStatus(WmsTaskStatus.NEW.getCode()); vehicleOutTask.setTaskPriority(1); - TaskDto moveTask = taskService.genMoveTask(stock.getLocationId()); - if (moveTask != null) { - if (moveTask.getTaskId().equals("LOCKED")) { - continue; - } - vehicleOutTask.setPreTask(moveTask.getTaskId()); - } vehicleOutTask.setVehicleId(stock.getVehicleId()); vehicleOutTask.setUserName(taskOutRequest.getUserName()); vehicleOutTask.setOrigin(stock.getLocationId()); @@ -540,13 +477,6 @@ public class TaskController { vehicleOutTask.setTaskGroup(generateId("")); vehicleOutTask.setTaskStatus(WmsTaskStatus.NEW.getCode()); vehicleOutTask.setTaskPriority(1); - TaskDto moveTask = taskService.genMoveTask(stock.getLocationId()); - if (moveTask != null) { - if (moveTask.getTaskId().equals("LOCKED")) { - continue; - } - vehicleOutTask.setPreTask(moveTask.getTaskId()); - } } vehicleOutTask.setVehicleId(stock.getVehicleId()); vehicleOutTask.setUserName(taskOutRequest.getUserName()); @@ -928,4 +858,231 @@ public class TaskController { } return TaskResultValidationEnum.OK.getErrorMessage(); } + + /** + * Wcs请求载具入库 + * + * @param wcsVehicleInRequest 载具入库请求 + * @return 结果 + */ + @PostMapping("/WcsVehicleIn") + @ResponseBody + @Transactional(isolation = Isolation.REPEATABLE_READ, propagation = Propagation.REQUIRED) + @MyLog(logTitle = "Wcs请求载具入库", logMethod = "WcsVehicleIn") + public String WcsVehicleInRequest(@RequestBody WcsVehicleInRequest wcsVehicleInRequest) { + logger.info("接收到Wcs请求载具入库:{},ip地址:{}", JSON.toJSONString(wcsVehicleInRequest), HttpUtils.getIpAddr(servletRequest)); + // 创建响应信息 + ResponseEntity response = new ResponseEntity(); + try { + // 验证入库请求 + String validationInfo = validateVehicleRequest(wcsVehicleInRequest); + if (!Objects.equals(validationInfo, "")) { + logger.error("请求载具入库发生错误:{}", validationInfo); + response.setCode(ResponseCode.ERROR.getCode()); + response.setMessage("请求载具入库发生错误:" + validationInfo); + return convertJsonString(response); + } + // 请求可用库位 + String nextLocationId = ""; + for (int i = 0; i < locationService.count(new LambdaQueryWrapper().eq(Location::getLocationStatus, LocationStatus.EMPTY.getCode())); i++) { + Map resultMap = locationService.getOneLocation("", ""); + if (resultMap.isEmpty() || !resultMap.containsKey("nextLocationId")) { + logger.error("暂无可用库位"); + response.setCode(ResponseCode.ERROR.getCode()); + response.setMessage("暂无可用库位!"); + return convertJsonString(response); + } else { + Location nextLocation = locationService.getOne(new LambdaQueryWrapper().eq(Location::getLocationId, resultMap.get("nextLocationId"))); + LambdaUpdateWrapper updateLocationWrapper = new LambdaUpdateWrapper() + .set(Location::getLocationStatus, LocationStatus.OCCUPY.getCode()) + .set(Location::getVehicleId, wcsVehicleInRequest.getVehicleNo()) + .eq(Location::getLocationId, nextLocation.getLocationId()) + .eq(Location::getLocationStatus, LocationStatus.EMPTY.getCode()); + if (locationService.update(updateLocationWrapper)) { + nextLocationId = resultMap.get("nextLocationId"); + break; + } + } + } + if (Objects.equals(nextLocationId, "")) { + logger.error("暂无可用库位"); + response.setCode(ResponseCode.ERROR.getCode()); + response.setMessage("暂无可用库位!"); + return convertJsonString(response); + } + // 找到库位,更新任务 + LambdaUpdateWrapper lambdaUpdateWrapperOfTask = new LambdaUpdateWrapper() + .set(Task::getDestination, nextLocationId) + .set(Task::getTaskStatus, WmsTaskStatus.NEW.getCode()) + .eq(Task::getVehicleId, wcsVehicleInRequest.getVehicleNo()); + if (!taskService.update(lambdaUpdateWrapperOfTask)) { + // 回退库位锁定 + locationService.update(new LambdaUpdateWrapper() + .set(Location::getLocationStatus, LocationStatus.EMPTY.getCode()) + .set(Location::getVehicleId, "") + .eq(Location::getLocationId, nextLocationId) + .eq(Location::getLocationStatus, LocationStatus.OCCUPY.getCode())); + // 反馈失败 + logger.error("处理载具入库请求失败!"); + response.setCode(ResponseCode.ERROR.getCode()); + response.setMessage("处理载具入库请求失败!"); + return convertJsonString(response); + } + + logger.info("处理载具入库请求成功!"); + response.setCode(ResponseCode.OK.getCode()); + response.setMessage("处理载具入库请求成功!"); + return convertJsonString(response); + } catch (Exception e) { + // 回滚事务 + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + logger.error("处理载具入库请求发生异常:{}", e.getMessage()); + // 返回其他异常 + response.setCode(ResponseCode.ERROR.getCode()); + response.setMessage("处理载具入库请求发生异常"); + return convertJsonString(response); + } + } + + /** + * 验证载具入库请求的正确性 + * @param wcsVehicleInRequest 载具入库请求 + * @return 验证结果 + */ + private String validateVehicleRequest(WcsVehicleInRequest wcsVehicleInRequest) { + // 判断请求信息 + if (wcsVehicleInRequest == null) { + return "请求信息为空"; + } + // 判断是否缺少载具号 + if (StringUtils.isEmpty(wcsVehicleInRequest.getVehicleNo())) { + return "缺少载具号"; + } + // 判断当前载具号是否存在任务 + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper() + .eq(Task::getVehicleId, wcsVehicleInRequest.getVehicleNo()) + .eq(Task::getTaskType, TaskType.IN.getCode()); + if (!taskService.exists(queryWrapper)) { + return "当前载具没有入库或回库任务"; + } + + return ""; + } + + /** + * Wcs反馈重复入库问题 + * + * @param duplicateLocationRequest 重复入库反馈请求 + * @return 结果 + */ + @PostMapping("/duplicateLocationOccurred") + @ResponseBody + @Transactional(isolation = Isolation.REPEATABLE_READ, propagation = Propagation.REQUIRED) + @MyLog(logTitle = "Wcs反馈重复入库问题", logMethod = "duplicateLocationOccurred") + public String ResolveDuplicateLocation(@RequestBody WcsTaskResultRequest duplicateLocationRequest) { + logger.info("接收到Wcs反馈重复入库问题:{},ip地址:{}", JSON.toJSONString(duplicateLocationRequest), HttpUtils.getIpAddr(servletRequest)); + // 创建响应信息 + ResponseEntity response = new ResponseEntity(); + try { + // 验证入库请求 + String validationInfo = validateDuplicateLocationRequest(duplicateLocationRequest); + if (!Objects.equals(validationInfo, "")) { + logger.error("反馈重复入库错误:{}", validationInfo); + response.setCode(ResponseCode.ERROR.getCode()); + response.setMessage("反馈重复入库错误:" + validationInfo); + return convertJsonString(response); + } + // 请求可用库位 + String nextLocationId = ""; + for (int i = 0; i < locationService.count(new LambdaQueryWrapper().eq(Location::getLocationStatus, LocationStatus.EMPTY.getCode())); i++) { + Map resultMap = locationService.getOneLocation("", ""); + if (resultMap.isEmpty() || !resultMap.containsKey("nextLocationId")) { + logger.error("暂无可用库位"); + response.setCode(ResponseCode.ERROR.getCode()); + response.setMessage("暂无可用库位!"); + return convertJsonString(response); + } else { + Location nextLocation = locationService.getOne(new LambdaQueryWrapper().eq(Location::getLocationId, resultMap.get("nextLocationId"))); + LambdaUpdateWrapper updateLocationWrapper = new LambdaUpdateWrapper() + .set(Location::getLocationStatus, LocationStatus.OCCUPY.getCode()) + .set(Location::getVehicleId, duplicateLocationRequest.getVehicleId()) + .eq(Location::getLocationId, nextLocation.getLocationId()) + .eq(Location::getLocationStatus, LocationStatus.EMPTY.getCode()); + if (locationService.update(updateLocationWrapper)) { + nextLocationId = resultMap.get("nextLocationId"); + break; + } + } + } + if (Objects.equals(nextLocationId, "")) { + logger.error("暂无可用库位"); + response.setCode(ResponseCode.ERROR.getCode()); + response.setMessage("暂无可用库位!"); + return convertJsonString(response); + } + // 找到库位,更新任务 + LambdaUpdateWrapper lambdaUpdateWrapperOfTask = new LambdaUpdateWrapper() + .set(Task::getDestination, nextLocationId) + .set(Task::getTaskStatus, WmsTaskStatus.DUPLICATE.getCode()) + .eq(Task::getVehicleId, duplicateLocationRequest.getVehicleId()) + .eq(Task::getTaskGroup, duplicateLocationRequest.getTaskId()) + .ne(Task::getTaskStatus, WmsTaskStatus.DUPLICATE.getCode()); + if (!taskService.update(lambdaUpdateWrapperOfTask)) { + // 回退库位锁定 + locationService.update(new LambdaUpdateWrapper() + .set(Location::getLocationStatus, LocationStatus.EMPTY.getCode()) + .set(Location::getVehicleId, "") + .eq(Location::getLocationId, nextLocationId) + .eq(Location::getLocationStatus, LocationStatus.OCCUPY.getCode())); + // 反馈失败 + logger.error("处理重复入库请求失败!"); + response.setCode(ResponseCode.ERROR.getCode()); + response.setMessage("处理重复入库请求失败!"); + return convertJsonString(response); + } + + logger.info("处理载具入库请求成功!"); + response.setCode(ResponseCode.OK.getCode()); + response.setMessage("处理载具入库请求成功!"); + return convertJsonString(response); + } catch (Exception e) { + // 回滚事务 + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + logger.error("处理载具入库请求发生异常:{}", e.getMessage()); + // 返回其他异常 + response.setCode(ResponseCode.ERROR.getCode()); + response.setMessage("处理载具入库请求发生异常"); + return convertJsonString(response); + } + } + + /** + * 验证重复入库问题反馈的请求 + * @param duplicateLocationRequest 请求信息 + * @return 验证结果 + */ + private String validateDuplicateLocationRequest(WcsTaskResultRequest duplicateLocationRequest) { + // 判断请求信息 + if (duplicateLocationRequest == null) { + return "请求信息为空"; + } + // 判断是否缺少任务号 + if (StringUtils.isEmpty(duplicateLocationRequest.getTaskId())) { + return "缺少任务号"; + } + // 判断是否缺少载具号 + if (StringUtils.isEmpty(duplicateLocationRequest.getVehicleId())) { + return "缺少载具号"; + } + // 判断当前载具号是否存在任务 + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper() + .eq(Task::getTaskGroup, duplicateLocationRequest.getTaskId()) + .eq(Task::getVehicleId, duplicateLocationRequest.getVehicleId()) + .eq(Task::getTaskType, TaskType.IN.getCode()); + if (!taskService.exists(queryWrapper)) { + return "当前反馈的重复入库任务不存在"; + } + + return ""; + } } \ No newline at end of file diff --git a/src/main/java/com/wms/controller/WmsLogController.java b/src/main/java/com/wms/controller/WmsLogController.java index 1e1a713..6f560ec 100644 --- a/src/main/java/com/wms/controller/WmsLogController.java +++ b/src/main/java/com/wms/controller/WmsLogController.java @@ -58,8 +58,8 @@ public class WmsLogController { Page logPage = logService.page(page, new LambdaQueryWrapper() .like(StringUtils.isNotEmpty(logQuery.getQueryParam()), WmsLog::getLogTitle, logQuery.getQueryParam()) .or().like(StringUtils.isNotEmpty(logQuery.getQueryParam()), WmsLog::getLogMethod, logQuery.getQueryParam()) - .or().like(StringUtils.isNotEmpty(logQuery.getQueryParam()), WmsLog::getLogRequest, logQuery.getQueryParam()) - .or().like(StringUtils.isNotEmpty(logQuery.getQueryParam()), WmsLog::getLogResponse, logQuery.getQueryParam()) + .or().like(StringUtils.isNotEmpty(logQuery.getQueryParam()), WmsLog::getLogRequest, logQuery.getQueryParam()) + .or().like(StringUtils.isNotEmpty(logQuery.getQueryParam()), WmsLog::getLogResponse, logQuery.getQueryParam()) .or().like(StringUtils.isNotEmpty(logQuery.getQueryParam()), WmsLog::getLogIp, logQuery.getQueryParam()) .or().like(StringUtils.isNotEmpty(logQuery.getQueryParam()), WmsLog::getLogUser, logQuery.getQueryParam())); diff --git a/src/main/java/com/wms/entity/app/ResponseEntity.java b/src/main/java/com/wms/entity/app/ResponseEntity.java index 0f48344..3d3ca40 100644 --- a/src/main/java/com/wms/entity/app/ResponseEntity.java +++ b/src/main/java/com/wms/entity/app/ResponseEntity.java @@ -1,46 +1,26 @@ package com.wms.entity.app; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; + /** * 接口响应实体类 */ +@Data public class ResponseEntity { - /** * 响应代码 */ + @JsonProperty("code") private Integer code; - /** * 错误信息 */ + @JsonProperty("message") private String message; - /** * 返回数据(非必须) */ + @JsonProperty("returnData") private Object returnData; - - public Integer getCode() { - return code; - } - - public void setCode(Integer code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public Object getReturnData() { - return returnData; - } - - public void setReturnData(Object returnData) { - this.returnData = returnData; - } } diff --git a/src/main/java/com/wms/entity/app/request/GoodsInRequest.java b/src/main/java/com/wms/entity/app/request/GoodsInRequest.java index 7d9884f..11b077b 100644 --- a/src/main/java/com/wms/entity/app/request/GoodsInRequest.java +++ b/src/main/java/com/wms/entity/app/request/GoodsInRequest.java @@ -1,28 +1,53 @@ package com.wms.entity.app.request; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import java.math.BigDecimal; +/** + * 物料入库详细信息 + */ @Data -@ApiModel(value = "入库请求---物料数据") public class GoodsInRequest { - @ApiModelProperty(value ="物料编号") + /** + * 物料编号 + */ + @JsonProperty("goodsId") private String goodsId; - @ApiModelProperty(value ="物料名称") + /** + * 物料名称 + */ + @JsonProperty("goodsName") private String goodsName; - @ApiModelProperty(value ="物料类型") + /** + * 物料类型 + */ + @JsonProperty("goodsType") private String goodsType; - @ApiModelProperty(value ="物料单位") + /** + * 物料单位 + */ + @JsonProperty("goodsUnit") private String goodsUnit; - @ApiModelProperty(value ="物料数量") + /** + * 物料数量 + */ + @JsonProperty("goodsNum") private BigDecimal goodsNum; - @ApiModelProperty(value ="物料描述") + /** + * 物料描述 + */ + @JsonProperty("goodsDesc") private String goodsDesc; - @ApiModelProperty(value ="单个零件重量") + /** + * 单个物料重量 + */ + @JsonProperty("singleWeight") private BigDecimal singleWeight; - @ApiModelProperty(value ="零件总重量") + /** + * 物料总重量 + */ + @JsonProperty("weight") private BigDecimal weight; } diff --git a/src/main/java/com/wms/entity/app/request/GoodsQuery.java b/src/main/java/com/wms/entity/app/request/GoodsQuery.java index 4e20d93..b83d6e9 100644 --- a/src/main/java/com/wms/entity/app/request/GoodsQuery.java +++ b/src/main/java/com/wms/entity/app/request/GoodsQuery.java @@ -1,18 +1,25 @@ package com.wms.entity.app.request; +import com.fasterxml.jackson.annotation.JsonProperty; import com.wms.entity.table.Goods; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; +/** + * 物料查询请求 + */ @EqualsAndHashCode(callSuper = true) @Data -@ApiModel(value = "物料查询") public class GoodsQuery extends PageQuery{ - @ApiModelProperty(value ="物料编号") + /** + * 物料编号 + */ + @JsonProperty("goodsId") private String goodsId; - @ApiModelProperty(value ="物料名称") + /** + * 物料名称 + */ + @JsonProperty("goodsName") private String goodsName; diff --git a/src/main/java/com/wms/entity/app/request/LocationQuery.java b/src/main/java/com/wms/entity/app/request/LocationQuery.java index 0618351..048e0e9 100644 --- a/src/main/java/com/wms/entity/app/request/LocationQuery.java +++ b/src/main/java/com/wms/entity/app/request/LocationQuery.java @@ -1,37 +1,71 @@ package com.wms.entity.app.request; import cn.hutool.core.bean.BeanUtil; +import com.fasterxml.jackson.annotation.JsonProperty; import com.wms.entity.table.Location; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; +/** + * 库位查询请求 + */ @EqualsAndHashCode(callSuper = true) @Data -@ApiModel(value = "库位查询") public class LocationQuery extends PageQuery { - @ApiModelProperty(value = "库位号") + /** + * 库位号 + */ + @JsonProperty("locationId") private String locationId; - @ApiModelProperty(value = "库区编号") + /** + * 库区编号 + */ + @JsonProperty("areaId") private Integer areaId; - @ApiModelProperty(value = "设备编号") + /** + * 设备编号 + */ + @JsonProperty("equipmentId") private Integer equipmentId; - @ApiModelProperty(value = "库位类型") + /** + * 库位类型 + */ + @JsonProperty("locationType") private Integer locationType; - @ApiModelProperty(value = "排") + /** + * 排 + */ + @JsonProperty("wRow") private Integer wRow; - @ApiModelProperty(value = "列") + /** + * 列 + */ + @JsonProperty("wCol") private Integer wCol; - @ApiModelProperty(value = "层") + /** + * 层 + */ + @JsonProperty("wLayer") private Integer wLayer; - @ApiModelProperty(value = "深度") + /** + * 深度 + */ + @JsonProperty("wDepth") private Integer wDepth; - @ApiModelProperty(value = "是否锁定") + /** + * 是否锁定 + */ + @JsonProperty("isLock") private Integer isLock; - @ApiModelProperty(value = "库位状态") + /** + * 库位状态 + */ + @JsonProperty("locationStatus") private Integer locationStatus; - @ApiModelProperty(value = "载具号") + /** + * 载具号 + */ + @JsonProperty("vehicleId") private String vehicleId; /** diff --git a/src/main/java/com/wms/entity/app/request/PageQuery.java b/src/main/java/com/wms/entity/app/request/PageQuery.java index 18bdaaa..15f8fc5 100644 --- a/src/main/java/com/wms/entity/app/request/PageQuery.java +++ b/src/main/java/com/wms/entity/app/request/PageQuery.java @@ -2,21 +2,34 @@ package com.wms.entity.app.request; import com.baomidou.mybatisplus.core.metadata.OrderItem; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.fasterxml.jackson.annotation.JsonProperty; import com.wms.utils.StringUtils; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; import lombok.Data; +/** + * 分页查询 + */ @Data -@ApiModel(value = "分页查询") public class PageQuery { - @ApiModelProperty(value ="页码") + /** + * 页码 + */ + @JsonProperty("pageNo") private Long pageNo = 1L; - @ApiModelProperty(value ="每页行数") + /** + * 每页行数 + */ + @JsonProperty("pageSize") private Long pageSize = 10L; - @ApiModelProperty(value ="排序字段") + /** + * 排序字段 + */ + @JsonProperty("sortBy") private String sortBy; - @ApiModelProperty(value ="是否升序") + /** + * 是否升序 + */ + @JsonProperty("isAsc") private Boolean isAsc = true; /** diff --git a/src/main/java/com/wms/entity/app/request/StandQuery.java b/src/main/java/com/wms/entity/app/request/StandQuery.java index dede03c..2562237 100644 --- a/src/main/java/com/wms/entity/app/request/StandQuery.java +++ b/src/main/java/com/wms/entity/app/request/StandQuery.java @@ -1,39 +1,38 @@ package com.wms.entity.app.request; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import lombok.EqualsAndHashCode; -import java.time.LocalDateTime; - +/** + * 站台查询请求 + */ @EqualsAndHashCode(callSuper = true) @Data -@ApiModel(value = "站台查询") public class StandQuery extends PageQuery { /** - * 站台id + * 站台号 */ - @ApiModelProperty(value = "站台号") + @JsonProperty("standId") private String standId; /** * 站台是否锁定 */ - @ApiModelProperty(value = "是否锁定") + @JsonProperty("isLock") private Integer isLock; /** * 站台状态 */ - @ApiModelProperty(value = "站台状态") + @JsonProperty("standStatus") private Integer standStatus; /** * 站台类型 */ - @ApiModelProperty(value = "站台类型") + @JsonProperty("standType") private Integer standType; /** * 设备类型 */ - @ApiModelProperty(value = "设备类型") + @JsonProperty("equipmentType") private Integer equipmentType; } diff --git a/src/main/java/com/wms/entity/app/request/StockQuery.java b/src/main/java/com/wms/entity/app/request/StockQuery.java index 1a6c80d..69048c3 100644 --- a/src/main/java/com/wms/entity/app/request/StockQuery.java +++ b/src/main/java/com/wms/entity/app/request/StockQuery.java @@ -1,28 +1,47 @@ package com.wms.entity.app.request; +import com.fasterxml.jackson.annotation.JsonProperty; import com.wms.entity.app.dto.extend.StockDetailInfo; import com.wms.entity.table.Stock; import com.wms.utils.StringUtils; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; +/** + * 库存查询请求 + */ @Data @EqualsAndHashCode(callSuper = true) -@ApiModel(value = "库存记录查询---客户端") public class StockQuery extends PageQuery { - @ApiModelProperty(value = "库存状态") + /** + * 库存状态 + */ + @JsonProperty("stockStatus") private Integer stockStatus; - @ApiModelProperty(value = "物料状态") + /** + * 物料状态 + */ + @JsonProperty("goodsStatus") private Integer goodsStatus; - @ApiModelProperty(value = "库位编号") + /** + * 库位 + */ + @JsonProperty("locationId") private String locationId; - @ApiModelProperty(value = "载具号/料箱号") + /** + * 载具号 + */ + @JsonProperty("vehicleId") private String vehicleId; - @ApiModelProperty(value = "物料编号") + /** + * 物料编号 + */ + @JsonProperty("goodsId") private String goodsId; - @ApiModelProperty(value = "物料名称/描述") + /** + * 物料名称 + */ + @JsonProperty("goodsName") private String goodsName; /** diff --git a/src/main/java/com/wms/entity/app/request/TaskInRequest.java b/src/main/java/com/wms/entity/app/request/TaskInRequest.java index c600af3..2d8233d 100644 --- a/src/main/java/com/wms/entity/app/request/TaskInRequest.java +++ b/src/main/java/com/wms/entity/app/request/TaskInRequest.java @@ -1,23 +1,39 @@ package com.wms.entity.app.request; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import java.math.BigDecimal; import java.util.List; +/** + * 入库请求 + */ @Data -@ApiModel(value = "入库请求") public class TaskInRequest { - @ApiModelProperty(value ="载具号") + /** + * 载具号 + */ + @JsonProperty("vehicleId") private String vehicleId; - @ApiModelProperty(value ="起点站台") + /** + * 起点站台 + */ + @JsonProperty("originPoint") private String originPoint; - @ApiModelProperty(value ="称重") + /** + * 称重 + */ + @JsonProperty("totalWeight") private BigDecimal totalWeight; - @ApiModelProperty(value ="用户名") + /** + * 用户名 + */ + @JsonProperty("userName") private String userName; - @ApiModelProperty(value ="入库物料清单") + /** + * 入库物料清单 + */ + @JsonProperty("goodsList") private List goodsList; } diff --git a/src/main/java/com/wms/entity/app/request/TaskOutRequest.java b/src/main/java/com/wms/entity/app/request/TaskOutRequest.java index 97cd8b0..0334174 100644 --- a/src/main/java/com/wms/entity/app/request/TaskOutRequest.java +++ b/src/main/java/com/wms/entity/app/request/TaskOutRequest.java @@ -1,28 +1,53 @@ package com.wms.entity.app.request; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import java.math.BigDecimal; +/** + * 出库请求 + */ @Data -@ApiModel(value = "出库请求") public class TaskOutRequest { - @ApiModelProperty(value ="物料编号") + /** + * 物料编号 + */ + @JsonProperty("goodsId") private String goodsId; - @ApiModelProperty(value ="数量") + /** + * 数量 + */ + @JsonProperty("goodsNum") private BigDecimal goodsNum; - @ApiModelProperty(value ="载具号") + /** + * 载具号 + */ + @JsonProperty("vehicleId") private String vehicleId; - @ApiModelProperty(value ="起始库位") + /** + * 起点 + */ + @JsonProperty("originPoint") private String originPoint; - @ApiModelProperty(value ="终点站台") + /** + * 终点 + */ + @JsonProperty("destinationPoint") private String destinationPoint; - @ApiModelProperty(value ="用户名") + /** + * 用户名 + */ + @JsonProperty("userName") private String userName; - @ApiModelProperty(value ="是否拣选") + /** + * 是否拣选 + */ + @JsonProperty("isPicking") private Integer isPicking; - @ApiModelProperty(value ="拣选站台") + /** + * 拣选站台 + */ + @JsonProperty("pickStand") private String pickStand; } diff --git a/src/main/java/com/wms/entity/app/request/TaskRecordQuery.java b/src/main/java/com/wms/entity/app/request/TaskRecordQuery.java index 657e155..b78da76 100644 --- a/src/main/java/com/wms/entity/app/request/TaskRecordQuery.java +++ b/src/main/java/com/wms/entity/app/request/TaskRecordQuery.java @@ -1,24 +1,37 @@ package com.wms.entity.app.request; +import com.fasterxml.jackson.annotation.JsonProperty; import com.wms.entity.app.dto.extend.TaskDetailInfo; import com.wms.entity.table.TaskRecord; import com.wms.utils.StringUtils; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; +/** + * 任务记录查询 + */ @Data @EqualsAndHashCode(callSuper = true) -@ApiModel(value = "任务记录查询---客户端") public class TaskRecordQuery extends PageQuery { - @ApiModelProperty(value = "任务类型") + /** + * 任务类型 + */ + @JsonProperty("taskType") private Integer taskType; - @ApiModelProperty(value = "载具号/料箱号") + /** + * 载具号 + */ + @JsonProperty("vehicleId") private String vehicleId; - @ApiModelProperty(value = "物料编号") + /** + * 物料编号 + */ + @JsonProperty("goodsId") private String goodsId; - @ApiModelProperty(value = "物料名称/描述") + /** + * 物料名称 + */ + @JsonProperty("goodsName") private String goodsName; /** diff --git a/src/main/java/com/wms/entity/app/request/UserQuery.java b/src/main/java/com/wms/entity/app/request/UserQuery.java index 75644b4..414a127 100644 --- a/src/main/java/com/wms/entity/app/request/UserQuery.java +++ b/src/main/java/com/wms/entity/app/request/UserQuery.java @@ -1,43 +1,44 @@ package com.wms.entity.app.request; import cn.hutool.core.bean.BeanUtil; +import com.fasterxml.jackson.annotation.JsonProperty; import com.wms.entity.table.User; import com.wms.utils.MyPassword; import com.wms.utils.StringUtils; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; import java.time.LocalDateTime; +/** + * 用户查询 + */ @EqualsAndHashCode(callSuper = true) @Data -@ApiModel(value = "载具查询") public class UserQuery extends PageQuery{ /** 用户ID */ - @ApiModelProperty(value = "用户id") + @JsonProperty("userId") private Integer userId; /** 用户名 */ - @ApiModelProperty(value = "用户名") + @JsonProperty("userName") private String userName; /** 角色Id */ - @ApiModelProperty(value = "角色id") + @JsonProperty("roleId") private Integer roleId; /** 登录账户 */ - @ApiModelProperty(value = "登录账号") + @JsonProperty("loginAccount") private String loginAccount; /** 登录密码 */ - @ApiModelProperty(value = "登录密码") + @JsonProperty("loginPassword") private String loginPassword; /** 添加时间 */ - @ApiModelProperty(value = "添加时间") + @JsonProperty("addTime") private LocalDateTime addTime; /** 更新时间 */ - @ApiModelProperty(value = "更新时间") + @JsonProperty("updateTime") private LocalDateTime updateTime; /** 添加用户名 */ - @ApiModelProperty(value = "添加用户") + @JsonProperty("addUser") private String addUser; /** diff --git a/src/main/java/com/wms/entity/app/request/VehicleQuery.java b/src/main/java/com/wms/entity/app/request/VehicleQuery.java index 7a8db88..f857cd1 100644 --- a/src/main/java/com/wms/entity/app/request/VehicleQuery.java +++ b/src/main/java/com/wms/entity/app/request/VehicleQuery.java @@ -1,24 +1,35 @@ package com.wms.entity.app.request; -import cn.hutool.core.bean.BeanUtil; -import com.wms.entity.table.Location; +import com.fasterxml.jackson.annotation.JsonProperty; import com.wms.entity.table.Vehicle; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; +/** + * 载具查询 + */ @EqualsAndHashCode(callSuper = true) @Data -@ApiModel(value = "载具查询") public class VehicleQuery extends PageQuery { - @ApiModelProperty(value = "载具编号") + /** + * 载具编号 + */ + @JsonProperty("vehicleId") private String vehicleId; - @ApiModelProperty(value = "载具状态") + /** + * 载具状态 + */ + @JsonProperty("vehicleStatus") private Integer vehicleStatus; - @ApiModelProperty(value = "是否为空") + /** + * 是否为空 + */ + @JsonProperty("isEmpty") private Integer isEmpty; - @ApiModelProperty(value = "当前位置") + /** + * 当前位置 + */ + @JsonProperty("currentLocation") private String currentLocation; /** @@ -31,6 +42,7 @@ public class VehicleQuery extends PageQuery { vehiclePO.setVehicleStatus(vehicleStatus); vehiclePO.setIsEmpty(isEmpty); vehiclePO.setCurrentLocation(currentLocation); + return vehiclePO; } } diff --git a/src/main/java/com/wms/entity/app/request/WcsTaskResultRequest.java b/src/main/java/com/wms/entity/app/request/WcsTaskResultRequest.java deleted file mode 100644 index c07c927..0000000 --- a/src/main/java/com/wms/entity/app/request/WcsTaskResultRequest.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.wms.entity.app.request; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; - -@Data -@ApiModel(value = "WCS任务结果反馈请求") -public class WcsTaskResultRequest { - /** - * 任务id----对应wms的taskGroup - */ - @ApiModelProperty(value = "任务id---对应wms的taskGroup") - private String taskId; - /** - * 载具号 - */ - @ApiModelProperty(value = "载具号") - private String vehicleId; - /** - * 任务状态 - */ - @ApiModelProperty(value = "任务状态") - private Integer taskStatus; - /** - * 任务终点 - */ - @ApiModelProperty(value = "任务终点") - private String destination; - /** - * 任务信息 - */ - @ApiModelProperty(value = "任务信息") - private String message; -} diff --git a/src/main/java/com/wms/entity/app/request/WmsLogQuery.java b/src/main/java/com/wms/entity/app/request/WmsLogQuery.java index 500eb3a..9805315 100644 --- a/src/main/java/com/wms/entity/app/request/WmsLogQuery.java +++ b/src/main/java/com/wms/entity/app/request/WmsLogQuery.java @@ -1,16 +1,20 @@ package com.wms.entity.app.request; +import com.fasterxml.jackson.annotation.JsonProperty; import com.wms.entity.table.WmsLog; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; +/** + * 日志查询 + */ @EqualsAndHashCode(callSuper = true) @Data -@ApiModel(value = "日志查询") public class WmsLogQuery extends PageQuery { - @ApiModelProperty(value = "日志查询参数") + /** + * 日志查询参数 + */ + @JsonProperty("queryParam") private String queryParam; /** diff --git a/src/main/java/com/wms/entity/app/wcs/ETaskData.java b/src/main/java/com/wms/entity/app/wcs/ETaskData.java index aeb4f56..4cd1c8f 100644 --- a/src/main/java/com/wms/entity/app/wcs/ETaskData.java +++ b/src/main/java/com/wms/entity/app/wcs/ETaskData.java @@ -1,58 +1,36 @@ package com.wms.entity.app.wcs; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; -@ApiModel(value = "电子标签详细任务数据") +/** + * 电子标签任务类 + */ +@Data public class ETaskData { - @ApiModelProperty(value = "任务号") + /** + * 任务号 + */ + @JsonProperty("taskId") private String taskId; - @ApiModelProperty(value = "点位") + /** + * 点位 + */ + @JsonProperty("location") private String location; - @ApiModelProperty(value = "物料编号") + /** + * 物料编号 + */ + @JsonProperty("goodsId") private String goodsId; - @ApiModelProperty(value = "物料名称") + /** + * 物料名称 + */ + @JsonProperty("goodsName") private String goodsName; - @ApiModelProperty(value = "需求数量") + /** + * 需求数量 + */ + @JsonProperty("needNum") private Integer needNum; - - public String getTaskId() { - return taskId; - } - - public void setTaskId(String taskId) { - this.taskId = taskId; - } - - public String getLocation() { - return location; - } - - public void setLocation(String location) { - this.location = location; - } - - public String getGoodsId() { - return goodsId; - } - - public void setGoodsId(String goodsId) { - this.goodsId = goodsId; - } - - public String getGoodsName() { - return goodsName; - } - - public void setGoodsName(String goodsName) { - this.goodsName = goodsName; - } - - public Integer getNeedNum() { - return needNum; - } - - public void setNeedNum(Integer needNum) { - this.needNum = needNum; - } } diff --git a/src/main/java/com/wms/entity/app/wcs/WcsBoxArriveRequest.java b/src/main/java/com/wms/entity/app/wcs/WcsBoxArriveRequest.java index d271c19..6601776 100644 --- a/src/main/java/com/wms/entity/app/wcs/WcsBoxArriveRequest.java +++ b/src/main/java/com/wms/entity/app/wcs/WcsBoxArriveRequest.java @@ -1,48 +1,31 @@ package com.wms.entity.app.wcs; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; -@ApiModel(value = "WCS料箱到达请求") +/** + * Wcs上报箱子到达请求类 + */ +@Data public class WcsBoxArriveRequest { - @ApiModelProperty(value = "任务组编号") + /** + * 任务组编号 + */ + @JsonProperty("taskGroup") private String taskGroup; - @ApiModelProperty(value = "料箱号") + /** + * 载具号 + */ + @JsonProperty("vehicleNo") private String vehicleNo; - @ApiModelProperty(value = "点位---站台") + /** + * 点位 + */ + @JsonProperty("location") private String location; - @ApiModelProperty(value = "备注") + /** + * 备注 + */ + @JsonProperty("remark") private String remark; - - public String getTaskGroup() { - return taskGroup; - } - - public void setTaskGroup(String taskGroup) { - this.taskGroup = taskGroup; - } - - public String getVehicleNo() { - return vehicleNo; - } - - public void setVehicleNo(String vehicleNo) { - this.vehicleNo = vehicleNo; - } - - public String getLocation() { - return location; - } - - public void setLocation(String location) { - this.location = location; - } - - public String getRemark() { - return remark; - } - - public void setRemark(String remark) { - this.remark = remark; - } } diff --git a/src/main/java/com/wms/entity/app/wcs/WcsChangeTaskRequest.java b/src/main/java/com/wms/entity/app/wcs/WcsChangeTaskRequest.java index f813ac4..a46ba43 100644 --- a/src/main/java/com/wms/entity/app/wcs/WcsChangeTaskRequest.java +++ b/src/main/java/com/wms/entity/app/wcs/WcsChangeTaskRequest.java @@ -1,28 +1,21 @@ package com.wms.entity.app.wcs; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; -@ApiModel(description = "向WCS发送任务请求") +/** + * 向Wcs请求修改任务状态 + */ +@Data public class WcsChangeTaskRequest { - @ApiModelProperty(value = "任务ID", required = true) + /** + * 任务id + */ + @JsonProperty("taskId") private String taskId; - @ApiModelProperty(value = "任务状态---修改后", required = true) + /** + * 任务状态 + */ + @JsonProperty("taskStatus") private Integer taskStatus; - - public String getTaskId() { - return taskId; - } - - public void setTaskId(String taskId) { - this.taskId = taskId; - } - - public Integer getTaskStatus() { - return taskStatus; - } - - public void setTaskStatus(Integer taskStatus) { - this.taskStatus = taskStatus; - } } diff --git a/src/main/java/com/wms/entity/app/wcs/WcsCommonResponse.java b/src/main/java/com/wms/entity/app/wcs/WcsCommonResponse.java index c4ce534..2842976 100644 --- a/src/main/java/com/wms/entity/app/wcs/WcsCommonResponse.java +++ b/src/main/java/com/wms/entity/app/wcs/WcsCommonResponse.java @@ -1,38 +1,28 @@ package com.wms.entity.app.wcs; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -@ApiModel(description = "WCS通用返回信息") +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; + +/** + * Wcs通用返回信息 + * @param 泛型 + */ +@Data public class WcsCommonResponse { - @ApiModelProperty(value = "返回码", required = true) + /** + * 返回码 + */ + @JsonProperty("code") private Integer code; - @ApiModelProperty(value = "返回信息", required = true) + /** + * 说明信息 + */ + @JsonProperty("message") private String message; - @ApiModelProperty(value = "返回数据") + /** + * 返回数据 + */ + @JsonProperty("returnData") private T returnData; - - public Integer getCode() { - return code; - } - - public void setCode(Integer code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public T getReturnData() { - return returnData; - } - - public void setReturnData(T returnData) { - this.returnData = returnData; - } } diff --git a/src/main/java/com/wms/entity/app/wcs/WcsETaskFeedbackRequest.java b/src/main/java/com/wms/entity/app/wcs/WcsETaskFeedbackRequest.java index b08bd33..2ffb687 100644 --- a/src/main/java/com/wms/entity/app/wcs/WcsETaskFeedbackRequest.java +++ b/src/main/java/com/wms/entity/app/wcs/WcsETaskFeedbackRequest.java @@ -1,108 +1,62 @@ package com.wms.entity.app.wcs; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -@ApiModel(value = "WCS电子标签任务反馈请求") +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; + +/** + * 电子标签任务反馈请求 + */ +@Data public class WcsETaskFeedbackRequest { - @ApiModelProperty(value = "任务组") + /** + * 任务组编号 + */ + @JsonProperty("taskGroup") private String taskGroup; - @ApiModelProperty(value = "任务类型") + /** + * 任务类型 + */ + @JsonProperty("taskType") private Integer taskType; - @ApiModelProperty(value = "料箱号") + /** + * 载具号 + */ + @JsonProperty("vehicleNo") private String vehicleNo; - @ApiModelProperty(value = "订单号") + /** + * 订单号 + */ + @JsonProperty("orderId") private String orderId; - @ApiModelProperty(value = "任务号") + /** + * 任务号 + */ + @JsonProperty("taskId") private String taskId; - @ApiModelProperty(value = "点位") + /** + * 点位 + */ + @JsonProperty("location") private String location; - @ApiModelProperty(value = "物料编号") + /** + * 物料编号 + */ + @JsonProperty("goodsId") private String goodsId; - @ApiModelProperty(value = "物料名称") + /** + * 物料名称 + */ + @JsonProperty("goodsName") private String goodsName; - @ApiModelProperty(value = "需求数量") + /** + * 需求数量 + */ + @JsonProperty("needNum") private Integer needNum; - @ApiModelProperty(value = "确认数量") + /** + * 确认数量 + */ + @JsonProperty("confirmNum") private Integer confirmNum; - - public String getTaskGroup() { - return taskGroup; - } - - public void setTaskGroup(String taskGroup) { - this.taskGroup = taskGroup; - } - - public Integer getTaskType() { - return taskType; - } - - public void setTaskType(Integer taskType) { - this.taskType = taskType; - } - - public String getVehicleNo() { - return vehicleNo; - } - - public void setVehicleNo(String vehicleNo) { - this.vehicleNo = vehicleNo; - } - - public String getOrderId() { - return orderId; - } - - public void setOrderId(String orderId) { - this.orderId = orderId; - } - - public String getTaskId() { - return taskId; - } - - public void setTaskId(String taskId) { - this.taskId = taskId; - } - - public String getLocation() { - return location; - } - - public void setLocation(String location) { - this.location = location; - } - - public String getGoodsId() { - return goodsId; - } - - public void setGoodsId(String goodsId) { - this.goodsId = goodsId; - } - - public String getGoodsName() { - return goodsName; - } - - public void setGoodsName(String goodsName) { - this.goodsName = goodsName; - } - - public Integer getNeedNum() { - return needNum; - } - - public void setNeedNum(Integer needNum) { - this.needNum = needNum; - } - - public Integer getConfirmNum() { - return confirmNum; - } - - public void setConfirmNum(Integer confirmNum) { - this.confirmNum = confirmNum; - } } diff --git a/src/main/java/com/wms/entity/app/wcs/WcsETaskRequest.java b/src/main/java/com/wms/entity/app/wcs/WcsETaskRequest.java index 58ba1a9..eba363b 100644 --- a/src/main/java/com/wms/entity/app/wcs/WcsETaskRequest.java +++ b/src/main/java/com/wms/entity/app/wcs/WcsETaskRequest.java @@ -1,60 +1,38 @@ package com.wms.entity.app.wcs; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; import java.util.List; -@ApiModel(value = "WCS电子标签任务发送请求") +/** + * 电子标签任务请求 + */ +@Data public class WcsETaskRequest { - @ApiModelProperty(value = "任务组") + /** + * 任务组编号 + */ + @JsonProperty("taskGroup") private String taskGroup; - @ApiModelProperty(value = "任务类型") + /** + * 任务类型 + */ + @JsonProperty("taskGroup") private Integer taskType; - @ApiModelProperty(value = "料箱号") + /** + * 载具号 + */ + @JsonProperty("vehicleNo") private String vehicleNo; - @ApiModelProperty(value = "订单号") + /** + * 订单号 + */ + @JsonProperty("orderId") private String orderId; - @ApiModelProperty(value = "任务数据") + /** + * 任务信息 + */ + @JsonProperty("taskData") private List taskData; - - public String getTaskGroup() { - return taskGroup; - } - - public void setTaskGroup(String taskGroup) { - this.taskGroup = taskGroup; - } - - public Integer getTaskType() { - return taskType; - } - - public void setTaskType(Integer taskType) { - this.taskType = taskType; - } - - public String getVehicleNo() { - return vehicleNo; - } - - public void setVehicleNo(String vehicleNo) { - this.vehicleNo = vehicleNo; - } - - public String getOrderId() { - return orderId; - } - - public void setOrderId(String orderId) { - this.orderId = orderId; - } - - public List getTaskData() { - return taskData; - } - - public void setTaskData(List taskData) { - this.taskData = taskData; - } } diff --git a/src/main/java/com/wms/entity/app/wcs/WcsFeedbackTaskRequest.java b/src/main/java/com/wms/entity/app/wcs/WcsFeedbackTaskRequest.java deleted file mode 100644 index 950d53c..0000000 --- a/src/main/java/com/wms/entity/app/wcs/WcsFeedbackTaskRequest.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.wms.entity.app.wcs; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; - -@ApiModel(description = "WCS发送任务反馈") -public class WcsFeedbackTaskRequest { - @ApiModelProperty(value = "任务Id") - private String taskId; - @ApiModelProperty(value = "任务状态") - private Integer taskStatus; - @ApiModelProperty(value = "任务终点") - private String destination; - @ApiModelProperty(value = "异常信息") - private String message; - - public String getTaskId() { - return taskId; - } - - public void setTaskId(String taskId) { - this.taskId = taskId; - } - - public Integer getTaskStatus() { - return taskStatus; - } - - public void setTaskStatus(Integer taskStatus) { - this.taskStatus = taskStatus; - } - - public String getDestination() { - return destination; - } - - public void setDestination(String destination) { - this.destination = destination; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } -} diff --git a/src/main/java/com/wms/entity/app/wcs/WcsStandTaskRequest.java b/src/main/java/com/wms/entity/app/wcs/WcsStandTaskRequest.java index 0376114..3c86542 100644 --- a/src/main/java/com/wms/entity/app/wcs/WcsStandTaskRequest.java +++ b/src/main/java/com/wms/entity/app/wcs/WcsStandTaskRequest.java @@ -1,60 +1,38 @@ package com.wms.entity.app.wcs; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; import java.util.List; -@ApiModel(value = "WCS站台拣选任务请求") +/** + * 站台拣选任务请求信息 + */ +@Data public class WcsStandTaskRequest { - @ApiModelProperty("任务组编号") + /** + * 任务组编号 + */ + @JsonProperty("taskGroup") private String taskGroup; - @ApiModelProperty("料箱号") + /** + * 载具号 + */ + @JsonProperty("vehicleNo") private String vehicleNo; - @ApiModelProperty("任务类型---1:拣选任务") + /** + * 任务类型 + */ + @JsonProperty("taskType") private Integer taskType; - @ApiModelProperty("点位---站台号") + /** + * 点位 + */ + @JsonProperty("location") private List location; - @ApiModelProperty("备注") + /** + * 备注 + */ + @JsonProperty("remark") private String remark; - - public String getTaskGroup() { - return taskGroup; - } - - public void setTaskGroup(String taskGroup) { - this.taskGroup = taskGroup; - } - - public String getVehicleNo() { - return vehicleNo; - } - - public void setVehicleNo(String vehicleNo) { - this.vehicleNo = vehicleNo; - } - - public Integer getTaskType() { - return taskType; - } - - public void setTaskType(Integer taskType) { - this.taskType = taskType; - } - - public List getLocation() { - return location; - } - - public void setLocation(List location) { - this.location = location; - } - - public String getRemark() { - return remark; - } - - public void setRemark(String remark) { - this.remark = remark; - } } diff --git a/src/main/java/com/wms/entity/app/wcs/WcsTaskRequest.java b/src/main/java/com/wms/entity/app/wcs/WcsTaskRequest.java index bf82f3e..797e87d 100644 --- a/src/main/java/com/wms/entity/app/wcs/WcsTaskRequest.java +++ b/src/main/java/com/wms/entity/app/wcs/WcsTaskRequest.java @@ -1,93 +1,53 @@ package com.wms.entity.app.wcs; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; import java.math.BigDecimal; /** * 向Wcs发送任务的请求 */ -@ApiModel(description = "向WCS发送任务请求") +@Data public class WcsTaskRequest { - @ApiModelProperty(value = "任务ID", required = true) + /** + * 任务号 + */ + @JsonProperty("taskId") private String taskId; - @ApiModelProperty(value = "任务类型", required = true) + /** + * 任务类型 + */ + @JsonProperty("taskType") private Integer taskType; - @ApiModelProperty(value = "任务优先级---同一任务类型中优先级") + /** + * 优先级 + */ + @JsonProperty("priority") private Integer priority; - @ApiModelProperty(value = "任务起点") + /** + * 起点 + */ + @JsonProperty("origin") private String origin; - @ApiModelProperty(value = "任务终点") + /** + * 终点 + */ + @JsonProperty("destination") private String destination; - @ApiModelProperty(value = "料箱号", required = true) + /** + * 载具号 + */ + @JsonProperty("vehicleNo") private String vehicleNo; - @ApiModelProperty(value = "料箱尺寸") + /** + * 载具尺寸 + */ + @JsonProperty("vehicleSize") private Integer vehicleSize = 0; - @ApiModelProperty(value = "重量") + /** + * 重量 + */ + @JsonProperty("weight") private BigDecimal weight = BigDecimal.ZERO; - - public String getTaskId() { - return taskId; - } - - public void setTaskId(String taskId) { - this.taskId = taskId; - } - - public Integer getTaskType() { - return taskType; - } - - public void setTaskType(Integer taskType) { - this.taskType = taskType; - } - - public Integer getPriority() { - return priority; - } - - public void setPriority(Integer priority) { - this.priority = priority; - } - - public String getOrigin() { - return origin; - } - - public void setOrigin(String origin) { - this.origin = origin; - } - - public String getDestination() { - return destination; - } - - public void setDestination(String destination) { - this.destination = destination; - } - - public String getVehicleNo() { - return vehicleNo; - } - - public void setVehicleNo(String vehicleNo) { - this.vehicleNo = vehicleNo; - } - - public Integer getVehicleSize() { - return vehicleSize; - } - - public void setVehicleSize(Integer vehicleSize) { - this.vehicleSize = vehicleSize; - } - - public BigDecimal getWeight() { - return weight; - } - - public void setWeight(BigDecimal weight) { - this.weight = weight; - } } diff --git a/src/main/java/com/wms/entity/app/wcs/WcsTaskResultRequest.java b/src/main/java/com/wms/entity/app/wcs/WcsTaskResultRequest.java new file mode 100644 index 0000000..9c5a301 --- /dev/null +++ b/src/main/java/com/wms/entity/app/wcs/WcsTaskResultRequest.java @@ -0,0 +1,36 @@ +package com.wms.entity.app.wcs; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; + +/** + * Wcs任务结果反馈请求信息 + */ +@Data +public class WcsTaskResultRequest { + /** + * 任务id----对应wms的taskGroup + */ + @JsonProperty("taskId") + private String taskId; + /** + * 载具号 + */ + @JsonProperty("vehicleId") + private String vehicleId; + /** + * 任务状态 + */ + @JsonProperty("taskStatus") + private Integer taskStatus; + /** + * 任务终点 + */ + @JsonProperty("destination") + private String destination; + /** + * 任务信息 + */ + @JsonProperty("message") + private String message; +} diff --git a/src/main/java/com/wms/entity/app/wcs/WcsVehicleInRequest.java b/src/main/java/com/wms/entity/app/wcs/WcsVehicleInRequest.java index 7c8b909..31944bd 100644 --- a/src/main/java/com/wms/entity/app/wcs/WcsVehicleInRequest.java +++ b/src/main/java/com/wms/entity/app/wcs/WcsVehicleInRequest.java @@ -1,48 +1,31 @@ package com.wms.entity.app.wcs; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; -@ApiModel(value = "WCS请求料箱入库") +/** + * Wcs请求载具入库 + */ +@Data public class WcsVehicleInRequest { - @ApiModelProperty(value = "点位") + /** + * 点位 + */ + @JsonProperty("point") private String point; - @ApiModelProperty(value = "料箱号") + /** + * 载具号 + */ + @JsonProperty("vehicleNo") private String vehicleNo; - @ApiModelProperty(value = "条码信息") + /** + * 条码信息 + */ + @JsonProperty("codeMessage") private String codeMessage; - @ApiModelProperty(value = "备注") + /** + * 备注 + */ + @JsonProperty("remark") private String remark; - - public String getPoint() { - return point; - } - - public void setPoint(String point) { - this.point = point; - } - - public String getVehicleNo() { - return vehicleNo; - } - - public void setVehicleNo(String vehicleNo) { - this.vehicleNo = vehicleNo; - } - - public String getCodeMessage() { - return codeMessage; - } - - public void setCodeMessage(String codeMessage) { - this.codeMessage = codeMessage; - } - - public String getRemark() { - return remark; - } - - public void setRemark(String remark) { - this.remark = remark; - } } diff --git a/src/main/java/com/wms/entity/table/Config.java b/src/main/java/com/wms/entity/table/Config.java index d5643b5..f698347 100644 --- a/src/main/java/com/wms/entity/table/Config.java +++ b/src/main/java/com/wms/entity/table/Config.java @@ -21,24 +21,24 @@ public class Config { /** * 配置键 */ - @TableField(value = "config_key") + @TableField("config_key") private String configKey; /** * 配置值 */ - @TableField(value = "config_value") + @TableField("config_value") private String configValue; /** * 配置展示类型 */ - @TableField(value = "config_type") + @TableField("config_type") private String configType; /** * 配置名称 */ - @TableField(value = "config_name") + @TableField("config_name") private String configName; } diff --git a/src/main/java/com/wms/entity/table/ETagLocation.java b/src/main/java/com/wms/entity/table/ETagLocation.java new file mode 100644 index 0000000..4d6eceb --- /dev/null +++ b/src/main/java/com/wms/entity/table/ETagLocation.java @@ -0,0 +1,35 @@ +package com.wms.entity.table; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.math.BigDecimal; + +/** + * 电子标签库位信息 + */ +@Data +@TableName(value = "tbl_app_e_location", autoResultMap = true) +public class ETagLocation { + /** + * + */ + @TableId("e_location_id") + private String eLocationId; + @TableField("area_id") + private String areaId; + @TableField("sequence_id") + private Integer sequenceId; + @TableField("e_location_status") + private Integer eLocationStatus; + @TableField("order_box_no") + private String orderBoxNo; + @TableField("goods_id") + private String goodsId; + @TableField("quantity") + private BigDecimal quantity; + @TableField("pick_status") + private Integer pickStatus; +} diff --git a/src/main/java/com/wms/entity/table/Goods.java b/src/main/java/com/wms/entity/table/Goods.java index f0af1bb..e01ec68 100644 --- a/src/main/java/com/wms/entity/table/Goods.java +++ b/src/main/java/com/wms/entity/table/Goods.java @@ -11,51 +11,52 @@ import java.util.Date; * 物料 */ @Data -@TableName("tbl_app_goods") +@TableName(value = "tbl_app_goods", autoResultMap = true) public class Goods { + // TODO 物料详细信息根据卡特方提供的信息来完善 /** * 物料编号 */ - @TableId(value = "goods_id") + @TableId("goods_id") private String goodsId; /** * 物料名称 */ - @TableField(value = "goods_name") + @TableField("goods_name") private String goodsName; /** * 单位 */ - @TableField(value = "goods_unit") + @TableField("goods_unit") private String goodsUnit; /** * 物料ID */ - @TableField(value = "item_id") + @TableField("item_id") private String itemId; /** * 物料分类 */ - @TableField(value = "goods_type") + @TableField("goods_type") private String goodsType; /** * 有效天数 */ - @TableField(value = "life_days") + @TableField("life_days") private Integer lifeDays; /** * 仓储分类 */ - @TableField(value = "inv_category") + @TableField("inv_category") private String invCategory; /** * 最后更新日期 */ - @TableField(value = "last_update_time") + @TableField("last_update_time") private Date lastUpdateTime; /** * 最后更新用户 */ - @TableField(value = "last_update_user") + @TableField("last_update_user") private String lastUpdateUser; } diff --git a/src/main/java/com/wms/entity/table/KateDBS.java b/src/main/java/com/wms/entity/table/KateDBS.java new file mode 100644 index 0000000..70f3344 --- /dev/null +++ b/src/main/java/com/wms/entity/table/KateDBS.java @@ -0,0 +1,54 @@ +package com.wms.entity.table; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.time.LocalDateTime; + +/** + * 当前DBS计划 + */ +@Data +@TableName(value = "tbl_app_kate_dbs", autoResultMap = true) +public class KateDBS { + /** + * DBS计划Id + */ + @TableId("dbs_id") + private String dbsId; + /** + * 顺序号 + */ + @TableField("work_sequence") + private Integer workSequence; + /** + * 工单 + */ + @TableField("work_order") + private String workOrder; + /** + * 计划开工日期 + */ + @TableField("plan_start_date") + private LocalDateTime planStartDate; + /** + * dbs的状态 + * 0:未开始 + * 1:已开始未完成 + * 2:已完成 + */ + @TableField("last_update_time") + private Integer dbsStatus; + /** + * 最近更新时间 + */ + @TableField("last_update_time") + private LocalDateTime lastUpdateTime; + /** + * 最近更新用户 + */ + @TableField("last_update_user") + private String lastUpdateUser; +} diff --git a/src/main/java/com/wms/entity/table/KateDBSHistory.java b/src/main/java/com/wms/entity/table/KateDBSHistory.java new file mode 100644 index 0000000..8439b89 --- /dev/null +++ b/src/main/java/com/wms/entity/table/KateDBSHistory.java @@ -0,0 +1,54 @@ +package com.wms.entity.table; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.time.LocalDateTime; + +/** + * DBS更新历史 + */ +@Data +@TableName(value = "tbl_app_kate_dbs_history", autoResultMap = true) +public class KateDBSHistory { + /** + * DBS计划Id + */ + @TableId("dbs_id") + private String dbsId; + /** + * 顺序号 + */ + @TableField("work_sequence") + private Integer workSequence; + /** + * 工单 + */ + @TableField("work_order") + private String workOrder; + /** + * 计划开工日期 + */ + @TableField("plan_start_date") + private LocalDateTime planStartDate; + /** + * dbs的状态 + * 0:未开始 + * 1:已开始未完成 + * 2:已完成 + */ + @TableField("last_update_time") + private Integer dbsStatus; + /** + * 最近更新时间 + */ + @TableField("last_update_time") + private LocalDateTime lastUpdateTime; + /** + * 最近更新用户 + */ + @TableField("last_update_user") + private String lastUpdateUser; +} diff --git a/src/main/java/com/wms/entity/table/KateDBSLast.java b/src/main/java/com/wms/entity/table/KateDBSLast.java new file mode 100644 index 0000000..e3de24c --- /dev/null +++ b/src/main/java/com/wms/entity/table/KateDBSLast.java @@ -0,0 +1,54 @@ +package com.wms.entity.table; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.time.LocalDateTime; + +/** + * 上一次的DBS数据 + */ +@Data +@TableName(value = "tbl_app_kate_dbs_last", autoResultMap = true) +public class KateDBSLast { + /** + * DBS计划Id + */ + @TableId("dbs_id") + private String dbsId; + /** + * 顺序号 + */ + @TableField("work_sequence") + private Integer workSequence; + /** + * 工单 + */ + @TableField("work_order") + private String workOrder; + /** + * 计划开工日期 + */ + @TableField("plan_start_date") + private LocalDateTime planStartDate; + /** + * dbs的状态 + * 0:未开始 + * 1:已开始未完成 + * 2:已完成 + */ + @TableField("last_update_time") + private Integer dbsStatus; + /** + * 最近更新时间 + */ + @TableField("last_update_time") + private LocalDateTime lastUpdateTime; + /** + * 最近更新用户 + */ + @TableField("last_update_user") + private String lastUpdateUser; +} diff --git a/src/main/java/com/wms/entity/table/KateOrders.java b/src/main/java/com/wms/entity/table/KateOrders.java new file mode 100644 index 0000000..8ae7c88 --- /dev/null +++ b/src/main/java/com/wms/entity/table/KateOrders.java @@ -0,0 +1,43 @@ +package com.wms.entity.table; + +import com.wms.utils.excel.ExcelImport; +import lombok.Data; + +import java.math.BigDecimal; + +/** + * 工单明细 + */ +@Data +public class KateOrders { + private String orderId; + /** + * 工单号---对应excel详情 + */ + private String workOrder; + private String material; + + + + + /** + * 工单状态 + * 0:未开始 + * 1:已呼叫料箱 + * 2:正在拣选 + * 3:拣选完成 + */ + private Integer orderStatus; + /** + * 缺少数量 + */ + private BigDecimal lackQuantity; + /** + * 实际拣选数量 + */ + private BigDecimal pickedQuantity; + /** + * 操作人员 + */ + private String userName; +} diff --git a/src/main/java/com/wms/entity/table/KateOrdersHistory.java b/src/main/java/com/wms/entity/table/KateOrdersHistory.java new file mode 100644 index 0000000..d1d62a2 --- /dev/null +++ b/src/main/java/com/wms/entity/table/KateOrdersHistory.java @@ -0,0 +1,7 @@ +package com.wms.entity.table; + +/** + * 工单导入明细 + */ +public class KateOrdersHistory { +} diff --git a/src/main/java/com/wms/entity/table/KateOrdersLast.java b/src/main/java/com/wms/entity/table/KateOrdersLast.java new file mode 100644 index 0000000..03b1c98 --- /dev/null +++ b/src/main/java/com/wms/entity/table/KateOrdersLast.java @@ -0,0 +1,8 @@ +package com.wms.entity.table; + +/** + * 上一次导入的工单明细 + */ +public class KateOrdersLast { + +} diff --git a/src/main/java/com/wms/entity/table/Location.java b/src/main/java/com/wms/entity/table/Location.java index 32c5343..de77a10 100644 --- a/src/main/java/com/wms/entity/table/Location.java +++ b/src/main/java/com/wms/entity/table/Location.java @@ -14,56 +14,56 @@ public class Location { /** * 库位编号 */ - @TableId(value = "location_id") + @TableId("location_id") private String locationId; /** * 库区编号 */ - @TableField(value = "area_id") + @TableField("area_id") private Integer areaId; /** * 设备编号 */ - @TableField(value = "equipment_id") + @TableField("equipment_id") private Integer equipmentId; /** * 库位类型 */ - @TableField(value = "location_type") + @TableField("location_type") private Integer locationType; /** * 排 */ - @TableField(value = "w_row") + @TableField("w_row") private Integer wRow; /** * 列 */ - @TableField(value = "w_col") + @TableField("w_col") private Integer wCol; /** * 层 */ - @TableField(value = "w_layer") + @TableField("w_layer") private Integer wLayer; /** * 深度 */ - @TableField(value = "w_depth") + @TableField("w_depth") private Integer wDepth; /** * 是否锁定 */ - @TableField(value = "is_lock") + @TableField("is_lock") private Integer isLock; /** * 库位状态 */ - @TableField(value = "location_status") + @TableField("location_status") private Integer locationStatus; /** * 载具号 */ - @TableField(value = "vehicle_id") + @TableField("vehicle_id") private String vehicleId; } diff --git a/src/main/java/com/wms/entity/table/Menu.java b/src/main/java/com/wms/entity/table/Menu.java index d13eed3..4a5f423 100644 --- a/src/main/java/com/wms/entity/table/Menu.java +++ b/src/main/java/com/wms/entity/table/Menu.java @@ -14,26 +14,26 @@ public class Menu { /** * 菜单Id */ - @TableId(value = "menu_id") + @TableId("menu_id") private String menuId; /** * 菜单名称 */ - @TableField(value = "label_name") + @TableField("label_name") private String labelName; /** * 图标值 */ - @TableField(value = "icon_value") + @TableField("icon_value") private String iconValue; /** * 地址 */ - @TableField(value = "path") + @TableField("path") private String path; /** * 父菜单Id */ - @TableField(value = "parent_id") + @TableField("parent_id") private String parentId; } diff --git a/src/main/java/com/wms/entity/table/Stand.java b/src/main/java/com/wms/entity/table/Stand.java index d7ea532..5d13f59 100644 --- a/src/main/java/com/wms/entity/table/Stand.java +++ b/src/main/java/com/wms/entity/table/Stand.java @@ -16,59 +16,59 @@ public class Stand { /** * 站台id */ - @TableId(value = "stand_id") + @TableId("stand_id") private String standId; /** * 是否允许入库 */ - @TableField(value = "allow_in") + @TableField("allow_in") private Integer allowIn; /** * 是否允许出库 */ - @TableField(value = "allow_out") + @TableField("allow_out") private Integer allowOut; /** * 站台是否锁定 */ - @TableField(value = "is_lock") + @TableField("is_lock") private Integer isLock; /** * 站台状态 */ - @TableField(value = "stand_status") + @TableField("stand_status") private Integer standStatus; /** * 设备编号 */ - @TableField(value = "equipment_id") + @TableField("equipment_id") private Integer equipmentId; /** * 库区编号 */ - @TableField(value = "area_id") + @TableField("area_id") private Integer areaId; /** * 站台类型 */ - @TableField(value = "stand_type") + @TableField("stand_type") private Integer standType; /** * 站台ip */ - @TableField(value = "stand_ip") + @TableField("stand_ip") private String standIp; /** * 外部id * 如mes上的站台编号 */ - @TableField(value = "outer_id") + @TableField("outer_id") private String outerId; /** * 最近一次的使用时间 */ - @TableField(value = "last_use_time") + @TableField("last_use_time") private LocalDateTime lastUseTime; } diff --git a/src/main/java/com/wms/entity/table/Stock.java b/src/main/java/com/wms/entity/table/Stock.java index a9c39e5..ff8e9ac 100644 --- a/src/main/java/com/wms/entity/table/Stock.java +++ b/src/main/java/com/wms/entity/table/Stock.java @@ -19,58 +19,58 @@ public class Stock { /** * 库存编号 */ - @TableId(value = "stock_id") + @TableId("stock_id") private String stockId; /** * 库位ID */ - @TableField(value = "location_id") + @TableField("location_id") private String locationId; /** * 托盘号 */ - @TableField(value = "vehicle_id") + @TableField("vehicle_id") private String vehicleId; /** * 重量 */ - @TableField(value = "weight") + @TableField("weight") private BigDecimal weight; /** * 库存状态 * 正常、出库中、锁定 等 */ - @TableField(value = "stock_status") + @TableField("stock_status") private Integer stockStatus; /** * 创建时间 */ - @TableField(value = "create_time") + @TableField("create_time") private LocalDateTime createTime; /** * 最后更新时间 */ - @TableField(value = "last_update_time") + @TableField("last_update_time") private LocalDateTime lastUpdateTime; /** * 最后更新用户 */ - @TableField(value = "last_update_user") + @TableField("last_update_user") private String lastUpdateUser; /** * 是否盘点 */ - @TableField(value = "is_inventory") + @TableField("is_inventory") private Integer isInventory; /** * 盘点任务号 盘点出库和盘点入库同样 */ - @TableField(value = "inventory_task_id") + @TableField("inventory_task_id") private String inventoryTaskId; /** * 呆滞天数 */ - @TableField(value = "no_use_days") + @TableField("no_use_days") private Integer noUseDays; /** * 物料相关信息 diff --git a/src/main/java/com/wms/entity/table/Task.java b/src/main/java/com/wms/entity/table/Task.java index 6212bd8..b63535c 100644 --- a/src/main/java/com/wms/entity/table/Task.java +++ b/src/main/java/com/wms/entity/table/Task.java @@ -19,67 +19,67 @@ public class Task { /** * 任务号 */ - @TableId(value = "task_id") + @TableId("task_id") private String taskId; /** * 任务类型 */ - @TableField(value = "task_type") + @TableField("task_type") private Integer taskType; /** * 任务状态 */ - @TableField(value = "task_status") + @TableField("task_status") private Integer taskStatus; /** * 起点 */ - @TableField(value = "origin") + @TableField("origin") private String origin; /** * 终点 */ - @TableField(value = "destination") + @TableField("destination") private String destination; /** * 任务优先级 */ - @TableField(value = "task_priority") + @TableField("task_priority") private Integer taskPriority; /** * 任务组---多与载具绑定 */ - @TableField(value = "task_group") + @TableField("task_group") private String taskGroup; /** * 载具号/料箱号 */ - @TableField(value = "vehicle_id") + @TableField("vehicle_id") private String vehicleId; /** * 重量 */ - @TableField(value = "weight") + @TableField("weight") private BigDecimal weight; /** * 载具尺寸 */ - @TableField(value = "vehicle_size") + @TableField("vehicle_size") private Integer vehicleSize; /** * 创建时间 */ - @TableField(value = "create_time") + @TableField("create_time") private LocalDateTime createTime; /** * 完成时间 */ - @TableField(value = "finish_time") + @TableField("finish_time") private LocalDateTime finishTime; /** * 用户名 */ - @TableField(value = "user_name") + @TableField("user_name") private String userName; /** * 物料相关的详细信息 @@ -89,16 +89,16 @@ public class Task { /** * 前置任务 */ - @TableField(value = "pre_task") + @TableField("pre_task") private String preTask; /** * 是否拣选 */ - @TableField(value = "is_picking") + @TableField("is_picking") private Integer isPicking; /** * 拣选站台 */ - @TableField(value = "pick_stand") + @TableField("pick_stand") private String pickStand; } diff --git a/src/main/java/com/wms/entity/table/TaskRecord.java b/src/main/java/com/wms/entity/table/TaskRecord.java index 8dd63cb..0dbaf91 100644 --- a/src/main/java/com/wms/entity/table/TaskRecord.java +++ b/src/main/java/com/wms/entity/table/TaskRecord.java @@ -16,67 +16,67 @@ public class TaskRecord { /** * 任务号 */ - @TableId(value = "task_id") + @TableId("task_id") private String taskId; /** * 任务类型 */ - @TableField(value = "task_type") + @TableField("task_type") private Integer taskType; /** * 任务状态 */ - @TableField(value = "task_status") + @TableField("task_status") private Integer taskStatus; /** * 起点 */ - @TableField(value = "origin") + @TableField("origin") private String origin; /** * 终点 */ - @TableField(value = "destination") + @TableField("destination") private String destination; /** * 任务优先级 */ - @TableField(value = "task_priority") + @TableField("task_priority") private Integer taskPriority; /** * 任务组 */ - @TableField(value = "task_group") + @TableField("task_group") private String taskGroup; /** * 载具号 */ - @TableField(value = "vehicle_id") + @TableField("vehicle_id") private String vehicleId; /** * 重量 */ - @TableField(value = "weight") + @TableField("weight") private BigDecimal weight; /** * 载具尺寸 */ - @TableField(value = "vehicle_size") + @TableField("vehicle_size") private Integer vehicleSize; /** * 创建时间 */ - @TableField(value = "create_time") + @TableField("create_time") private LocalDateTime createTime; /** * 完成时间 */ - @TableField(value = "finish_time") + @TableField("finish_time") private LocalDateTime finishTime; /** * 用户名 */ - @TableField(value = "user_name") + @TableField("user_name") private String userName; /** * 物料相关的详细信息 @@ -86,16 +86,16 @@ public class TaskRecord { /** * 前置任务 */ - @TableField(value = "pre_task") + @TableField("pre_task") private String preTask; /** * 是否拣选 */ - @TableField(value = "is_picking") + @TableField("is_picking") private Integer isPicking; /** * 拣选站台 */ - @TableField(value = "pick_stand") + @TableField("pick_stand") private String pickStand; } diff --git a/src/main/java/com/wms/entity/table/User.java b/src/main/java/com/wms/entity/table/User.java index 6e11732..8b6898b 100644 --- a/src/main/java/com/wms/entity/table/User.java +++ b/src/main/java/com/wms/entity/table/User.java @@ -20,30 +20,30 @@ public class User { private Integer userId; /** 用户名 */ - @TableField(value = "user_name") + @TableField("user_name") private String userName; /** 角色Id */ - @TableField(value = "role_id") + @TableField("role_id") private Integer roleId = null; /** 登录账户 */ - @TableField(value = "login_account") + @TableField("login_account") private String loginAccount; /** 登录密码 */ - @TableField(value = "login_password") + @TableField("login_password") private String loginPassword; /** 添加时间 */ - @TableField(value = "add_time") + @TableField("add_time") private LocalDateTime addTime; /** 更新时间 */ - @TableField(value = "update_time") + @TableField("update_time") private LocalDateTime updateTime; /** 添加用户名 */ - @TableField(value = "add_user") + @TableField("add_user") private String addUser; } diff --git a/src/main/java/com/wms/entity/table/Vehicle.java b/src/main/java/com/wms/entity/table/Vehicle.java index 345d8a2..b44619c 100644 --- a/src/main/java/com/wms/entity/table/Vehicle.java +++ b/src/main/java/com/wms/entity/table/Vehicle.java @@ -16,27 +16,27 @@ public class Vehicle { /** * 载具编号 */ - @TableId(value = "vehicle_id") + @TableId("vehicle_id") private String vehicleId; /** * 当前所在位置 */ - @TableField(value = "current_location") + @TableField("current_location") private String currentLocation; /** * 载具状态 */ - @TableField(value = "vehicle_status") + @TableField("vehicle_status") private Integer vehicleStatus; /** * 是否是空箱 */ - @TableField(value = "is_empty") + @TableField("is_empty") private Integer isEmpty; /** * 载具类型 */ - @TableField(value = "vehicle_type") + @TableField("vehicle_type") private Integer vehicleType; /** * 额外信息 diff --git a/src/main/java/com/wms/entity/table/WmsLog.java b/src/main/java/com/wms/entity/table/WmsLog.java index 0aeba54..4143c6e 100644 --- a/src/main/java/com/wms/entity/table/WmsLog.java +++ b/src/main/java/com/wms/entity/table/WmsLog.java @@ -17,17 +17,17 @@ public class WmsLog { /** * id */ - @TableId(value = "log_id") + @TableId("log_id") private String logId; /** * 描述/标题 */ - @TableField(value = "log_title") + @TableField("log_title") private String logTitle; /** * 方法 */ - @TableField(value = "log_method") + @TableField("log_method") private String logMethod; /** * 请求参数 @@ -42,17 +42,17 @@ public class WmsLog { /** * 请求的ip */ - @TableField(value = "log_ip") + @TableField("log_ip") private String logIp; /** * 请求时间 */ - @TableField(value = "log_time") + @TableField("log_time") private LocalDateTime logTime; /** * 请求用户 */ - @TableField(value = "log_user") + @TableField("log_user") private String logUser; public WmsLog() { diff --git a/src/main/java/com/wms/entity/table/WorkStationConfig.java b/src/main/java/com/wms/entity/table/WorkStationConfig.java new file mode 100644 index 0000000..7d0d64d --- /dev/null +++ b/src/main/java/com/wms/entity/table/WorkStationConfig.java @@ -0,0 +1,71 @@ +package com.wms.entity.table; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.time.LocalDateTime; + +/** + * 工作站台配置 + */ +@Data +@TableName(value = "tbl_app_work_station_config", autoResultMap = true) +public class WorkStationConfig { + /** + * 配置id + */ + @TableId("config_id") + private String configId; + /** + * 工作站台 + */ + @TableField("work_station") + private String workStation; + /** + * 小盒子 + */ + @TableField("small_box") + private String smallBox; + /** + * 机型 + */ + @TableField("model") + private String model; + /** + * 工位 + */ + @TableField("work_center") + private String workCenter; + /** + * 工位大盒子 + */ + @TableField("big_box") + private String bigBox; + /** + * 车辆 + */ + @TableField("vehicle") + private String vehicle; + /** + * 线边架/车位置 + */ + @TableField("vehicle_location") + private String vehicleLocation; + /** + * 开工时间调整 + */ + @TableField("start_date_adjust") + private Integer startDateAdjust = 0; + /** + * 最近更新时间 + */ + @TableField("last_update_time") + private LocalDateTime lastUpdateTime; + /** + * 最近更新用户 + */ + @TableField("last_update_user") + private String lastUpdateUser; +} diff --git a/src/main/java/com/wms/service/TaskService.java b/src/main/java/com/wms/service/TaskService.java index 3a84cc5..338937e 100644 --- a/src/main/java/com/wms/service/TaskService.java +++ b/src/main/java/com/wms/service/TaskService.java @@ -1,17 +1,10 @@ package com.wms.service; import com.baomidou.mybatisplus.extension.service.IService; -import com.wms.entity.app.dto.TaskDto; import com.wms.entity.table.Task; /** * 任务服务 */ public interface TaskService extends IService { - /** - * 生成移库任务 - * @param locationId 要出库的库位号 - * @return 深度-1的移库任务 - */ - TaskDto genMoveTask(String locationId); } diff --git a/src/main/java/com/wms/service/serviceImplements/LocationServiceImplements.java b/src/main/java/com/wms/service/serviceImplements/LocationServiceImplements.java index f25b8b0..5b4cebf 100644 --- a/src/main/java/com/wms/service/serviceImplements/LocationServiceImplements.java +++ b/src/main/java/com/wms/service/serviceImplements/LocationServiceImplements.java @@ -26,10 +26,6 @@ public class LocationServiceImplements extends ServiceImpl getOneLocation(String inPoint, String goodsId) { @@ -79,9 +79,7 @@ public class LocationServiceImplements extends ServiceImpl LRUStands = standMapper.selectList(LRUStandQueryWrapper); - if (LRUStands.isEmpty()) { - return resultMap; - } else { + if (!LRUStands.isEmpty()) { if (StringUtils.isNotEmpty(goodsId)) {// 需要根据物料编号做出区分 equipmentId = selectEquipmentByLRUAndGoods(LRUStands, goodsId); if (equipmentId != -1) { @@ -95,11 +93,9 @@ public class LocationServiceImplements extends ServiceImpl availableLocations = locationMapper.selectList(locationQueryWrapper); for (Location oneAvailableLocation : availableLocations) { - LambdaQueryWrapper haveTaskQueryWrapper = new LambdaQueryWrapper() - .select(Location::getLocationId) - .eq(Location::getWRow, oneAvailableLocation.getWRow()) - .eq(Location::getWCol, oneAvailableLocation.getWCol()) - .eq(Location::getWLayer, oneAvailableLocation.getWLayer()); - List haveTaskLocations = locationMapper.selectList(haveTaskQueryWrapper); - // 判断当前排列层的库位是否有出库或者移库任务 - boolean hasTasksFlag = false; - for (Location havaTaskLocation : haveTaskLocations) { - LambdaQueryWrapper taskQueryWrapper = new LambdaQueryWrapper() - .select(Task::getTaskId) - .eq(Task::getOrigin, havaTaskLocation.getLocationId()); - if (taskMapper.selectCount(taskQueryWrapper) > 0) { - hasTasksFlag = true; - break; - } - } - if (hasTasksFlag) continue; - // 判断是否深度+1有入库任务 - haveTaskQueryWrapper.clear(); - LambdaQueryWrapper plusOneDepthLocationQueryWrapper = new LambdaQueryWrapper() - .select(Location::getLocationId) - .eq(Location::getWDepth, oneAvailableLocation.getWDepth() + 1) - .eq(Location::getWRow, oneAvailableLocation.getWRow()) - .eq(Location::getWCol, oneAvailableLocation.getWCol()) - .eq(Location::getWLayer, oneAvailableLocation.getWLayer()); - Location plusOneDepthLocation = locationMapper.selectOne(plusOneDepthLocationQueryWrapper); - if (plusOneDepthLocation == null) { - resultMap.put("nextLocationId", oneAvailableLocation.getLocationId()); - return resultMap; - } else { - LambdaQueryWrapper taskQueryWrapper = new LambdaQueryWrapper() - .select(Task::getTaskId) - .eq(Task::getDestination, plusOneDepthLocation.getLocationId()); - Task plusOneDepthTask = taskMapper.selectOne(taskQueryWrapper); - if (plusOneDepthTask != null) { - resultMap.put("nextLocationId", oneAvailableLocation.getLocationId()); - resultMap.put("preTaskId", plusOneDepthTask.getTaskId()); - return resultMap; - } - } + resultMap.put("nextLocationId", oneAvailableLocation.getLocationId()); + break; } return resultMap; } @@ -173,7 +130,7 @@ public class LocationServiceImplements extends ServiceImpl equipmentIds = new ArrayList<>(); List tasks = taskMapper.selectList(new LambdaQueryWrapper() .select(Task::getDestination) - .apply("goods_related -> '$.goods_id' = {0}", goodsId) + .apply("goods_related -> '$.goodsId' = {0}", goodsId) .eq(Task::getTaskType, 1)); for (Task task : tasks) { Location tempLocation = locationMapper.selectOne(new LambdaQueryWrapper().eq(Location::getLocationId, task.getDestination())); @@ -183,7 +140,7 @@ public class LocationServiceImplements extends ServiceImpl stocks = stockMapper.selectList(new LambdaQueryWrapper() .select(Stock::getLocationId) - .apply("goods_related -> '$.goods_id' = {0}", goodsId) + .apply("goods_related -> '$.goodsId' = {0}", goodsId) .eq(Stock::getStockStatus, StockStatus.OK.getCode())); for (Stock stock : stocks) { Location tempLocation = locationMapper.selectOne(new LambdaQueryWrapper().eq(Location::getLocationId, stock.getLocationId())); diff --git a/src/main/java/com/wms/service/serviceImplements/LogServiceImplements.java b/src/main/java/com/wms/service/serviceImplements/LogServiceImplements.java index cbe36e2..0a0d154 100644 --- a/src/main/java/com/wms/service/serviceImplements/LogServiceImplements.java +++ b/src/main/java/com/wms/service/serviceImplements/LogServiceImplements.java @@ -1,20 +1,14 @@ package com.wms.service.serviceImplements; -import cn.hutool.core.bean.BeanUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.wms.entity.app.dto.WmsLogDto; import com.wms.entity.table.WmsLog; import com.wms.mapper.LogMapper; import com.wms.service.LogService; -import com.wms.utils.StringUtils; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.util.List; - @Service @RequiredArgsConstructor(onConstructor = @__(@Autowired)) public class LogServiceImplements extends ServiceImpl implements LogService { diff --git a/src/main/java/com/wms/service/serviceImplements/TaskServiceImplements.java b/src/main/java/com/wms/service/serviceImplements/TaskServiceImplements.java index 7f49da0..0251b14 100644 --- a/src/main/java/com/wms/service/serviceImplements/TaskServiceImplements.java +++ b/src/main/java/com/wms/service/serviceImplements/TaskServiceImplements.java @@ -1,29 +1,13 @@ package com.wms.service.serviceImplements; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.wms.constants.enums.*; -import com.wms.entity.app.dto.TaskDto; -import com.wms.entity.table.Location; -import com.wms.entity.table.Stock; import com.wms.entity.table.Task; -import com.wms.entity.table.Vehicle; -import com.wms.mapper.LocationMapper; -import com.wms.mapper.StockMapper; import com.wms.mapper.TaskMapper; -import com.wms.mapper.VehicleMapper; import com.wms.service.TaskService; -import com.wms.utils.StringUtils; -import com.wms.utils.WmsUtils; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.time.LocalDateTime; -import java.util.List; -import java.util.Objects; - /** * 任务服务的实现类 */ @@ -34,157 +18,4 @@ public class TaskServiceImplements extends ServiceImpl impleme * 任务mapper */ private final TaskMapper taskMapper; - /** - * 库位服务 - */ - private final LocationMapper locationMapper; - /** - * 库存服务 - */ - private final StockMapper stockMapper; - /** - * 载具服务 - */ - private final VehicleMapper vehicleMapper; - - @Override - public TaskDto genMoveTask(String locationId) { - Location outLocation = locationMapper.selectOne(new LambdaQueryWrapper().eq(Location::getLocationId, locationId)); - if (outLocation != null) { - if (outLocation.getWDepth() == 1) { - return null; - } else { - // 生成当前深度-1的库位的移库任务 - TaskDto depthMinus1MoveTask = new TaskDto(); - Location depthMinus1Location = locationMapper.selectOne(new LambdaQueryWrapper().eq(Location::getLocationId, outLocation.getLocationId())); - if (depthMinus1Location.getIsLock() == 1) {// 外层库位锁定 - depthMinus1MoveTask.setTaskId("LOCKED"); - return depthMinus1MoveTask; - } - // 判断是否有货 - if (Objects.equals(depthMinus1Location.getLocationStatus(), LocationStatus.OCCUPY.getCode())) { - // 查看这个库位是否有入库任务 - Task depthMinusIn1Task = taskMapper.selectOne(new LambdaQueryWrapper() - .eq(Task::getTaskType, TaskType.IN.getCode()) - .eq(Task::getDestination, depthMinus1Location.getLocationId())); - if (depthMinusIn1Task != null) { - // 生成移库任务,并把移库任务的前置任务设置为该入库任务 - Task moveTask = genMoveTask(depthMinus1Location); - moveTask.setPreTask(depthMinusIn1Task.getTaskId()); - taskMapper.insert(moveTask); - // 对应载具所有库存上锁 - stockMapper.update(new LambdaUpdateWrapper() - .set(Stock::getStockStatus, StockStatus.MOVE.getCode()) - .eq(Stock::getLocationId, depthMinus1Location.getLocationId())); - // 对应载具状态设置 - vehicleMapper.update(new LambdaUpdateWrapper() - .set(Vehicle::getVehicleStatus, VehicleStatus.MOVE.getCode()) - .eq(Vehicle::getCurrentLocation, depthMinus1Location.getLocationId())); - depthMinus1MoveTask.setTaskId(moveTask.getTaskId()); - return depthMinus1MoveTask; - } else { - // 判断是否有出库、移库、盘点、拣选等任务 - Task depthMinusOut1Task = taskMapper.selectOne(new LambdaQueryWrapper() - .eq(Task::getOrigin, depthMinus1Location.getLocationId())); - if (depthMinusOut1Task != null) { - depthMinus1MoveTask.setTaskId(depthMinusOut1Task.getTaskId()); - } else { - // 生成移库任务,并把移库任务的前置任务设置为该入库任务 - Task moveTask = genMoveTask(depthMinus1Location); - // 判断当前深度-2的库位是否有移库任务 - TaskDto depthMinus2MoveTask = genMoveTask(depthMinus1Location.getLocationId()); - if (depthMinus2MoveTask.getTaskId().equals("LOCKED")) { - depthMinus1MoveTask.setTaskId("LOCKED"); - return depthMinus1MoveTask; - } - moveTask.setPreTask(depthMinus2MoveTask.getTaskId()); - taskMapper.insert(moveTask); - // 对应载具所有库存上锁 - stockMapper.update(new LambdaUpdateWrapper() - .set(Stock::getStockStatus, StockStatus.MOVE.getCode()) - .eq(Stock::getLocationId, depthMinus1Location.getLocationId())); - // 对应载具状态设置 - vehicleMapper.update(new LambdaUpdateWrapper() - .set(Vehicle::getVehicleStatus, VehicleStatus.MOVE.getCode()) - .eq(Vehicle::getCurrentLocation, depthMinus1Location.getLocationId())); - depthMinus1MoveTask.setTaskId(moveTask.getTaskId()); - } - return depthMinus1MoveTask; - } - } else { - // 生成当前深度-2的库位的移库任务,即当前深度-1的库位作为参数 - TaskDto depthMinus2MoveTask = genMoveTask(depthMinus1Location.getLocationId()); - return StringUtils.isNotEmpty(depthMinus1MoveTask.getTaskId()) ? depthMinus1MoveTask : depthMinus2MoveTask; - } - } - } - return null; - } - - /** - * 生成一个移库任务 - * @param originLocation 原库位 - * @return 生成的移库任务 - */ - private Task genMoveTask(Location originLocation) { - Task moveTask = new Task(); - // 先找一个新库位,同一个设备号,但是不同的排列层 - Location newLocation = new Location(); - List availableLocations = locationMapper.selectList(new LambdaQueryWrapper() - .eq(Location::getEquipmentId, originLocation.getEquipmentId()) - .eq(Location::getLocationType, originLocation.getLocationType()) - .eq(Location::getIsLock, 0) - .eq(Location::getLocationStatus, LocationStatus.EMPTY.getCode()) - .ne(Location::getWRow, originLocation.getWRow()) - .ne(Location::getWCol, originLocation.getWCol()) - .ne(Location::getWLayer, originLocation.getWLayer())); - for (Location oneAvailableLocation : availableLocations) { - LambdaQueryWrapper haveTaskQueryWrapper = new LambdaQueryWrapper() - .select(Location::getLocationId) - .eq(Location::getWRow, oneAvailableLocation.getWRow()) - .eq(Location::getWCol, oneAvailableLocation.getWCol()) - .eq(Location::getWLayer, oneAvailableLocation.getWLayer()); - List haveTaskLocations = locationMapper.selectList(haveTaskQueryWrapper); - // 判断当前排列层的库位是否有出库或者移库任务 - boolean hasTasksFlag = false; - for (Location havaTaskLocation : haveTaskLocations) { - LambdaQueryWrapper taskOutQueryWrapper = new LambdaQueryWrapper() - .select(Task::getTaskId) - .eq(Task::getOrigin, havaTaskLocation.getLocationId()); - LambdaQueryWrapper taskInQueryWrapper = new LambdaQueryWrapper() - .select(Task::getTaskId) - .eq(Task::getDestination, havaTaskLocation.getLocationId()); - if (super.count(taskOutQueryWrapper) > 0 || super.count(taskInQueryWrapper) > 0) { - hasTasksFlag = true; - break; - } - } - if (hasTasksFlag) continue; - // 锁定库位 - LambdaUpdateWrapper updateLocationWrapper = new LambdaUpdateWrapper() - .set(Location::getLocationStatus, LocationStatus.OCCUPY.getCode()) - .set(Location::getVehicleId, originLocation.getVehicleId()) - .eq(Location::getLocationId, oneAvailableLocation.getLocationId()) - .eq(Location::getLocationStatus, LocationStatus.EMPTY.getCode()); - if (locationMapper.update(updateLocationWrapper) > 0) { - newLocation = oneAvailableLocation; - break; - } - } - if (StringUtils.isNotEmpty(newLocation.getLocationId())) { - // 生成移库任务 - moveTask.setTaskId(WmsUtils.generateId("MOVE_")); - moveTask.setTaskType(TaskType.MOVE.getCode()); - moveTask.setTaskPriority(1); - moveTask.setTaskGroup(WmsUtils.generateId("")); - moveTask.setVehicleId(originLocation.getVehicleId()); - moveTask.setOrigin(originLocation.getLocationId()); - moveTask.setDestination(newLocation.getLocationId()); - moveTask.setUserName("WMS"); - moveTask.setCreateTime(LocalDateTime.now()); - moveTask.setTaskStatus(WmsTaskStatus.NEW.getCode()); - } - - return moveTask; - } } diff --git a/src/main/java/com/wms/utils/MailUtils.java b/src/main/java/com/wms/utils/MailUtils.java new file mode 100644 index 0000000..9961090 --- /dev/null +++ b/src/main/java/com/wms/utils/MailUtils.java @@ -0,0 +1,54 @@ +package com.wms.utils; + +import javax.mail.*; +import javax.mail.MessagingException; +import javax.mail.internet.AddressException; +import javax.mail.internet.InternetAddress; +import javax.mail.internet.MimeMessage; +import java.util.Properties; + +public class MailUtils { + /** + * + * @param email 接收者邮箱 + * @param subject 邮件主题 + * @param emailMsg 邮件内容 + * @throws AddressException 邮箱地址异常 + * @throws MessagingException 邮件异常 + */ + public static void sendMailSmtp (String email, String subject, String emailMsg) + throws AddressException, MessagingException { + //创建配置文件 + Properties props = new Properties(); + //设置发送时遵从SMTP协议 + props.setProperty("mail.transport.protocol", "SMTP"); + /* + * 发送邮件的域名 + * smtp.xx.com + * smtp.qq.com则代表发送邮件时使用的邮箱域名来自qq + * smtp.163.com则代表发送邮件时使用的邮箱域名来自163 + */ + props.setProperty("mail.host", "smtp.zmail300.cn"); + //设置用户的认证方式auth + props.setProperty("mail.smtp.auth", "true"); + Authenticator auth = new Authenticator() { + public PasswordAuthentication getPasswordAuthentication() { + //return new PasswordAuthentication("用户名", "密码"); + //注意qq邮箱需要去qq邮箱的设置中获取授权码,并将授权码作为密码来填写 + return new PasswordAuthentication("liangzhou@baokai.cn", "Liang@9468"); + } + }; + //创建session域 + Session session = Session.getInstance(props, auth); + Message message = new MimeMessage(session); + //设置邮件发送者,与PasswordAuthentication中的邮箱一致即可 + message.setFrom(new InternetAddress("liangzhou@baokai.cn")); + message.setRecipient(Message.RecipientType.TO, new InternetAddress(email)); + //设置邮件主题 + message.setSubject(subject); + //设置邮件内容 + message.setContent(emailMsg, "text/html;charset=utf-8"); + //发送邮件 + Transport.send(message); + } +} diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index a48975a..a1985f3 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -8,20 +8,20 @@ spring: # 主库 master: # 宝开服务器--外网 - url: jdbc:mysql://112.4.208.194:3001/wms_miniload_bk7?characterEncoding=utf8&serverTimezone=Asia/Shanghai&allowMultiQueries=true&rewriteBatchedStatements=true +# url: jdbc:mysql://112.4.208.194:3001/wms_miniload_bk7?characterEncoding=utf8&serverTimezone=Asia/Shanghai&allowMultiQueries=true&rewriteBatchedStatements=true +# username: coder +# password: coder +# 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 username: coder password: coder driver-class-name: com.mysql.cj.jdbc.Driver - # 宝开服务器--内网 -# url: jdbc:mysql://192.168.3.254:3306/wms_miniload_bk7?characterEncoding=utf8&serverTimezone=Asia/Shanghai&allowMultiQueries=true&rewriteBatchedStatements=true -# username: coder -# password: coder -# driver-class-name: com.mysql.jdbc.Driver # 上线环境 # url: jdbc:mysql://localhost:3306/wms_xizhou?characterEncoding=utf8&serverTimezone=Asia/Shanghai&allowMultiQueries=true&rewriteBatchedStatements=true # username: developer # password: developer -# driver-class-name: com.mysql.jdbc.Driver +# driver-class-name: com.mysql.cj.jdbc.Driver # 从库 slave_1: url: jdbc:mysql://localhost:3306/wms_xizhou?characterEncoding=utf8&serverTimezone=Asia/Shanghai&allowMultiQueries=true&rewriteBatchedStatements=true