no message
parent
edade7cc3c
commit
17ad836f0d
|
|
@ -47,29 +47,25 @@ public class Box extends BaseEntity implements Serializable {
|
||||||
@ApiModelProperty(value = "ID")
|
@ApiModelProperty(value = "ID")
|
||||||
private Long id;
|
private Long id;
|
||||||
|
|
||||||
@Column(name = "`code`",nullable = false)
|
@Column(name = "`code`")
|
||||||
@NotBlank
|
|
||||||
@ApiModelProperty(value = "按钮盒编号")
|
@ApiModelProperty(value = "按钮盒编号")
|
||||||
private String code;
|
private String code;
|
||||||
|
|
||||||
@Column(name = "`name`",nullable = false)
|
@Column(name = "`name`")
|
||||||
@NotBlank
|
|
||||||
@ApiModelProperty(value = "按钮盒名称")
|
@ApiModelProperty(value = "按钮盒名称")
|
||||||
private String name;
|
private String name;
|
||||||
|
|
||||||
@OneToOne
|
@OneToOne
|
||||||
@JoinColumn(name = "`item_id`",nullable = true)
|
@JoinColumn(name = "`item_id`")
|
||||||
@ApiModelProperty(value = "物料")
|
@ApiModelProperty(value = "物料")
|
||||||
private Item item;
|
private Item item;
|
||||||
|
|
||||||
@OneToOne
|
@OneToOne
|
||||||
@JoinColumn(name = "`point_id`",nullable = false)
|
@JoinColumn(name = "`point_id`")
|
||||||
@NotNull
|
|
||||||
@ApiModelProperty(value = "点位")
|
@ApiModelProperty(value = "点位")
|
||||||
private Point point;
|
private Point point;
|
||||||
|
|
||||||
@Column(name = "`enabled`",nullable = false)
|
@Column(name = "`enabled`")
|
||||||
@NotNull
|
|
||||||
@ApiModelProperty(value = "状态:1启用、0禁用")
|
@ApiModelProperty(value = "状态:1启用、0禁用")
|
||||||
private Boolean enabled=true;
|
private Boolean enabled=true;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,9 @@ package com.youchain.basicdata.repository;
|
||||||
import com.youchain.basicdata.domain.PointItem;
|
import com.youchain.basicdata.domain.PointItem;
|
||||||
import org.springframework.data.jpa.repository.JpaRepository;
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
|
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
|
||||||
|
import org.springframework.data.jpa.repository.Query;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @website https://eladmin.vip
|
* @website https://eladmin.vip
|
||||||
|
|
@ -25,4 +28,6 @@ import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
|
||||||
* @date 2025-04-11
|
* @date 2025-04-11
|
||||||
**/
|
**/
|
||||||
public interface PointItemRepository extends JpaRepository<PointItem, Long>, JpaSpecificationExecutor<PointItem> {
|
public interface PointItemRepository extends JpaRepository<PointItem, Long>, JpaSpecificationExecutor<PointItem> {
|
||||||
|
@Query(value = "SELECT pi FROM PointItem pi", nativeQuery = false)
|
||||||
|
List<PointItem> findByPoint(Long id);
|
||||||
}
|
}
|
||||||
|
|
@ -74,6 +74,7 @@ public class BoxController {
|
||||||
@PreAuthorize("@el.check('box:add')")
|
@PreAuthorize("@el.check('box:add')")
|
||||||
public ResponseEntity<Object> createBox(@Validated @RequestBody Box resources) {
|
public ResponseEntity<Object> createBox(@Validated @RequestBody Box resources) {
|
||||||
resources.setDept(UserUtils.getDept());
|
resources.setDept(UserUtils.getDept());
|
||||||
|
resources.setCode(resources.getWorkType()+":"+resources.getPoint().getCode());
|
||||||
boxService.create(resources);
|
boxService.create(resources);
|
||||||
return new ResponseEntity<>(boxService.create(resources), HttpStatus.CREATED);
|
return new ResponseEntity<>(boxService.create(resources), HttpStatus.CREATED);
|
||||||
}
|
}
|
||||||
|
|
@ -83,6 +84,7 @@ public class BoxController {
|
||||||
@ApiOperation("修改box")
|
@ApiOperation("修改box")
|
||||||
@PreAuthorize("@el.check('box:edit')")
|
@PreAuthorize("@el.check('box:edit')")
|
||||||
public ResponseEntity<Object> updateBox(@Validated @RequestBody Box resources) {
|
public ResponseEntity<Object> updateBox(@Validated @RequestBody Box resources) {
|
||||||
|
resources.setCode(resources.getWorkType()+":"+resources.getPoint().getCode());
|
||||||
boxService.update(resources);
|
boxService.update(resources);
|
||||||
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -72,6 +72,7 @@ public class PointItemController {
|
||||||
@ApiOperation("修改pointItem")
|
@ApiOperation("修改pointItem")
|
||||||
@PreAuthorize("@el.check('pointItem:edit')")
|
@PreAuthorize("@el.check('pointItem:edit')")
|
||||||
public ResponseEntity<Object> updatePointItem(@Validated @RequestBody PointItem resources){
|
public ResponseEntity<Object> updatePointItem(@Validated @RequestBody PointItem resources){
|
||||||
|
resources.setCode(resources.getPoint().getCode()+":"+resources.getItem().getCode());
|
||||||
pointItemService.update(resources);
|
pointItemService.update(resources);
|
||||||
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -31,4 +31,6 @@ import java.util.List;
|
||||||
public interface InventoryRepository extends JpaRepository<Inventory, Long>, JpaSpecificationExecutor<Inventory> {
|
public interface InventoryRepository extends JpaRepository<Inventory, Long>, JpaSpecificationExecutor<Inventory> {
|
||||||
@Query(value = "select inv from Inventory inv where inv.billCode=?1 ")
|
@Query(value = "select inv from Inventory inv where inv.billCode=?1 ")
|
||||||
List<Inventory> findByBillCode(String billCode);
|
List<Inventory> findByBillCode(String billCode);
|
||||||
|
@Query(value = "select inv from Inventory inv where inv.itemKey.item.code in ?1 ")
|
||||||
|
List<Inventory> findInvByItemCodes(List<String> itemCodes);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -105,4 +105,5 @@ public interface InventoryService {
|
||||||
List<Inventory> getInvForPlan(String type,Long areaId,Long itemId,Long deptId);
|
List<Inventory> getInvForPlan(String type,Long areaId,Long itemId,Long deptId);
|
||||||
|
|
||||||
List<Inventory> findInvByBillCode(Set billCode);
|
List<Inventory> findInvByBillCode(Set billCode);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,11 @@
|
||||||
package com.youchain.businessdata.service;
|
package com.youchain.businessdata.service;
|
||||||
|
|
||||||
import com.youchain.annotation.Log;
|
import com.youchain.annotation.Log;
|
||||||
|
import com.youchain.basicdata.domain.Point;
|
||||||
import com.youchain.businessdata.inputJson.*;
|
import com.youchain.businessdata.inputJson.*;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
import java.util.concurrent.ExecutionException;
|
import java.util.concurrent.ExecutionException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -47,7 +49,11 @@ public interface MlsService {
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
void getIssueInfo(IssueInfo issueInfo);
|
void getIssueInfo(IssueInfo issueInfo);
|
||||||
|
/**
|
||||||
|
* 光电直接叫料
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
void getIssueInfo(List<String> itemCodes, Point endPoint);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 回传MO票
|
* 回传MO票
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,7 @@ import com.youchain.basicdata.service.ItemService;
|
||||||
import com.youchain.basicdata.service.PointService;
|
import com.youchain.basicdata.service.PointService;
|
||||||
import com.youchain.businessdata.domain.*;
|
import com.youchain.businessdata.domain.*;
|
||||||
import com.youchain.businessdata.inputJson.*;
|
import com.youchain.businessdata.inputJson.*;
|
||||||
|
import com.youchain.businessdata.repository.InventoryRepository;
|
||||||
import com.youchain.businessdata.service.*;
|
import com.youchain.businessdata.service.*;
|
||||||
import com.youchain.config.thread.ThreadPoolExecutorUtil;
|
import com.youchain.config.thread.ThreadPoolExecutorUtil;
|
||||||
import com.youchain.modules.system.domain.Dept;
|
import com.youchain.modules.system.domain.Dept;
|
||||||
|
|
@ -40,6 +41,7 @@ public class MlsServiceImpl implements MlsService {
|
||||||
private final PointService pointService;
|
private final PointService pointService;
|
||||||
private final PointRepository pointRepository;
|
private final PointRepository pointRepository;
|
||||||
private final InventoryService inventoryService;
|
private final InventoryService inventoryService;
|
||||||
|
private final InventoryRepository inventoryRepository;
|
||||||
private final RedisObjectUtils redisObjectUtils;
|
private final RedisObjectUtils redisObjectUtils;
|
||||||
private final BatchCreateOrUpdate batchCreateOrUpdate;
|
private final BatchCreateOrUpdate batchCreateOrUpdate;
|
||||||
|
|
||||||
|
|
@ -531,7 +533,105 @@ public class MlsServiceImpl implements MlsService {
|
||||||
throw new RuntimeException(errorMsgList.toString());
|
throw new RuntimeException(errorMsgList.toString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@Override
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public void getIssueInfo(List<String> itemCodes,Point endPoint) {
|
||||||
|
|
||||||
|
CompletableFuture<List<Inventory>> inventoryListFuture = CompletableFuture.supplyAsync(() -> {
|
||||||
|
|
||||||
|
List<Inventory> inventoryList = inventoryRepository.findInvByItemCodes(itemCodes);//物料号码查询库存信息
|
||||||
|
|
||||||
|
return inventoryList;
|
||||||
|
});
|
||||||
|
|
||||||
|
if (inventoryListFuture.join().isEmpty()) {
|
||||||
|
throw new RuntimeException("无库存信息!");
|
||||||
|
}
|
||||||
|
List<String> errorMsgList = new ArrayList<>();
|
||||||
|
inventoryListFuture.thenAccept((result) -> {
|
||||||
|
List<Inventory> inventoryToUpdate = new ArrayList<>();
|
||||||
|
List<PickDetail> pickDetailToCreate = new ArrayList<>();
|
||||||
|
List<AgvTask> agvTaskToCreate = new ArrayList<>();
|
||||||
|
List<Task> taskToCreate = new ArrayList<>();
|
||||||
|
for (Inventory inv : result) {
|
||||||
|
if (inv.getBeLock()==true&&BaseCode.PICK_YH_QR.equals("1")){
|
||||||
|
errorMsgList.add(inv.getItemKey().getPropC1() + "库存未验货!");
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (inv.getQueuedQty()>0){
|
||||||
|
errorMsgList.add(inv.getItemKey().getPropC1() + "库存已被占用!");
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
//根据库存信息生成叫料任务
|
||||||
|
Stock stock = inv.getStock();//容器
|
||||||
|
Point startPoint = inv.getPoint();//起始点位
|
||||||
|
ItemKey itemKey = inv.getItemKey();
|
||||||
|
Item item = inv.getItemKey().getItem();
|
||||||
|
|
||||||
|
//更新库存信息
|
||||||
|
inventoryToUpdate.add(updateInventory(inv));
|
||||||
|
|
||||||
|
//生成出库明细
|
||||||
|
PickDetail pd = createPickDetail(item, inv.getBillCode(), itemKey.getPropC1(), inv.getQuantity(), "");
|
||||||
|
pickDetailToCreate.add(pd);
|
||||||
|
|
||||||
|
//生成搬运任务
|
||||||
|
AgvTask agvTask = new AgvTask(BizStatus.PICK, stock.getCode(), startPoint.getCode(), endPoint.getCode(), BizStatus.OPEN, "PICKER_MOVE");
|
||||||
|
agvTaskToCreate.add(agvTask);
|
||||||
|
|
||||||
|
//生成Task
|
||||||
|
Task task = createTask(item, itemKey, pd, inv.getBillCode(), stock, startPoint, endPoint, agvTask, inv);
|
||||||
|
taskToCreate.add(task);
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (!errorMsgList.isEmpty()) {
|
||||||
|
throw new RuntimeException(errorMsgList.toString());
|
||||||
|
}
|
||||||
|
ExecutorService executor = ThreadPoolExecutorUtil.getPoll("getIssueInfo-job");
|
||||||
|
|
||||||
|
// 批量更新库存信息
|
||||||
|
CompletableFuture<Void> inventoryFuture = CompletableFuture.runAsync(() -> {
|
||||||
|
//批量更新库存信息
|
||||||
|
if (!inventoryToUpdate.isEmpty()) {
|
||||||
|
batchCreateOrUpdate.batchUpdate(inventoryToUpdate);
|
||||||
|
}
|
||||||
|
|
||||||
|
}, executor);
|
||||||
|
|
||||||
|
|
||||||
|
CompletableFuture<Void> pickDetailFuture = inventoryFuture.thenRunAsync(() -> {
|
||||||
|
//批量生成叫料明细
|
||||||
|
if (!pickDetailToCreate.isEmpty()) {
|
||||||
|
batchCreateOrUpdate.batchCreate(pickDetailToCreate);
|
||||||
|
}
|
||||||
|
|
||||||
|
}, executor);
|
||||||
|
|
||||||
|
CompletableFuture<Void> agvTaskFuture = pickDetailFuture.thenRunAsync(() -> {
|
||||||
|
// 批量生成agv任务
|
||||||
|
if (!agvTaskToCreate.isEmpty()) {
|
||||||
|
batchCreateOrUpdate.batchCreate(agvTaskToCreate);
|
||||||
|
}
|
||||||
|
|
||||||
|
}, executor);
|
||||||
|
|
||||||
|
CompletableFuture<Void> taskFuture = agvTaskFuture.thenRunAsync(() -> {
|
||||||
|
// 批量生成任务
|
||||||
|
if (!taskToCreate.isEmpty()) {
|
||||||
|
batchCreateOrUpdate.batchCreate(taskToCreate);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}, executor);
|
||||||
|
taskFuture.join();
|
||||||
|
|
||||||
|
executor.shutdown();
|
||||||
|
});
|
||||||
|
if (!errorMsgList.isEmpty()) {
|
||||||
|
throw new RuntimeException(errorMsgList.toString());
|
||||||
|
}
|
||||||
|
}
|
||||||
private void processInventory(Inventory inv, Point endPoint) {
|
private void processInventory(Inventory inv, Point endPoint) {
|
||||||
Stock stock = inv.getStock();
|
Stock stock = inv.getStock();
|
||||||
Point startPoint = inv.getPoint();
|
Point startPoint = inv.getPoint();
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@ import com.youchain.basicdata.repository.ItemRepository;
|
||||||
import com.youchain.basicdata.repository.PointRepository;
|
import com.youchain.basicdata.repository.PointRepository;
|
||||||
import com.youchain.exception.handler.ApiResult;
|
import com.youchain.exception.handler.ApiResult;
|
||||||
import com.youchain.jamod.domain.ModbusInfo;
|
import com.youchain.jamod.domain.ModbusInfo;
|
||||||
|
import com.youchain.jamod.repository.ModbusInfoRepository;
|
||||||
import com.youchain.jamod.service.ModbusInfoService;
|
import com.youchain.jamod.service.ModbusInfoService;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
|
@ -29,6 +30,7 @@ import java.util.List;
|
||||||
@RequestMapping("/api/dropdown")
|
@RequestMapping("/api/dropdown")
|
||||||
public class DropdownController {
|
public class DropdownController {
|
||||||
private final PointRepository pointRepository;
|
private final PointRepository pointRepository;
|
||||||
|
private final ModbusInfoRepository modbusInfoRepository;
|
||||||
private final ItemRepository itemRepository;
|
private final ItemRepository itemRepository;
|
||||||
@PostMapping("/pointData")
|
@PostMapping("/pointData")
|
||||||
@ApiOperation("全部点位")
|
@ApiOperation("全部点位")
|
||||||
|
|
@ -46,4 +48,12 @@ public class DropdownController {
|
||||||
ApiResult apiResult=ApiResult.fail(200,"成功",itemList);
|
ApiResult apiResult=ApiResult.fail(200,"成功",itemList);
|
||||||
return new ResponseEntity<>(apiResult,apiResult.getStatus());
|
return new ResponseEntity<>(apiResult,apiResult.getStatus());
|
||||||
}
|
}
|
||||||
|
@PostMapping("/modbusInfoData")
|
||||||
|
@ApiOperation("全部modbusInfo")
|
||||||
|
@AnonymousAccess
|
||||||
|
public ResponseEntity<Object> modbusInfoData(){
|
||||||
|
List<ModbusInfo> modbusInfoList=modbusInfoRepository.findAll();
|
||||||
|
ApiResult apiResult=ApiResult.fail(200,"成功",modbusInfoList);
|
||||||
|
return new ResponseEntity<>(apiResult,apiResult.getStatus());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -25,6 +25,10 @@ import javax.validation.constraints.NotBlank;
|
||||||
import javax.validation.constraints.NotNull;
|
import javax.validation.constraints.NotNull;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.sql.Timestamp;
|
import java.sql.Timestamp;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @website https://eladmin.vip
|
* @website https://eladmin.vip
|
||||||
|
|
@ -117,6 +121,15 @@ public class ModbusInfo implements Serializable {
|
||||||
@ApiModelProperty(value = "报错原因")
|
@ApiModelProperty(value = "报错原因")
|
||||||
private String description;
|
private String description;
|
||||||
|
|
||||||
|
public List<String> getDataValueList() {
|
||||||
|
if (dataValues == null || dataValues.isEmpty()) {
|
||||||
|
return new ArrayList<>();
|
||||||
|
}
|
||||||
|
String trimmedString = dataValues.substring(1, dataValues.length() - 1);
|
||||||
|
String[] stringArray = trimmedString.split(",");
|
||||||
|
return Arrays.asList(stringArray);
|
||||||
|
}
|
||||||
|
|
||||||
public void copy(ModbusInfo source){
|
public void copy(ModbusInfo source){
|
||||||
BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
|
BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,14 @@
|
||||||
package com.youchain.modules.quartz.task;
|
package com.youchain.modules.quartz.task;
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSON;
|
import com.youchain.basicdata.domain.Box;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.youchain.basicdata.domain.PointItem;
|
||||||
|
import com.youchain.basicdata.repository.BoxRepository;
|
||||||
|
import com.youchain.basicdata.repository.PointItemRepository;
|
||||||
import com.youchain.businessdata.domain.AgvTask;
|
import com.youchain.businessdata.domain.AgvTask;
|
||||||
|
import com.youchain.businessdata.domain.Inventory;
|
||||||
import com.youchain.businessdata.repository.AgvTaskRepository;
|
import com.youchain.businessdata.repository.AgvTaskRepository;
|
||||||
import com.youchain.businessdata.service.AgvTaskService;
|
import com.youchain.businessdata.service.AgvTaskService;
|
||||||
|
import com.youchain.businessdata.service.MlsService;
|
||||||
import com.youchain.utils.BaseStatus;
|
import com.youchain.utils.BaseStatus;
|
||||||
import com.youchain.utils.BizStatus;
|
import com.youchain.utils.BizStatus;
|
||||||
import com.youchain.utils.HttpPostUtil;
|
import com.youchain.utils.HttpPostUtil;
|
||||||
|
|
@ -13,11 +17,9 @@ import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.concurrent.CopyOnWriteArrayList;
|
import java.util.concurrent.CopyOnWriteArrayList;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 料箱出库任务下发
|
* 料箱出库任务下发
|
||||||
|
|
@ -28,10 +30,32 @@ public class pickTask {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
public AgvTaskService agvTaskService;
|
public AgvTaskService agvTaskService;
|
||||||
|
@Autowired
|
||||||
|
public BoxRepository boxRepository;
|
||||||
|
@Autowired
|
||||||
|
public PointItemRepository pointItemRepository;
|
||||||
|
@Autowired
|
||||||
|
public MlsService mlsService;
|
||||||
private static final int MAX_TASK_COUNT = 5;
|
private static final int MAX_TASK_COUNT = 5;
|
||||||
|
|
||||||
private static final long TIMEOUT_MS = 2*60*1000;
|
private static final long TIMEOUT_MS = 2*60*1000;
|
||||||
|
public void pickLLJTask() {
|
||||||
|
List<Box> boxList = boxRepository.getBoxAllData();
|
||||||
|
for (Box box : boxList){
|
||||||
|
List<String> dataValueList = box.getModbusInfo().getDataValueList();
|
||||||
|
if (dataValueList.get(box.getSort()-1).equals(box.getWorkCode())){
|
||||||
|
if (box.getWorkType().equals(BizStatus.PICK)){
|
||||||
|
List<PointItem> pointItemList=pointItemRepository.findByPoint(box.getPoint().getId());
|
||||||
|
// 获取 PointItem.item.code 集合
|
||||||
|
List<String> itemCodeList = pointItemList.stream()
|
||||||
|
.map(pointItem -> pointItem.getItem().getCode())
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
// 出库
|
||||||
|
mlsService.getIssueInfo(itemCodeList, box.getPoint());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
public void pickTask() {
|
public void pickTask() {
|
||||||
// 下发出库任务
|
// 下发出库任务
|
||||||
List<AgvTask> agvTaskList = agvTaskService.queryByAgvTask(BizStatus.OPEN,BizStatus.PICK);
|
List<AgvTask> agvTaskList = agvTaskService.queryByAgvTask(BizStatus.OPEN,BizStatus.PICK);
|
||||||
|
|
|
||||||
|
|
@ -95,6 +95,14 @@ public interface BizStatus {
|
||||||
* 出库任务
|
* 出库任务
|
||||||
*/
|
*/
|
||||||
public static String PICK = "PICK";
|
public static String PICK = "PICK";
|
||||||
|
/**
|
||||||
|
* 流利架送满
|
||||||
|
*/
|
||||||
|
public static String FULL_OUT = "FULL_OUT";
|
||||||
|
/**
|
||||||
|
* 流利架返空
|
||||||
|
*/
|
||||||
|
public static String EMPTY_IN = "EMPTY_IN";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 验货任务
|
* 验货任务
|
||||||
|
|
@ -204,10 +212,6 @@ public interface BizStatus {
|
||||||
* 物料类型,轴承座
|
* 物料类型,轴承座
|
||||||
*/
|
*/
|
||||||
public static String ZC = "ZC";
|
public static String ZC = "ZC";
|
||||||
/**
|
|
||||||
* 空车入库
|
|
||||||
*/
|
|
||||||
public static String EMPTY_IN = "EMPTY_IN";
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 空车出库/空箱出库
|
* 空车出库/空箱出库
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue