From f85b03552c97f935e2c5102dee08648d6ab8e782 Mon Sep 17 00:00:00 2001
From: zhou zhou <3272660260@qq.com>
Date: 星期四, 26 三月 2026 16:22:56 +0800
Subject: [PATCH] #pda成品直送
---
rsf-server/src/main/java/com/vincent/rsf/server/api/service/PdaOutStockService.java | 2 +
rsf-server/src/main/java/com/vincent/rsf/server/api/controller/pda/PdaOutStockController.java | 6 +++
rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/PdaOutStockServiceImpl.java | 70 +++++++++++++++++++++++++++++++++++
rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/TaskType.java | 3 +
4 files changed, 81 insertions(+), 0 deletions(-)
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/pda/PdaOutStockController.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/pda/PdaOutStockController.java
index c8423f8..6ff9602 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/pda/PdaOutStockController.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/pda/PdaOutStockController.java
@@ -224,5 +224,11 @@
return pdaOutStockService.productionDirectDelivery(param,getLoginUserId());
}
+ @PostMapping("/orderOut/finishedProductDirectOutput")
+ @ApiOperation("鎴愬搧鐩村嚭")
+ public R finishedProductDirectOutput(@RequestBody PdaGeneralParam param) {
+ return pdaOutStockService.finishedProductDirectOutput(param,getLoginUserId());
+ }
+
}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/PdaOutStockService.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/PdaOutStockService.java
index a6a4511..0576add 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/PdaOutStockService.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/PdaOutStockService.java
@@ -27,5 +27,7 @@
R getStationArea(PdaGeneralParam param);
R productionDirectDelivery(PdaGeneralParam param,Long loginUserId);
+
+ R finishedProductDirectOutput(PdaGeneralParam param, Long loginUserId);
}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/PdaOutStockServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/PdaOutStockServiceImpl.java
index 8390a0a..a362a06 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/PdaOutStockServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/PdaOutStockServiceImpl.java
@@ -421,6 +421,76 @@
}
@Override
+ @Transactional(rollbackFor = Exception.class)
+ public R finishedProductDirectOutput(PdaGeneralParam param, Long loginUserId) {
+ WkOrder order = asnOrderService.getOne(new LambdaQueryWrapper<WkOrder>()
+ .eq(WkOrder::getCode, param.getOrderNo())
+ .eq(WkOrder::getType,OrderType.ORDER_OUT.type)
+ );
+ if (null == order) {
+ throw new CoolException("鏈壘鍒板搴旇鍗�");
+ }
+ ArrayList<String> arrayList = new ArrayList<>();
+ arrayList.add(param.getStationAreaId().toString());
+ Task task = new Task();
+ String ruleCode = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_TASK_CODE, null);
+ task.setTaskCode(ruleCode)
+ .setOrgSite(param.getSta1())
+ .setSort(Constants.TASK_SORT_DEFAULT_VALUE)
+ .setUpdateBy(loginUserId)
+ .setCreateBy(loginUserId)
+ .setCreateTime(new Date())
+ .setUpdateTime(new Date())
+ .setTaskStatus(TaskStsType.MISSION_INITIAL.id)
+ .setBarcode(param.getContainerNo())
+ .setTargSiteArea(arrayList)
+ .setTaskType(TaskType.TASK_TYPE_FPDO.type);
+
+ if (!taskService.save(task)) {
+ throw new CoolException("浠诲姟鍒涘缓澶辫触锛侊紒");
+ }
+ List<TaskItem> taskItems = new ArrayList<>();
+ param.getWkOrderItems().forEach(item -> {
+ TaskItem taskItem = new TaskItem();
+ BeanUtils.copyProperties(item, taskItem);
+ taskItem.setTaskId(task.getId())
+ .setAnfme(item.getDemandQty())
+ .setWorkQty(0D)
+ .setBatch(item.getBatch())
+ .setUpdateBy(loginUserId)
+ .setCreateBy(loginUserId)
+ .setCreateTime(new Date())
+ .setUpdateTime(new Date())
+ .setSplrBatch(item.getBatch())
+ .setPlatWorkCode(item.getPlatWorkCode())
+ .setPlatItemId(item.getPlatItemId())
+ .setOrderType(OrderType.ORDER_OUT.type)
+ .setWkType(Short.parseShort(order.getWkType()))
+ .setSourceCode(order.getCode())
+ .setSourceId(order.getId());
+ taskItems.add(taskItem);
+
+ item.setWorkQty(item.getWorkQty()+item.getDemandQty());
+ });
+ if (!taskItemService.saveBatch(taskItems)) {
+ throw new CoolException("浠诲姟鏄庣粏鐢熸垚澶辫触锛侊紒");
+ }
+ if (!order.getExceStatus().equals(AsnExceStatus.ASN_EXCE_STATUS_EXCE_ING.val)) {
+ order.setExceStatus(AsnExceStatus.ASN_EXCE_STATUS_EXCE_ING.val);
+ order.setUpdateBy(loginUserId);
+ order.setUpdateTime(new Date());
+ if (!asnOrderService.updateById(order)){
+ throw new CoolException("鍗曟嵁鐘舵�佹洿鏂板け璐ワ紒锛�");
+ }
+ }
+ if (!asnOrderItemService.updateBatchById(param.getWkOrderItems())) {
+ throw new CoolException("鍗曟嵁鏄庣粏鏇存柊澶辫触锛侊紒");
+ }
+
+ return R.ok();
+ }
+
+ @Override
public R getWaveListItem(String barcode) {
LambdaQueryWrapper<Wave> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(!Cools.isEmpty(barcode), Wave::getCode, barcode);
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/TaskType.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/TaskType.java
index 5076b1d..f261d38 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/TaskType.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/TaskType.java
@@ -22,6 +22,7 @@
TASK_TYPE_CROSS_DOCKING_OUT("109", "澶囪揣"),
TASK_TYPE_EMPTY_OUT("110", "绌烘澘鍑哄簱"),
TASK_TYPE_PDD("111", "鐢熶骇鐩撮��"),
+ TASK_TYPE_FPDO("112", "鎴愬搧鐩村嚭"),
;
public Integer type;
public String desc;
@@ -53,6 +54,8 @@
return TaskType.TASK_TYPE_EMPTY_OUT.desc;
}else if (TaskType.TASK_TYPE_PDD.type.equals(type)) {
return TaskType.TASK_TYPE_PDD.desc;
+ }else if (TaskType.TASK_TYPE_FPDO.type.equals(type)) {
+ return TaskType.TASK_TYPE_FPDO.desc;
}
return null;
--
Gitblit v1.9.1