no message

main
HUOJIN\92525 2024-04-16 17:50:55 +08:00
parent 47589b2743
commit 009873c137
3 changed files with 48 additions and 127 deletions

View File

@ -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<String> 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;

View File

@ -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<Task> 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<Task> 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<Inventory> 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<Inventory> 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)) {

View File

@ -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);
}
}