diff --git a/youchain-system/src/main/java/com/youchain/businessdata/service/dto/InventoryQueryCriteria.java b/youchain-system/src/main/java/com/youchain/businessdata/service/dto/InventoryQueryCriteria.java index 2f43b9f..71c594a 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/service/dto/InventoryQueryCriteria.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/service/dto/InventoryQueryCriteria.java @@ -43,9 +43,12 @@ public class InventoryQueryCriteria{ @Query(joinName = "itemKey>item>", propName="name",type = Query.Type.INNER_LIKE) private String itemName; - @Query(joinName = "itemKey>", propName="propC1",type = Query.Type.INNER_LIKE) + @Query(joinName = "itemKey", propName="propC1",type = Query.Type.INNER_LIKE) private String propC1; + @Query(joinName = "itemKey", propName="orderNumber",type = Query.Type.INNER_LIKE) + private String orderNumber; + @Query(joinName = "itemKey>item>", propName="code",type = Query.Type.IN) private List itemCode; @@ -56,8 +59,8 @@ public class InventoryQueryCriteria{ @Query(type = Query.Type.NOT_EQUAL) private Double quantity; - @Query(joinName = "stock", propName="name",type = Query.Type.INNER_LIKE) - private String stockName; + @Query(joinName = "stock", propName="code",type = Query.Type.INNER_LIKE) + private String stockCode; @Query(joinName = "point>area>", propName="name",type = Query.Type.INNER_LIKE) private String areaName; diff --git a/youchain-system/src/main/java/com/youchain/businessdata/service/impl/AgvTaskServiceImpl.java b/youchain-system/src/main/java/com/youchain/businessdata/service/impl/AgvTaskServiceImpl.java index f2dc183..86714f3 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/service/impl/AgvTaskServiceImpl.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/service/impl/AgvTaskServiceImpl.java @@ -468,114 +468,56 @@ public class AgvTaskServiceImpl implements AgvTaskService { String agv_on_off = "OFF"; agv_on_off = dictService.getDictDescription("agv_on_off") == null ? "OFF" : dictService.getDictDescription("agv_on_off").getDescription(); String code = "0"; + if (status.equals("ARRIVED")) { } else if (status.equals("UP_CONTAINER")) { } else if (status.equals("COMPLETED")) { - //任务完成;根据AGV任务的目标点位走对应流程 - Point endPoint = pointService.findByCode(agvTask.getEndSlotCode(), null, null, null, null); - String endAreaName = endPoint.getArea().getName(); - if (endPoint != null) { - Stock stock = stockRepository.getStockByCode(containerCode); - if (stock == null) { - throw new RuntimeException(containerCode + "容器不存在! 请维护"); - } - List taskList = taskRepository.getAgvTaskList(agvTask.getId()); - if (endAreaName.equals(AreaNameDic.OneFCX) || endAreaName.equals(AreaNameDic.TwoFCX)) { - //目标点位容器都由人为拉走,调用容器出场 - /* if (agv_on_off.equals("ON")) { - String jsonObject = this.containerOut(containerCode); - String resultJson = HttpPostUtil.sendPostReq(UrlApi.containerOut, jsonObject.toString()); - JSONObject resulObject = JSON.parseObject(resultJson); - code = resulObject.getString("code") == null ? "" : resulObject.getString("code"); + List taskList = taskRepository.getAgvTaskList(agvTask.getId()); + if(agvTask.getType().equals(BizStatus.ASN)){ + //增加库存 + for (Task task : taskList) { + AsnDetail ad = task.getAsnDetail(); + ad.setReceivedQty(ad.getOrderQty()); + ad.setStatus(BizStatus.RECEIVED); + asnDetailRepository.save(ad); + task.setTaskStatus(BizStatus.FINISH); + task.setMoveQty(task.getPlanQty()); + taskService.update(task); + Stock stock=task.getSrcStock(); + + List inventoryList = inventoryService.queryInventory(stock); + for (Inventory inventory : inventoryList) { + Long[] ids = new Long[1]; + ids[0] = inventory.getId(); + inventoryService.deleteAll(ids); } - if (code.equals("0")) { - stock.setPoint(null); - stock.setStatus(BaseStatus.FREE); - stockRepository.save(stock); - }*/ - stock.setPoint(endPoint); - stockRepository.save(stock); - //线边点位释放 - endPoint.setStatus(BaseStatus.FREE); - pointService.update(endPoint); + + + //生成库存 + Inventory inventory = inventoryService.getInventory(task.getItemKey(), task.getDstPoint(), task.getSrcStock(), task.getDept(), BizStatus.RECEIVING_UP); + inventory.setQuantity(task.getPlanQty()); + inventoryService.update(inventory); + inventoryLogService.storeInventoryLog(BizStatus.RECEIVING_UP, BizStatus.ADD, null, task.getItemKey(), task.getSrcPoint(), task.getDstPoint(), task.getSrcStock(), task.getSrcStock(), task.getPlanQty(), task.getPlanQty(), BizStatus.ASN, ad.getId(), inventory.getId(), ad.getRemark()); + + } + + }else if(agvTask.getType().equals(BizStatus.PICK)){ //处理实际逻辑 - if (endAreaName.equals(AreaNameDic.OneFK) || endAreaName.equals(AreaNameDic.TwoFK)) { - stock.setPoint(endPoint); - stock.setStatus(BaseStatus.FREE); - stockRepository.save(stock); - endPoint.setStatus(BaseStatus.USED); - pointService.update(endPoint); - } else if (endAreaName.equals(AreaNameDic.TwoFCX)) { - //扣除库存 - for (Task task : taskList) { - try { - taskService.pickConfirm(task.getId(), task.getPlanQty()); - } catch (Exception e) { - throw new RuntimeException(e.getMessage()); - } + + //扣除库存 + for (Task task : taskList) { + try { + taskService.pickConfirm(task.getId(), task.getPlanQty()); + } catch (Exception e) { + throw new RuntimeException(e.getMessage()); } - //容器出场 - if (agv_on_off.equals("ON")) { - String jsonObject = this.containerOut(containerCode); - String resultJson = HttpPostUtil.sendPostReq(UrlApi.containerOut, jsonObject.toString()); - JSONObject resulObject = JSON.parseObject(resultJson); - code = resulObject.getString("code") == null ? "" : resulObject.getString("code"); - } - if (code.equals("0")) { - stock.setPoint(null); - stock.setStatus(BaseStatus.FREE); - stockRepository.save(stock); - } - - } else if (endAreaName.equals(AreaNameDic.TwoFB) || endAreaName.equals(AreaNameDic.OneFC)) { - //增加库存 - for (Task task : taskList) { - AsnDetail ad = task.getAsnDetail(); - ad.setReceivedQty(ad.getOrderQty()); - ad.setStatus(BizStatus.RECEIVED); - ad.setStock(stock); - asnDetailRepository.save(ad); - task.setTaskStatus(BizStatus.FINISH); - task.setMoveQty(task.getPlanQty()); - task.setSrcStock(stock); - if (stock != null) { - task.setSrcStockCode(stock.getCode()); - task.setDstStockCode(stock.getCode()); - } - task.setDstStock(stock); - taskService.update(task); - - List inventoryList = inventoryService.queryInventory(stock); - for (Inventory inventory : inventoryList) { - Long[] ids = new Long[1]; - ids[0] = inventory.getId(); - inventoryService.deleteAll(ids); - } - - - //生成库存 - Inventory inventory = inventoryService.getInventory(task.getItemKey(), task.getDstPoint(), stock, task.getDept(), BizStatus.RECEIVING_UP); - double srcQty = inventory.getQuantity(); - inventory.addQty(inventory, task.getPlanQty()); - inventoryService.update(inventory); - stock.setStatus(BaseStatus.USED); - stock.setPoint(inventory.getPoint()); - stockRepository.save(stock); - Point point = inventory.getPoint(); - point.setStatus(BaseStatus.USED); - pointService.update(point); - inventoryLogService.storeInventoryLog(BizStatus.RECEIVING_UP, BizStatus.ADD, null, task.getItemKey(), task.getSrcPoint(), task.getDstPoint(), task.getSrcStock(), task.getSrcStock(), srcQty, task.getPlanQty(), BizStatus.ASN, ad.getId(), inventory.getId(), ad.getRemark()); - } - } } - //任务完成 agvTask.setStatus(BizStatus.FINISH); - agvTask.setStockCode(containerCode); agvTask.setEndTime(new Timestamp(new Date().getTime())); this.update(agvTask); @@ -585,33 +527,6 @@ public class AgvTaskServiceImpl implements AgvTaskService { String endAreaName = endPoint.getArea().getName(); //呼叫空车时异常,容器不出场,线边点位释放 if (endAreaName.equals(AreaNameDic.OneFCX)) { - //查询容器状态 - String jsonObject = this.containerQuery(containerCode); - String resultJson = HttpPostUtil.sendPostReq(UrlApi.containerQuery, jsonObject.toString()); - JSONObject resulObject = JSON.parseObject(resultJson); - if (resulObject != null) { - code = resulObject.getString("code") == null ? "" : resulObject.getString("code"); - if (code.equals("0")) { - String data1 = resulObject.getString("data") == null ? "" : resulObject.getString("data"); - JSONArray jsonArray = JSON.parseArray(data1); - JSONObject dataObject = JSON.parseObject(jsonArray.get(0).toString()); - String isCarry = dataObject.getString("isCarry") == null ? "" : dataObject.getString("isCarry"); - if (isCarry.equals("0")) { - log.info(agvTask.getId() + "任务" + containerCode + "容器未移动!"); - } else { - //容器已经移则释放空车点位状态 - Point startPoint = pointService.findByCode(agvTask.getStartSlotCode(), null, null, null, null); - startPoint.setStatus(BaseStatus.FREE); - pointService.update(startPoint); - } - //线边点位释放 - endPoint.setStatus(BaseStatus.FREE); - pointService.update(endPoint); - } - - } else { - throw new RuntimeException("查询容器信息接口异常!"); - } } else if (endAreaName.equals(AreaNameDic.TwoFCX)) { 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 5d587f5..3cefe25 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 @@ -214,7 +214,7 @@ public class MoServiceImpl implements MoService { createTasks(item, stock, srcPoint, endPoint, moDto.getLabelNo(), moDto, orderDto); // 更新容器状态和目标点位状态 - updateStockAndEndPoint(stock); + updateStockAndEndPoint(stock,endPoint); } @@ -240,8 +240,11 @@ public class MoServiceImpl implements MoService { } // 提取更新容器状态和目标点位状态的逻辑到单独方法 - private void updateStockAndEndPoint(Stock stock) { + private void updateStockAndEndPoint(Stock stock,Point point) { stock.setStatus(BaseStatus.USED); + stock.setPoint(point); stockService.update(stock); + point.setStatus(BaseStatus.USED); + pointService.update(point); } }