no message
parent
bcef8c2859
commit
acc0887fcf
|
|
@ -16,6 +16,7 @@
|
||||||
package com.youchain.businessdata.domain;
|
package com.youchain.businessdata.domain;
|
||||||
|
|
||||||
import com.youchain.base.BaseEntity;
|
import com.youchain.base.BaseEntity;
|
||||||
|
import com.youchain.basicdata.domain.Point;
|
||||||
import com.youchain.modules.system.domain.Dept;
|
import com.youchain.modules.system.domain.Dept;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
|
|
@ -58,7 +59,11 @@ public class Pick extends BaseEntity implements Serializable {
|
||||||
@Column(name = "`status`")
|
@Column(name = "`status`")
|
||||||
@ApiModelProperty(value = "状态")
|
@ApiModelProperty(value = "状态")
|
||||||
private String status;
|
private String status;
|
||||||
|
@OneToOne
|
||||||
|
@JoinColumn(name = "`point_id`",nullable = false)
|
||||||
|
@ApiModelProperty(value = "备料点位")
|
||||||
|
@NotNull
|
||||||
|
private Point point;
|
||||||
@OneToOne
|
@OneToOne
|
||||||
@JoinColumn(name = "`gd_detail_id`",nullable = false)
|
@JoinColumn(name = "`gd_detail_id`",nullable = false)
|
||||||
@NotNull
|
@NotNull
|
||||||
|
|
|
||||||
|
|
@ -54,4 +54,17 @@ public interface PickDetailRepository extends JpaRepository<PickDetail, Long>, J
|
||||||
List<PickDetail> queryOutQHAllData(String time);
|
List<PickDetail> queryOutQHAllData(String time);
|
||||||
@Query(value = "SELECT p FROM PickDetail p WHERE p.pick.id=?1 and p.item.id=?2", nativeQuery = false)
|
@Query(value = "SELECT p FROM PickDetail p WHERE p.pick.id=?1 and p.item.id=?2", nativeQuery = false)
|
||||||
List<PickDetail> findRepeat(Long pickId, Long itemId);
|
List<PickDetail> findRepeat(Long pickId, Long itemId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询待分配的出库明细
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Query(value = "SELECT p FROM PickDetail p WHERE p.orderQty>p.allocatedQty", nativeQuery = false)
|
||||||
|
List<PickDetail> findByAllocate();
|
||||||
|
/**
|
||||||
|
* 查询当前出库单是否有未分配完的明细
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Query(value = "SELECT p FROM PickDetail p WHERE p.orderQty>p.allocatedQty and p.pick.id=?1", nativeQuery = false)
|
||||||
|
List<PickDetail> findByAllocate(Long pickId);
|
||||||
}
|
}
|
||||||
|
|
@ -30,4 +30,6 @@ import java.util.List;
|
||||||
public interface PickRepository extends JpaRepository<Pick, Long>, JpaSpecificationExecutor<Pick> {
|
public interface PickRepository extends JpaRepository<Pick, Long>, JpaSpecificationExecutor<Pick> {
|
||||||
@Query(value = "SELECT p FROM Pick p WHERE p.gdDetail.id=?1 and p.lineNo=?2", nativeQuery = false)
|
@Query(value = "SELECT p FROM Pick p WHERE p.gdDetail.id=?1 and p.lineNo=?2", nativeQuery = false)
|
||||||
List<Pick> findRepeat(long gdDetailId,int no);
|
List<Pick> findRepeat(long gdDetailId,int no);
|
||||||
|
@Query(value = "SELECT p FROM Pick p WHERE p.status=?1 ", nativeQuery = false)
|
||||||
|
List<Pick> findByStatus(String status);
|
||||||
}
|
}
|
||||||
|
|
@ -30,5 +30,6 @@ import java.util.Map;
|
||||||
* @date 2023-08-16
|
* @date 2023-08-16
|
||||||
**/
|
**/
|
||||||
public interface TaskRepository extends JpaRepository<Task, Long>, JpaSpecificationExecutor<Task> {
|
public interface TaskRepository extends JpaRepository<Task, Long>, JpaSpecificationExecutor<Task> {
|
||||||
|
@Query(value = "SELECT t FROM Task t WHERE t.pickDetail.pick.id=?1 and t.taskStatus='PICK'", nativeQuery = false)
|
||||||
|
List<Task> findByPick(Long pickId);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -126,15 +126,10 @@ public class PickDetailController {
|
||||||
public synchronized ResponseEntity<Object> allocate(@RequestBody Long[] ids) throws Exception {
|
public synchronized ResponseEntity<Object> allocate(@RequestBody Long[] ids) throws Exception {
|
||||||
List<Long> pickDetailIds = Arrays.asList(ids);
|
List<Long> pickDetailIds = Arrays.asList(ids);
|
||||||
if (pickDetailIds.size() > 0) {
|
if (pickDetailIds.size() > 0) {
|
||||||
try {
|
|
||||||
for (Long id : pickDetailIds) {
|
for (Long id : pickDetailIds) {
|
||||||
PickDetailDto pickDetailDto = pickDetailService.findById(id);
|
PickDetailDto pickDetailDto = pickDetailService.findById(id);
|
||||||
pickDetailService.allocate(id, pickDetailDto.getOrderQty(),null);
|
pickDetailService.allocate(id, pickDetailDto.getOrderQty(),null);
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
|
||||||
return new ResponseEntity(ApiResult.fail(BAD_REQUEST.value(), e.getMessage(), ""), HttpStatus.BAD_REQUEST);
|
|
||||||
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
return new ResponseEntity(ApiResult.fail(BAD_REQUEST.value(), "参数错误或者为null", ""), HttpStatus.BAD_REQUEST);
|
return new ResponseEntity(ApiResult.fail(BAD_REQUEST.value(), "参数错误或者为null", ""), HttpStatus.BAD_REQUEST);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -89,7 +89,7 @@ public interface PickDetailService {
|
||||||
/**
|
/**
|
||||||
* 分配
|
* 分配
|
||||||
*/
|
*/
|
||||||
void allocate(long id,double quantity,String areaName) throws Exception;
|
void allocate(long id,double quantity,String areaName);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 整出分配
|
* 整出分配
|
||||||
|
|
|
||||||
|
|
@ -15,6 +15,7 @@
|
||||||
*/
|
*/
|
||||||
package com.youchain.businessdata.service.dto;
|
package com.youchain.businessdata.service.dto;
|
||||||
|
|
||||||
|
import com.youchain.basicdata.domain.Point;
|
||||||
import com.youchain.businessdata.domain.GdDetail;
|
import com.youchain.businessdata.domain.GdDetail;
|
||||||
import com.youchain.modules.system.service.dto.DeptDto;
|
import com.youchain.modules.system.service.dto.DeptDto;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
@ -61,4 +62,6 @@ public class PickDto implements Serializable {
|
||||||
/** 关联工单明细 */
|
/** 关联工单明细 */
|
||||||
private Long gdDetailId;
|
private Long gdDetailId;
|
||||||
private GdDetail gdDetail;
|
private GdDetail gdDetail;
|
||||||
|
/** 关联备料点位 */
|
||||||
|
private Point point;
|
||||||
}
|
}
|
||||||
|
|
@ -15,10 +15,13 @@
|
||||||
*/
|
*/
|
||||||
package com.youchain.businessdata.service.impl;
|
package com.youchain.businessdata.service.impl;
|
||||||
|
|
||||||
|
import com.youchain.basicdata.domain.Point;
|
||||||
|
import com.youchain.basicdata.repository.PointRepository;
|
||||||
import com.youchain.businessdata.domain.Gd;
|
import com.youchain.businessdata.domain.Gd;
|
||||||
import com.youchain.businessdata.domain.GdDetail;
|
import com.youchain.businessdata.domain.GdDetail;
|
||||||
import com.youchain.businessdata.domain.Pick;
|
import com.youchain.businessdata.domain.Pick;
|
||||||
import com.youchain.businessdata.repository.GdDetailRepository;
|
import com.youchain.businessdata.repository.GdDetailRepository;
|
||||||
|
import com.youchain.businessdata.repository.PickRepository;
|
||||||
import com.youchain.businessdata.service.PickDetailService;
|
import com.youchain.businessdata.service.PickDetailService;
|
||||||
import com.youchain.businessdata.service.PickService;
|
import com.youchain.businessdata.service.PickService;
|
||||||
import com.youchain.modules.system.domain.Dept;
|
import com.youchain.modules.system.domain.Dept;
|
||||||
|
|
@ -52,6 +55,8 @@ public class GdServiceImpl implements GdService {
|
||||||
private final GdRepository gdRepository;
|
private final GdRepository gdRepository;
|
||||||
private final GdDetailRepository gdDetailRepository;
|
private final GdDetailRepository gdDetailRepository;
|
||||||
private final PickService pickService;
|
private final PickService pickService;
|
||||||
|
private final PickRepository pickRepository;
|
||||||
|
private final PointRepository pointRepository;
|
||||||
private final PickDetailService pickDetailService;
|
private final PickDetailService pickDetailService;
|
||||||
private final DeptService deptService;
|
private final DeptService deptService;
|
||||||
private final GdMapper gdMapper;
|
private final GdMapper gdMapper;
|
||||||
|
|
@ -153,6 +158,10 @@ public class GdServiceImpl implements GdService {
|
||||||
no=no+1;
|
no=no+1;
|
||||||
/*生成出库明细*/
|
/*生成出库明细*/
|
||||||
pickDetailService.save(pick);
|
pickDetailService.save(pick);
|
||||||
|
/*添加 默认目标备料点位*/
|
||||||
|
Point point=pointRepository.getById(2195l);
|
||||||
|
pick.setPoint(point);
|
||||||
|
pickRepository.save(pick);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -29,6 +29,7 @@ import com.youchain.businessdata.repository.*;
|
||||||
import com.youchain.businessdata.service.InventoryService;
|
import com.youchain.businessdata.service.InventoryService;
|
||||||
import com.youchain.businessdata.service.TaskService;
|
import com.youchain.businessdata.service.TaskService;
|
||||||
import com.youchain.businessdata.service.dto.InventoryDto;
|
import com.youchain.businessdata.service.dto.InventoryDto;
|
||||||
|
import com.youchain.exception.BadRequestException;
|
||||||
import com.youchain.exception.handler.ApiResult;
|
import com.youchain.exception.handler.ApiResult;
|
||||||
import com.youchain.modules.quartz.utils.TimeNumberUtils;
|
import com.youchain.modules.quartz.utils.TimeNumberUtils;
|
||||||
import com.youchain.modules.system.domain.Dept;
|
import com.youchain.modules.system.domain.Dept;
|
||||||
|
|
@ -64,6 +65,7 @@ import static org.springframework.http.HttpStatus.BAD_REQUEST;
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
public class PickDetailServiceImpl implements PickDetailService {
|
public class PickDetailServiceImpl implements PickDetailService {
|
||||||
private final PickDetailRepository pickDetailRepository;
|
private final PickDetailRepository pickDetailRepository;
|
||||||
|
private final PickRepository pickRepository;
|
||||||
private final GdDetailRepository gdDetailRepository;
|
private final GdDetailRepository gdDetailRepository;
|
||||||
private final PickDetailMapper pickDetailMapper;
|
private final PickDetailMapper pickDetailMapper;
|
||||||
private final InventoryService inventoryService;
|
private final InventoryService inventoryService;
|
||||||
|
|
@ -138,14 +140,18 @@ public class PickDetailServiceImpl implements PickDetailService {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public synchronized void allocate(long id, double quantity,String areaName) throws Exception {
|
public synchronized void allocate(long id, double quantity,String areaName) {
|
||||||
|
if (areaName==null){
|
||||||
|
areaName="大件存储区,小件存储区";
|
||||||
|
}
|
||||||
PickDetailDto pickDetailDto = findById(id);
|
PickDetailDto pickDetailDto = findById(id);
|
||||||
PickDetail pd = toEntity(pickDetailDto);//Dto转实体
|
PickDetail pd = toEntity(pickDetailDto);//Dto转实体
|
||||||
ItemDto itemDto = pickDetailDto.getItem();
|
ItemDto itemDto = pickDetailDto.getItem();
|
||||||
Item item = itemService.toEntity(itemDto);
|
Item item = itemService.toEntity(itemDto);
|
||||||
Dept dept = item.getDept();//仓库
|
Dept dept = item.getDept();//仓库
|
||||||
Box box = boxRepository.getBoxByItem(item.getId());
|
Pick pick=pd.getPick();
|
||||||
Point endPoint = box.getPoint();//目标点位
|
// Box box = boxRepository.getBoxByItem(item.getId());
|
||||||
|
Point endPoint = pick.getPoint();//目标点位
|
||||||
if (pd.getOrderQty() > pd.getAllocatedQty()) {
|
if (pd.getOrderQty() > pd.getAllocatedQty()) {
|
||||||
List<Inventory> Inventorys = inventoryService.queryInventory(item.getId(),areaName);
|
List<Inventory> Inventorys = inventoryService.queryInventory(item.getId(),areaName);
|
||||||
if (Inventorys.size() > 0) {
|
if (Inventorys.size() > 0) {
|
||||||
|
|
@ -167,17 +173,29 @@ public class PickDetailServiceImpl implements PickDetailService {
|
||||||
inv.setQueuedQty(inv.getQueuedQty() + allocateQty);
|
inv.setQueuedQty(inv.getQueuedQty() + allocateQty);
|
||||||
inventoryService.update(inv);
|
inventoryService.update(inv);
|
||||||
unQty -= allocateQty;
|
unQty -= allocateQty;
|
||||||
|
/* 更新出库单明细状态*/
|
||||||
pd.setAllocatedQty(pd.getAllocatedQty() + allocateQty);
|
pd.setAllocatedQty(pd.getAllocatedQty() + allocateQty);
|
||||||
if (pd.getOrderQty().equals(pd.getAllocatedQty())) {
|
if (pd.getOrderQty().equals(pd.getAllocatedQty())) {
|
||||||
pd.setStatus(BizStatus.ALLOCATE);
|
pd.setStatus(BizStatus.ALLOCATE);
|
||||||
}
|
}
|
||||||
pickDetailRepository.save(pd);
|
pickDetailRepository.save(pd);
|
||||||
|
/* 更新出库单状态*/
|
||||||
|
List<PickDetail> pickDetailList=pickDetailRepository.findByAllocate(pick.getId());
|
||||||
|
if (pickDetailList.size()<1){
|
||||||
|
pick.setStatus(BizStatus.ALLOCATE);
|
||||||
|
pickRepository.save(pick);
|
||||||
|
}else {
|
||||||
|
if (pick.getStatus().equals(BizStatus.OPEN)){
|
||||||
|
pick.setStatus(BizStatus.ASSIGN);
|
||||||
|
pickRepository.save(pick);
|
||||||
|
}
|
||||||
|
}
|
||||||
//生成搬运任务
|
//生成搬运任务
|
||||||
AgvTask agvTask = new AgvTask(BizStatus.PICK, stock.getCode(), startPoint.getCode(), endPoint.getCode(), BizStatus.OPEN, "01");
|
/*AgvTask agvTask = new AgvTask(BizStatus.PICK, stock.getCode(), startPoint.getCode(), endPoint.getCode(), BizStatus.OPEN, "01");
|
||||||
agvTaskRepository.save(agvTask);
|
agvTaskRepository.save(agvTask);*/
|
||||||
//生成Task
|
//生成Task
|
||||||
Task task = new Task();
|
Task task = new Task();
|
||||||
|
task.setTaskType(BizStatus.PICK);
|
||||||
task.setItem(item);
|
task.setItem(item);
|
||||||
task.setItemKey(inv.getItemKey());
|
task.setItemKey(inv.getItemKey());
|
||||||
task.setPickDetail(pd);
|
task.setPickDetail(pd);
|
||||||
|
|
@ -194,11 +212,12 @@ public class PickDetailServiceImpl implements PickDetailService {
|
||||||
task.setPlanQty(allocateQty);
|
task.setPlanQty(allocateQty);
|
||||||
task.setInvId(inv.getId());
|
task.setInvId(inv.getId());
|
||||||
task.setDept(dept);
|
task.setDept(dept);
|
||||||
task.setAgvTask(agvTask);
|
// task.setAgvTask(agvTask);
|
||||||
taskService.create(task);
|
taskService.create(task);
|
||||||
}
|
}
|
||||||
|
}else {
|
||||||
|
throw new BadRequestException(HttpStatus.NOT_IMPLEMENTED, "库存不足:"+item.getCode());
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
throw new RuntimeException("已分配,请勿重复操作!");
|
throw new RuntimeException("已分配,请勿重复操作!");
|
||||||
}
|
}
|
||||||
|
|
@ -349,6 +368,7 @@ public class PickDetailServiceImpl implements PickDetailService {
|
||||||
pickDetail=pickDetailList.get(0);
|
pickDetail=pickDetailList.get(0);
|
||||||
}
|
}
|
||||||
pickDetail.setDept(UserUtils.isDept);
|
pickDetail.setDept(UserUtils.isDept);
|
||||||
|
pickDetail.setStatus(BizStatus.OPEN);
|
||||||
pickDetail.setPick(pick);
|
pickDetail.setPick(pick);
|
||||||
pickDetail.setItem(gdDetail.getItem());
|
pickDetail.setItem(gdDetail.getItem());
|
||||||
if (gdDetail.getBigItem()==null){
|
if (gdDetail.getBigItem()==null){
|
||||||
|
|
|
||||||
|
|
@ -3,14 +3,20 @@ package com.youchain.modules.quartz.task;
|
||||||
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSON;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.youchain.businessdata.domain.AgvTask;
|
import com.youchain.businessdata.domain.AgvTask;
|
||||||
|
import com.youchain.businessdata.domain.Pick;
|
||||||
|
import com.youchain.businessdata.domain.PickDetail;
|
||||||
|
import com.youchain.businessdata.domain.Task;
|
||||||
import com.youchain.businessdata.repository.AgvTaskRepository;
|
import com.youchain.businessdata.repository.AgvTaskRepository;
|
||||||
|
import com.youchain.businessdata.repository.PickDetailRepository;
|
||||||
|
import com.youchain.businessdata.repository.PickRepository;
|
||||||
|
import com.youchain.businessdata.repository.TaskRepository;
|
||||||
import com.youchain.businessdata.service.AgvTaskService;
|
import com.youchain.businessdata.service.AgvTaskService;
|
||||||
import com.youchain.utils.BaseStatus;
|
import com.youchain.businessdata.service.PickDetailService;
|
||||||
import com.youchain.utils.BizStatus;
|
import com.youchain.exception.BadRequestException;
|
||||||
import com.youchain.utils.HttpPostUtil;
|
import com.youchain.utils.*;
|
||||||
import com.youchain.utils.UrlApi;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.http.HttpStatus;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
@ -25,7 +31,14 @@ import java.util.concurrent.CopyOnWriteArrayList;
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Service
|
@Service
|
||||||
public class pickTask {
|
public class pickTask {
|
||||||
|
@Autowired
|
||||||
|
public PickDetailRepository pickDetailRepository;
|
||||||
|
@Autowired
|
||||||
|
public PickDetailService pickDetailService;
|
||||||
|
@Autowired
|
||||||
|
public PickRepository pickRepository;
|
||||||
|
@Autowired
|
||||||
|
public TaskRepository taskRepository;
|
||||||
@Autowired
|
@Autowired
|
||||||
public AgvTaskRepository agvTaskRepository;
|
public AgvTaskRepository agvTaskRepository;
|
||||||
|
|
||||||
|
|
@ -36,6 +49,54 @@ public class pickTask {
|
||||||
|
|
||||||
private long lastTaskTime = System.currentTimeMillis();
|
private long lastTaskTime = System.currentTimeMillis();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 定时检测出库单,分配库存
|
||||||
|
*/
|
||||||
|
public void allocate() {
|
||||||
|
System.out.println("定时检测物料,分配库存");
|
||||||
|
/* 查询待分配的出库明细*/
|
||||||
|
List<PickDetail> pickDetailList=pickDetailRepository.findByAllocate();
|
||||||
|
List<String> arr=new ArrayList<>();//没有库存的物料集合
|
||||||
|
for (PickDetail pickDetail:pickDetailList){
|
||||||
|
/* 没有库存 不用分配*/
|
||||||
|
if (arr.contains(pickDetail.getItem().getCode())){
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
/* 分配库存*/
|
||||||
|
try {
|
||||||
|
pickDetailService.allocate(pickDetail.getId(), pickDetail.getOrderQty()-pickDetail.getAllocatedQty(), null);
|
||||||
|
}catch (BadRequestException b){
|
||||||
|
if (b.getStatus().equals(501)){
|
||||||
|
/* 库存不足*/
|
||||||
|
String itemCode= StringUtils.substringAfterLast(b.getMessage(), ":");
|
||||||
|
arr.add(itemCode);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
System.out.println("分配出库单,库存不足:"+arr);
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 定时检测出库单,生成《备料》搬运任务
|
||||||
|
*/
|
||||||
|
public void pickAgvTask() {
|
||||||
|
/*查询分配完成的出库单*/
|
||||||
|
List<Pick> pickList=pickRepository.findByStatus(BizStatus.ALLOCATE);
|
||||||
|
for (Pick pick:pickList){
|
||||||
|
List<Task> taskList=taskRepository.findByPick(pick.getId());
|
||||||
|
for (Task task:taskList){
|
||||||
|
/*申城搬运任务*/
|
||||||
|
AgvTask agvTask = new AgvTask(BizStatus.PICK, task.getSrcStockCode(), task.getSrcPointCode(), task.getDstPointCode(), BizStatus.OPEN, "01");
|
||||||
|
agvTaskRepository.save(agvTask);
|
||||||
|
/*更新Task任务*/
|
||||||
|
task.setTaskStatus(BizStatus.ATWORK);
|
||||||
|
task.setAgvTask(agvTask);
|
||||||
|
taskRepository.save(task);
|
||||||
|
}
|
||||||
|
/*更新出库单状态*/
|
||||||
|
pick.setStatus(BizStatus.PICKUP);
|
||||||
|
pickRepository.save(pick);
|
||||||
|
}
|
||||||
|
}
|
||||||
public void pickTask() {
|
public void pickTask() {
|
||||||
//按线边分组 下发出库任务
|
//按线边分组 下发出库任务
|
||||||
List<Object> objectList = agvTaskRepository.queryGroupAgvTask();
|
List<Object> objectList = agvTaskRepository.queryGroupAgvTask();
|
||||||
|
|
|
||||||
|
|
@ -33,8 +33,10 @@ public interface BizStatus {
|
||||||
* 出入库状态-已关闭
|
* 出入库状态-已关闭
|
||||||
*/
|
*/
|
||||||
public static String CLOSE = "CLOSE";
|
public static String CLOSE = "CLOSE";
|
||||||
|
/** 分配中*/
|
||||||
|
public static String ASSIGN = "ASSIGN";
|
||||||
/**
|
/**
|
||||||
* 出库状态-分配;
|
* 出库状态-分配完成;
|
||||||
*/
|
*/
|
||||||
public static String ALLOCATE = "ALLOCATE";
|
public static String ALLOCATE = "ALLOCATE";
|
||||||
/**
|
/**
|
||||||
|
|
@ -86,7 +88,7 @@ public interface BizStatus {
|
||||||
*/
|
*/
|
||||||
public static String ASN = "ASN";
|
public static String ASN = "ASN";
|
||||||
/**
|
/**
|
||||||
* 出库任务
|
* 备料任务
|
||||||
*/
|
*/
|
||||||
public static String PICK = "PICK";
|
public static String PICK = "PICK";
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue