From 3c8d036aa96fb1c6e41caafe44ba1777da761e31 Mon Sep 17 00:00:00 2001 From: "HUOJIN\\92525" <925258474@qq.com> Date: Tue, 30 Apr 2024 14:53:26 +0800 Subject: [PATCH] no message --- .../java/com/youchain/utils/RedisUtils.java | 2 + .../com/youchain/utils/RedisUtils.class | Bin 19135 -> 19268 bytes .../businessdata/rest/KMReSController.java | 104 +++++++++------- .../service/impl/MlsServiceImpl.java | 14 +-- .../service/impl/MoServiceImpl.java | 115 ++++++++++++------ .../youchain/modules/quartz/task/moTask.java | 4 +- .../security/service/dto/OnlineUserDto.java | 4 +- 7 files changed, 151 insertions(+), 92 deletions(-) diff --git a/youchain-common/src/main/java/com/youchain/utils/RedisUtils.java b/youchain-common/src/main/java/com/youchain/utils/RedisUtils.java index 8eb3f3f..59bfebb 100644 --- a/youchain-common/src/main/java/com/youchain/utils/RedisUtils.java +++ b/youchain-common/src/main/java/com/youchain/utils/RedisUtils.java @@ -23,6 +23,7 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.data.redis.connection.RedisConnection; import org.springframework.data.redis.connection.RedisConnectionFactory; import org.springframework.data.redis.core.*; +import org.springframework.data.redis.serializer.JdkSerializationRedisSerializer; import org.springframework.data.redis.serializer.StringRedisSerializer; import org.springframework.stereotype.Component; @@ -45,6 +46,7 @@ public class RedisUtils { this.redisTemplate.setHashKeySerializer(new StringRedisSerializer()); this.redisTemplate.setKeySerializer(new StringRedisSerializer()); this.redisTemplate.setStringSerializer(new StringRedisSerializer()); + this.redisTemplate.setValueSerializer(new JdkSerializationRedisSerializer()); } /** diff --git a/youchain-common/target/classes/com/youchain/utils/RedisUtils.class b/youchain-common/target/classes/com/youchain/utils/RedisUtils.class index 320a355991430526b17e89ffc1231b8bc44dbf6a..7cf34f6ff5309c3e5c808c52eee17ade22dabe83 100644 GIT binary patch literal 19268 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 literal 19135 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 diff --git a/youchain-system/src/main/java/com/youchain/businessdata/rest/KMReSController.java b/youchain-system/src/main/java/com/youchain/businessdata/rest/KMReSController.java index 637e4b2..495887a 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/rest/KMReSController.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/rest/KMReSController.java @@ -30,6 +30,7 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.scheduling.annotation.Async; +import org.springframework.scheduling.annotation.EnableAsync; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; @@ -49,6 +50,7 @@ import static org.springframework.http.HttpStatus.OK; @Api(tags = "KMReS") @RequestMapping("/interfaces/api/amr") @Slf4j +@EnableAsync public class KMReSController { private final AgvTaskService agvTaskService; @@ -63,57 +65,78 @@ public class KMReSController { @ApiOperation("KMReS接口回调") @AnonymousAccess public ResponseEntity missionStateCallback(@RequestBody MissionStateCallback missionStateCallback) { - String id = missionStateCallback.getMissionCode();//作业 id - String containerCode = missionStateCallback.getContainerCode();//容器编号 - String missionStatus = missionStateCallback.getMissionStatus();//作业当前状态 - try { - //料箱出库任务 - if(id.indexOf("LX")!=-1){ - if(missionStatus.equals("CANCELED")){ - List agvTaskList= agvTaskService.findByjobCode(id); - for(AgvTask agvTask:agvTaskList){ - if(!agvTask.getStatus().equals(BizStatus.FINISH)){ - agvTask.setStatus(BizStatus.CANCEL); - agvTask.setEndTime(new Timestamp(new Date().getTime())); - agvTaskService.update(agvTask); - } - } - }else { - AgvTask agvTask= agvTaskService.findByjobCode(id,containerCode); - agvTaskService.agvTaskCallback(agvTask,missionStatus,containerCode); - List taskList = taskRepository.getAgvTaskList(agvTask.getId()); - Task task = taskList.get(0); - if(task==null){ - return new ResponseEntity<>(ApiResult.fail(BAD_REQUEST.value(), "任务不存在!", ""), BAD_REQUEST); - } - returnIssue(task);//叫料结果回传 - } + String id = missionStateCallback.getMissionCode(); // 作业 id + String containerCode = missionStateCallback.getContainerCode(); // 容器编号 + String missionStatus = missionStateCallback.getMissionStatus(); // 作业当前状态 - }else{ + try { + if (id.contains("LX")) { + //出库 + pickTask(id, containerCode, missionStatus); + } else { //入库 - AgvTaskDto agvTaskDto = agvTaskService.findById(Integer.parseInt(id)); - AgvTask agvTask = agvTaskService.toEntity(agvTaskDto);//转实体 - List taskList = taskRepository.getAgvTaskList(agvTask.getId()); - if (taskList.isEmpty()) { - return new ResponseEntity<>(ApiResult.fail(BAD_REQUEST.value(), "任务不存在!", ""), BAD_REQUEST); - } - Task task = taskList.get(0); - agvTaskService.agvTaskCallback(agvTask, task, missionStatus); - returnMo(task.getBillCode());//回传MO信息 + asnTask(id, missionStatus); } - return new ResponseEntity<>(ApiResult.success(OK.value(), "", ""), HttpStatus.OK); + return ResponseEntity.ok(ApiResult.success(HttpStatus.OK.value(), "", "")); } catch (Exception e) { - return new ResponseEntity<>(ApiResult.fail(BAD_REQUEST.value(), "KMReS接口回调异常", e.getMessage()), BAD_REQUEST); + return new ResponseEntity<>(ApiResult.fail(HttpStatus.BAD_REQUEST.value(), "KMReS接口回调异常", e.getMessage()), HttpStatus.BAD_REQUEST); } } + private void asnTask(String id, String missionStatus) { + AgvTaskDto agvTaskDto = agvTaskService.findById(Integer.parseInt(id)); + AgvTask agvTask = agvTaskService.toEntity(agvTaskDto); + Task task = getFirstTask(agvTask.getId()); + + if (task == null) { + throw new RuntimeException("任务不存在!"); + } + + agvTaskService.agvTaskCallback(agvTask, task, missionStatus); + returnMo(task.getBillCode()); // 回传 MO 信息 + } + + private void pickTask(String id, String containerCode, String missionStatus) throws Exception { + if ("CANCELED".equals(missionStatus)) { + cancelAgvTasks(id); + } else { + AgvTask agvTask = agvTaskService.findByjobCode(id, containerCode); + agvTaskService.agvTaskCallback(agvTask, missionStatus, containerCode); + Task task = getFirstTask(agvTask.getId()); + + if (task == null) { + throw new RuntimeException("任务不存在!"); + } + + returnIssue(task); // 叫料结果回传 + } + } + + private void cancelAgvTasks(String id) { + List agvTaskList = agvTaskService.findByjobCode(id); + for (AgvTask agvTask : agvTaskList) { + if (!agvTask.getStatus().equals(BizStatus.FINISH)) { + agvTask.setStatus(BizStatus.CANCEL); + agvTask.setEndTime(new Timestamp(new Date().getTime())); + agvTaskService.update(agvTask); + } + } + } + + private Task getFirstTask(Integer agvTaskId) { + List taskList = taskRepository.getAgvTaskList(agvTaskId); + return taskList.isEmpty() ? null : taskList.get(0); + } + + /** * 回传MO信息 * * @param billCode */ + @Async public void returnMo(String billCode) { OrderDto orderDto = orderService.findByBarcodeNumber(billCode); @@ -131,8 +154,7 @@ public class KMReSController { long endTime = System.currentTimeMillis(); long time = endTime - startTime; // 保存日志 - logService.saveLogInfo(returnMoInfo,UrlApi.publicApi, resultJson, "按MO票入库", time); - + logService.saveLogInfo(returnMoInfo, UrlApi.publicApi, resultJson, "按MO票入库", time); } @@ -152,12 +174,10 @@ public class KMReSController { long endTime = System.currentTimeMillis(); long time = endTime - startTime; // 保存日志 - logService.saveLogInfo(returnIssueInfo,UrlApi.publicApi, resultJson, "叫料结果回传", time); + logService.saveLogInfo(returnIssueInfo, UrlApi.publicApi, resultJson, "叫料结果回传", time); } - - public static ReturnMoInfo getReturnMoInfo(List tasks) { ReturnMoParams params = new ReturnMoParams(); params.setOrgId(808); diff --git a/youchain-system/src/main/java/com/youchain/businessdata/service/impl/MlsServiceImpl.java b/youchain-system/src/main/java/com/youchain/businessdata/service/impl/MlsServiceImpl.java index b82e12e..020b53e 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/service/impl/MlsServiceImpl.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/service/impl/MlsServiceImpl.java @@ -285,7 +285,7 @@ public class MlsServiceImpl implements MlsService { } else { DeptDto deptDto = deptService.findById(7L); dept = deptService.toEntity(deptDto); - redisUtils.set("dept", dept, 0); + redisUtils.set("dept", dept); } @@ -397,8 +397,7 @@ public class MlsServiceImpl implements MlsService { } @Override - @Transactional(rollbackFor = Exception.class) - public synchronized void getIssueInfo(IssueInfo issueInfo) { + public void getIssueInfo(IssueInfo issueInfo) { String taskNumber = issueInfo.getTaskNumber();//任务号 // 指定Set的类型 Set workOrderNameSet = issueInfo.getWorkOrderName(); @@ -407,18 +406,18 @@ public class MlsServiceImpl implements MlsService { } List inventoryList = inventoryService.findInvByBillCode(workOrderNameSet);//根据工单号查询库存信息 - if (inventoryList.size() == 0) { + if (inventoryList.isEmpty()) { throw new RuntimeException("无库存信息!"); } //目标点 Point endPoint = null; - boolean flag = redisUtils.hasKey("endPoint"); + boolean flag = redisUtils.hasKey("ckjbk"); if (flag) { - endPoint = (Point) redisUtils.get("endPoint"); + endPoint = (Point) redisUtils.get("ckjbk"); } else { endPoint = pointService.findByCode(null, null, null, "出库接驳口", null); - redisUtils.set("endPoint", endPoint, 0); + redisUtils.set("ckjbk", endPoint); } List inventoryToUpdate = new ArrayList<>(); @@ -444,6 +443,7 @@ public class MlsServiceImpl implements MlsService { pd.setOrderQty(inv.getQuantity()); pd.setAllocatedQty(inv.getQuantity()); pd.setStatus(BizStatus.ALLOCATE); + pd.setDept(item.getDept()); pickDetailToCreate.add(pd); //生成搬运任务 diff --git a/youchain-system/src/main/java/com/youchain/businessdata/service/impl/MoServiceImpl.java b/youchain-system/src/main/java/com/youchain/businessdata/service/impl/MoServiceImpl.java index 5a35c5d..9d41383 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/service/impl/MoServiceImpl.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/service/impl/MoServiceImpl.java @@ -35,6 +35,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; + import java.util.*; import java.io.IOException; import javax.persistence.EntityManager; @@ -63,6 +64,7 @@ public class MoServiceImpl implements MoService { private final TaskService taskService; private final AsnDetailService asnDetailService; private final ItemKeyService itemKeyService; + private final RedisUtils redisUtils; @Override public Map queryAll(MoQueryCriteria criteria, Pageable pageable) { @@ -153,63 +155,62 @@ public class MoServiceImpl implements MoService { public void scanMo(String mo) { //条码格式;12227000016951-qth1847-240411422924 - String[] arr = mo.split("-"); - if (arr.length != 3) { - throw new RuntimeException("条码格式错误!"); - } + // 验证条码格式 + validateBarcodeFormat(mo); + String[] arr = mo.split("-"); String itemCode = arr[0];//物料编号 String stockCode = arr[1];//容器编号 String labelNo = arr[2];//标签号 - Item item = itemService.existItem(itemCode); - if (item == null) { - throw new RuntimeException(itemCode + "系统无此物料!"); + // 验证物料是否存在 + Item item = null; + boolean flagItem = redisUtils.hasKey(itemCode); + if (flagItem) { + item = (Item) redisUtils.get(itemCode); + } else { + item = getOrThrow(Optional.ofNullable(itemService.existItem(itemCode)), itemCode + " 系统无此物料!"); + redisUtils.set(itemCode,item); } - Stock stock = stockService.findByCode(stockCode, null); - if (stock == null) { - throw new RuntimeException(stockCode + "系统无此容器!"); + // 验证容器是否存在 + Stock stock=null; + boolean flagStock = redisUtils.hasKey(stockCode); + if (flagStock) { + stock = (Stock) redisUtils.get(stockCode); + } else { + stock = getOrThrow(Optional.ofNullable(stockService.findByCode(stockCode, null)), stockCode + " 系统无此容器!"); + redisUtils.set(stockCode,stock); } + // 验证容器状态 + validateStockStatus(stock); - if (stock.getStatus().equals(BaseStatus.USED)) { - throw new RuntimeException(stockCode + "箱码已经有绑定关系!"); + //验证入库接驳口是否存在 + Point srcPoint = null; + boolean flagSrcPoint = redisUtils.hasKey("rkjbk"); + if (flagSrcPoint) { + srcPoint = (Point) redisUtils.get("rkjbk"); + } else { + srcPoint = getOrThrow(Optional.ofNullable(pointService.findByCode(null, null, null, "入库接驳口", null)), "系统无入库接驳口!"); + redisUtils.set("rkjbk", srcPoint, 0); } + Point endPoint = getOrThrow(Optional.ofNullable(pointService.findByCode(null, BaseStatus.FREE, BaseStatus.STORAGE, "存储区", null)), "存储区没有空闲点位!"); - Point srcPoint = pointService.findByCode(null, null, null, "入库接驳口", null); - if (srcPoint == null) { - throw new RuntimeException("系统无入库接驳口!"); - } + MoDto moDto = getOrThrow(Optional.ofNullable(findByLabelNo(labelNo)), labelNo + " 系统无此标签!"); - Point endPoint = pointService.findByCode(null, BaseStatus.FREE, BaseStatus.STORAGE, "存储区", null); - if (endPoint == null) { - throw new RuntimeException("存储区没有空闲点位!"); - } + // 验证标签状态 + validateLabelState(moDto); - MoDto moDto = this.findByLabelNo(labelNo); - if (moDto == null) { - throw new RuntimeException(labelNo + "系统无此标签!"); - } + // 验证标签是否已入库 + validateTask(moDto); - if (!moDto.getLabelState().equals("PRINTED")) { - throw new RuntimeException(labelNo + "标签已被接收(已接收状态)!"); - } + // 验证送货单是否存在 + OrderDto orderDto = getOrThrow(Optional.ofNullable(orderService.findByDeliveryHeaderId(moDto.getDeliveryHeaderId())), moDto.getDeliveryHeaderId() + " 系统无此送货单!"); - if (taskService.findByLabelNo(labelNo).size() > 0) { - throw new RuntimeException(labelNo + "此标签已入库!"); - } - - OrderDto orderDto = orderService.findByDeliveryHeaderId(moDto.getDeliveryHeaderId()); - - if (orderDto == null) { - throw new RuntimeException(moDto.getDeliveryHeaderId() + "系统无此订单!"); - } - - if (!orderDto.getDeliveryStatus().equals("lm_initial")) { - throw new RuntimeException(moDto.getLabelNo() + "标签背后的送货单" + orderDto.getBarcodeNumber() + "已取消(标签失效)!"); - } + // 验证送货单状态 + validateOrder(orderDto, moDto); // 生成AGV任务和入库任务 createTasks(item, stock, srcPoint, endPoint, moDto.getLabelNo(), moDto, orderDto); @@ -220,6 +221,40 @@ public class MoServiceImpl implements MoService { } + private void validateBarcodeFormat(String mo) { + if (mo.split("-").length != 3) { + throw new IllegalArgumentException("条码格式错误!"); + } + } + + private T getOrThrow(Optional optional, String errorMessage) { + return optional.orElseThrow(() -> new RuntimeException(errorMessage)); + } + + private void validateStockStatus(Stock stock) { + if (stock.getStatus().equals(BaseStatus.USED)) { + throw new RuntimeException(stock.getCode() + " 箱码已经有绑定关系!"); + } + } + + private void validateLabelState(MoDto moDto) { + if (!"PRINTED".equals(moDto.getLabelState())) { + throw new RuntimeException(moDto.getLabelNo() + " 标签已被接收(已接收状态)!"); + } + } + + private void validateTask(MoDto moDto) { + if (taskService.findByLabelNo(moDto.getLabelNo()).size() > 0) { + throw new RuntimeException(moDto.getLabelNo() + "此标签已入库!"); + } + } + + private void validateOrder(OrderDto orderDto, MoDto moDto) { + if (!orderDto.getDeliveryStatus().equals("lm_initial")) { + throw new RuntimeException(moDto.getLabelNo() + "标签背后的送货单" + orderDto.getBarcodeNumber() + "已取消(标签失效)!"); + } + } + @Override public Map findBylabelNos(Set labelNos) { String hql = "from Mo where labelNo in (:labelNos) "; diff --git a/youchain-system/src/main/java/com/youchain/modules/quartz/task/moTask.java b/youchain-system/src/main/java/com/youchain/modules/quartz/task/moTask.java index 8125846..c8396df 100644 --- a/youchain-system/src/main/java/com/youchain/modules/quartz/task/moTask.java +++ b/youchain-system/src/main/java/com/youchain/modules/quartz/task/moTask.java @@ -44,8 +44,8 @@ public class moTask { params.setInvCodes(invCodes); //DateUtil.format(DateUtil.beginOfDay(new Date()), "yyyy-MM-dd HH:mm:ss") params.setIqcResult(""); - params.setStartTime("2024-04-28 00:00:00"); - params.setEndTime("2024-04-28 23:59:59"); + params.setStartTime("2024-04-27 00:00:00"); + params.setEndTime("2024-04-27 23:59:59"); params.setPageNo(1); params.setPageSize(100); MoInfo moInfo = new MoInfo(); diff --git a/youchain-system/src/main/java/com/youchain/modules/security/service/dto/OnlineUserDto.java b/youchain-system/src/main/java/com/youchain/modules/security/service/dto/OnlineUserDto.java index bff2d35..19ba01d 100644 --- a/youchain-system/src/main/java/com/youchain/modules/security/service/dto/OnlineUserDto.java +++ b/youchain-system/src/main/java/com/youchain/modules/security/service/dto/OnlineUserDto.java @@ -18,6 +18,8 @@ package com.youchain.modules.security.service.dto; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; + +import java.io.Serializable; import java.util.Date; /** @@ -27,7 +29,7 @@ import java.util.Date; @Data @AllArgsConstructor @NoArgsConstructor -public class OnlineUserDto { +public class OnlineUserDto implements Serializable { /** * 用户名