出库AGV接口任务回调,删除库存,添加库存日志,更新Task,更新PickDetail
parent
bb46759a8a
commit
7c61611963
|
|
@ -65,7 +65,8 @@ public interface TaskRepository extends JpaRepository<Task, Long>, JpaSpecificat
|
||||||
*/
|
*/
|
||||||
@Query(value = "SELECT t FROM Task t WHERE t.agvTask.id=?1 and t.taskStatus=?2")
|
@Query(value = "SELECT t FROM Task t WHERE t.agvTask.id=?1 and t.taskStatus=?2")
|
||||||
List<Task> getAgvTaskList(Integer agvTaskId,String taskStatus);
|
List<Task> getAgvTaskList(Integer agvTaskId,String taskStatus);
|
||||||
|
@Query(value = "SELECT t FROM Task t WHERE t.agvTask.id=?1")
|
||||||
|
List<Task> getAgvTaskList(Integer agvTaskId);
|
||||||
/**
|
/**
|
||||||
* 根据 收货明细序号 进行删除数据
|
* 根据 收货明细序号 进行删除数据
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -104,4 +104,10 @@ public interface InventoryService {
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
Inventory asnAddInventory(List<Map<String,Object>> taskListMap);
|
Inventory asnAddInventory(List<Map<String,Object>> taskListMap);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 出库完成 删除库存
|
||||||
|
* @param taskList
|
||||||
|
*/
|
||||||
|
void pickDelInventory(List<Task> taskList);
|
||||||
}
|
}
|
||||||
|
|
@ -103,7 +103,7 @@ public interface PickDetailService {
|
||||||
/**
|
/**
|
||||||
* 取消分配
|
* 取消分配
|
||||||
*/
|
*/
|
||||||
void cancelAllocate(long id,double quantity) ;
|
ApiResult cancelAllocate(long id,double quantity) ;
|
||||||
ApiResult cancelAllocate(Long[] ids);
|
ApiResult cancelAllocate(Long[] ids);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -465,7 +465,6 @@ public class AgvTaskServiceImpl implements AgvTaskService {
|
||||||
AgvTask agvTask=agvTaskRepository.getById(Integer.valueOf(taskCode));
|
AgvTask agvTask=agvTaskRepository.getById(Integer.valueOf(taskCode));
|
||||||
// task库存任务
|
// task库存任务
|
||||||
// List<Task> tasks=taskRepository.getAgvTaskList(agvTask.getId(),BizStatus.ASN);
|
// List<Task> tasks=taskRepository.getAgvTaskList(agvTask.getId(),BizStatus.ASN);
|
||||||
List<Map<String,Object>> taskMapList=taskRepository.findByAgvTask(agvTask.getId(),"ASN",1l);
|
|
||||||
Point startPoint=null;
|
Point startPoint=null;
|
||||||
Point endPoint=null;
|
Point endPoint=null;
|
||||||
if (status.equals("1")){
|
if (status.equals("1")){
|
||||||
|
|
@ -485,11 +484,19 @@ public class AgvTaskServiceImpl implements AgvTaskService {
|
||||||
pointRepository.save(endPoint);
|
pointRepository.save(endPoint);
|
||||||
agvTask.setStatus(BizStatus.FINISH);
|
agvTask.setStatus(BizStatus.FINISH);
|
||||||
agvTask.setEndTime(new Timestamp((new Date()).getTime()));
|
agvTask.setEndTime(new Timestamp((new Date()).getTime()));
|
||||||
|
if (agvTask.getJobType().equals(BizStatus.ASN)) {
|
||||||
if (taskMapList.size()>0){
|
List<Map<String,Object>> taskMapList=taskRepository.findByAgvTask(agvTask.getId(),"ASN",1l);
|
||||||
// 生成库存
|
if (taskMapList.size()>0) {
|
||||||
Inventory inventory = inventoryService.asnAddInventory(taskMapList);
|
/** 入库任务回调 生成库存*/
|
||||||
|
Inventory inventory = inventoryService.asnAddInventory(taskMapList);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
if (agvTask.getJobType().equals(BizStatus.PICK)) {
|
||||||
|
List<Task> taskList=taskRepository.getAgvTaskList(agvTask.getId());
|
||||||
|
/** 出库任务回调 生成删除库存*/
|
||||||
|
inventoryService.pickDelInventory(taskList);
|
||||||
|
}
|
||||||
|
|
||||||
} else if (status.equals("4")) {
|
} else if (status.equals("4")) {
|
||||||
// 取消任务
|
// 取消任务
|
||||||
}
|
}
|
||||||
|
|
@ -679,10 +686,10 @@ public class AgvTaskServiceImpl implements AgvTaskService {
|
||||||
List<Task> taskList=taskRepository.findByItemType(BizStatus.RECEIVING,1,"SMGS");
|
List<Task> taskList=taskRepository.findByItemType(BizStatus.RECEIVING,1,"SMGS");
|
||||||
for (int i = 0; i < taskList.size(); i++) {
|
for (int i = 0; i < taskList.size(); i++) {
|
||||||
Task task=taskList.get(i);
|
Task task=taskList.get(i);
|
||||||
//跟新Task任务
|
//更新Task任务
|
||||||
ApiResult success = taskService.getAsnTask(point, task);
|
ApiResult success = taskService.getAsnTask(point, task);
|
||||||
if (success != null) return success;
|
if (success != null) return success;
|
||||||
AgvTask agvTask=addAgvTask("叉车搬运", "半成品托盘", task.getSrcPoint().getCode(), point.getCode(), BizStatus.OPEN, "ASN2");
|
AgvTask agvTask = addAgvTask(BizStatus.AGV, task.getSrcPoint().getStorageType(), task.getSrcPoint().getCode(),task.getDstPoint().getCode() , BizStatus.OPEN, BizStatus.ASN);
|
||||||
task.setAgvTask(agvTask);
|
task.setAgvTask(agvTask);
|
||||||
taskRepository.save(task);
|
taskRepository.save(task);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -22,6 +22,7 @@ import com.youchain.basicdata.domain.Stock;
|
||||||
import com.youchain.basicdata.repository.PointRepository;
|
import com.youchain.basicdata.repository.PointRepository;
|
||||||
import com.youchain.businessdata.domain.*;
|
import com.youchain.businessdata.domain.*;
|
||||||
import com.youchain.businessdata.repository.ItemKeyRepository;
|
import com.youchain.businessdata.repository.ItemKeyRepository;
|
||||||
|
import com.youchain.businessdata.repository.PickDetailRepository;
|
||||||
import com.youchain.businessdata.repository.TaskRepository;
|
import com.youchain.businessdata.repository.TaskRepository;
|
||||||
import com.youchain.businessdata.service.InventoryLogService;
|
import com.youchain.businessdata.service.InventoryLogService;
|
||||||
import com.youchain.businessdata.service.dto.*;
|
import com.youchain.businessdata.service.dto.*;
|
||||||
|
|
@ -61,6 +62,7 @@ public class InventoryServiceImpl implements InventoryService {
|
||||||
private final InventoryRepository inventoryRepository;
|
private final InventoryRepository inventoryRepository;
|
||||||
private final InventoryLogService inventoryLogService;
|
private final InventoryLogService inventoryLogService;
|
||||||
private final InventoryMapper inventoryMapper;
|
private final InventoryMapper inventoryMapper;
|
||||||
|
private final PickDetailRepository pickDetailRepository;
|
||||||
private final EntityManager entityManager;
|
private final EntityManager entityManager;
|
||||||
private final ItemKeyRepository itemKeyRepository;
|
private final ItemKeyRepository itemKeyRepository;
|
||||||
private final TaskRepository taskRepository;
|
private final TaskRepository taskRepository;
|
||||||
|
|
@ -244,6 +246,29 @@ public class InventoryServiceImpl implements InventoryService {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void pickDelInventory(List<Task> taskList) {
|
||||||
|
//删除库存
|
||||||
|
for (int i = 0; i < taskList.size(); i++) {
|
||||||
|
/** 书安心Task表*/
|
||||||
|
Task task=taskList.get(i);
|
||||||
|
task.setTaskStatus(BizStatus.PICK_ALL);
|
||||||
|
task.setMoveQty(task.getPlanQty());
|
||||||
|
taskRepository.save(task);
|
||||||
|
/** 刷新出库单明细表*/
|
||||||
|
PickDetail pickDetail=task.getPickDetail();
|
||||||
|
pickDetail.setPickedQty(task.getMoveQty());
|
||||||
|
if (pickDetail.getAllocatedQty()>=pickDetail.getPickedQty()){
|
||||||
|
pickDetail.setStatus(BizStatus.PICK_ALL);
|
||||||
|
}
|
||||||
|
pickDetailRepository.save(pickDetail);
|
||||||
|
/** 添加库存日志,删除库存*/
|
||||||
|
Inventory inventory=task.getInventory();
|
||||||
|
inventoryLogService.storeInventoryLog(BizStatus.PICK_DOWN,BizStatus.REDUCE,inventory.getItemKey().getPropC3(),inventory.getItemKey(),task.getSrcPoint(),task.getDstPoint(),null,null,inventory.getQuantity(),task.getMoveQty(), task.getItemKey().getPropC6(),null,inventory.getId(),"");
|
||||||
|
inventoryRepository.delete(inventory);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public List<Object[]> queryItemStock(){
|
public List<Object[]> queryItemStock(){
|
||||||
String hql = "select inv.itemKey.item.code,max(inv.itemKey.item.name),count(inv.id) " +
|
String hql = "select inv.itemKey.item.code,max(inv.itemKey.item.name),count(inv.id) " +
|
||||||
" from Inventory inv where 1=1 and inv.quantity>0 group by inv.itemKey.item.code order by inv.itemKey.item.code";
|
" from Inventory inv where 1=1 and inv.quantity>0 group by inv.itemKey.item.code order by inv.itemKey.item.code";
|
||||||
|
|
|
||||||
|
|
@ -188,7 +188,11 @@ public class PickDetailServiceImpl implements PickDetailService {
|
||||||
task.setDept(dept);
|
task.setDept(dept);
|
||||||
task.setInventory(inv);
|
task.setInventory(inv);
|
||||||
taskRepository.save(task);
|
taskRepository.save(task);
|
||||||
|
//生成AGV任务
|
||||||
|
AgvTask agvTask = agvTaskService.addAgvTask(BizStatus.AGV, startPoint.getStorageType(), startPoint.getCode(),endPoint.getCode() , BizStatus.OPEN, BizStatus.PICK);
|
||||||
|
//更新Task任务 写入关联AGV
|
||||||
|
task.setAgvTask(agvTask);
|
||||||
|
taskRepository.save(task);
|
||||||
}
|
}
|
||||||
}else {
|
}else {
|
||||||
return ApiResult.fail(500, item.getCode()+"料号,无库存", "");
|
return ApiResult.fail(500, item.getCode()+"料号,无库存", "");
|
||||||
|
|
@ -336,7 +340,7 @@ public class PickDetailServiceImpl implements PickDetailService {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void cancelAllocate(long id, double quantity){
|
public ApiResult cancelAllocate(long id, double quantity){
|
||||||
|
|
||||||
PickDetailDto pickDetailDto = findById(id);
|
PickDetailDto pickDetailDto = findById(id);
|
||||||
PickDetail pd = toEntity(pickDetailDto);
|
PickDetail pd = toEntity(pickDetailDto);
|
||||||
|
|
@ -346,7 +350,15 @@ public class PickDetailServiceImpl implements PickDetailService {
|
||||||
Inventory inv = inventoryRepository.findById(task.getInventory().getId()).get();
|
Inventory inv = inventoryRepository.findById(task.getInventory().getId()).get();
|
||||||
inv.setQueuedQty(inv.getQueuedQty() - task.getPlanQty());
|
inv.setQueuedQty(inv.getQueuedQty() - task.getPlanQty());
|
||||||
inventoryRepository.save(inv);
|
inventoryRepository.save(inv);
|
||||||
|
//删除AgvTask任务
|
||||||
|
if (task.getAgvTask()!=null){
|
||||||
|
AgvTask agvTask=task.getAgvTask();
|
||||||
|
if (agvTask.getStatus().equals(BizStatus.OPEN)){
|
||||||
|
agvTaskRepository.delete(agvTask);
|
||||||
|
}else {
|
||||||
|
return ApiResult.fail(400, "搬运任务已执行", null);
|
||||||
|
}
|
||||||
|
}
|
||||||
//删除Task
|
//删除Task
|
||||||
taskRepository.delete(task);
|
taskRepository.delete(task);
|
||||||
|
|
||||||
|
|
@ -355,18 +367,18 @@ public class PickDetailServiceImpl implements PickDetailService {
|
||||||
pd.setStatus(BizStatus.OPEN);
|
pd.setStatus(BizStatus.OPEN);
|
||||||
}
|
}
|
||||||
pickDetailRepository.save(pd);
|
pickDetailRepository.save(pd);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
return ApiResult.fail(200, "操作成功", null);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ApiResult cancelAllocate(Long[] ids) {
|
public ApiResult cancelAllocate(Long[] ids) {
|
||||||
|
ApiResult apiResult=new ApiResult();
|
||||||
for (int i = 0; i < ids.length; i++) {
|
for (int i = 0; i < ids.length; i++) {
|
||||||
PickDetail pickDetail=pickDetailRepository.getById(ids[i]);
|
PickDetail pickDetail=pickDetailRepository.getById(ids[i]);
|
||||||
cancelAllocate(pickDetail.getId(), pickDetail.getOrderQty());
|
apiResult = cancelAllocate(pickDetail.getId(), pickDetail.getOrderQty());
|
||||||
}
|
}
|
||||||
return ApiResult.fail(200, "操作成功", "");
|
return apiResult;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue