From 755aed47ee9dcabec5458117115e767eeb82318e Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期一, 21 七月 2025 14:27:11 +0800
Subject: [PATCH] 保存新增盘点明细
---
rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/PdaCheckOrderServiceImpl.java | 94 +++++++++++++++++++++++++++++++++++++----------
rsf-server/src/main/java/com/vincent/rsf/server/api/controller/params/SaveCheckDiffParams.java | 9 ++++
rsf-server/src/main/java/com/vincent/rsf/server/api/controller/pda/PdaCheckOrderController.java | 1
3 files changed, 82 insertions(+), 22 deletions(-)
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/params/SaveCheckDiffParams.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/params/SaveCheckDiffParams.java
index f452033..924ccd5 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/params/SaveCheckDiffParams.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/params/SaveCheckDiffParams.java
@@ -3,6 +3,7 @@
import com.vincent.rsf.server.manager.entity.CheckDiffItem;
import com.vincent.rsf.server.manager.entity.TaskItem;
import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
@@ -12,7 +13,13 @@
@Accessors
@ApiModel(value = "SaveCheckDiffParams", description = "淇濆瓨鐩樼偣鏁版嵁鍙傛暟")
public class SaveCheckDiffParams {
- private String checkId;
+
+ @ApiModelProperty("鐩樼偣宸紓鍗旾D")
+ private Long checkId;
+
+ @ApiModelProperty("瀹瑰櫒缂栫爜")
private String container;
+
+ @ApiModelProperty("宸紓鍗曟槑缁�")
private List<CheckDiffItem> checkDiffItems;
}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/pda/PdaCheckOrderController.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/pda/PdaCheckOrderController.java
index eefd1f6..3ad2d50 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/pda/PdaCheckOrderController.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/pda/PdaCheckOrderController.java
@@ -48,7 +48,6 @@
@PostMapping("/saveCheckDiff")
@ApiOperation("淇濆瓨鐩樼偣鏁版嵁")
public R saveCheckDiff(@RequestBody SaveCheckDiffParams saveCheckDiffParams) {
-
return pdaCheckOrderService.saveCheckDiff(saveCheckDiffParams,getLoginUserId());
}
}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/PdaCheckOrderServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/PdaCheckOrderServiceImpl.java
index 09def72..88a132a 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/PdaCheckOrderServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/PdaCheckOrderServiceImpl.java
@@ -8,18 +8,22 @@
import com.vincent.rsf.server.api.service.PdaCheckOrderService;
import com.vincent.rsf.server.manager.entity.*;
import com.vincent.rsf.server.manager.enums.CheckDiffExceStatus;
+import com.vincent.rsf.server.manager.enums.OrderType;
+import com.vincent.rsf.server.manager.enums.OrderWorkType;
import com.vincent.rsf.server.manager.enums.TaskStsType;
import com.vincent.rsf.server.manager.service.*;
import com.vincent.rsf.server.system.constant.DictTypeCode;
import com.vincent.rsf.server.system.entity.DictData;
import com.vincent.rsf.server.system.service.DictDataService;
import com.vincent.rsf.server.system.service.DictTypeService;
+import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
import java.util.List;
+import java.util.Objects;
@Service
public class PdaCheckOrderServiceImpl implements PdaCheckOrderService {
@@ -39,33 +43,37 @@
private DictTypeService dictTypeService;
@Autowired
private DictDataService dictDataService;
+ @Autowired
+ private MatnrService matnrService;
+ @Autowired
+ private CheckOrderService checkOrderService;
@Override
public R getCheckList(String code) {
LambdaQueryWrapper<CheckDiff> lambdaQueryWrapper = new LambdaQueryWrapper<>();
- lambdaQueryWrapper.eq(!Cools.isEmpty(code),CheckDiff::getOrderCode,code);
+ lambdaQueryWrapper.eq(!Cools.isEmpty(code), CheckDiff::getOrderCode, code);
List<CheckDiff> waveList = checkDiffService.list(lambdaQueryWrapper);
return R.ok(waveList);
}
@Override
- public R getCheckTaskItemList(String barcode,String checkCode) {
+ public R getCheckTaskItemList(String barcode, String checkCode) {
List<CheckDiffItem> checkDiffItems = checkDiffItemService.list(new LambdaQueryWrapper<CheckDiffItem>()
.eq(CheckDiffItem::getBarcode, barcode)
.eq(CheckDiffItem::getOrderCode, checkCode)
);
- if (checkDiffItems.isEmpty()){
+ if (checkDiffItems.isEmpty()) {
throw new CoolException("姝ゆ潯鐮佷笉鍦ㄥ綋鍓嶇洏鐐瑰崟涓�");
}
LambdaQueryWrapper<Task> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(Task::getBarcode, barcode);
Task task = taskService.getOne(lambdaQueryWrapper);
- if (null == task){
+ if (null == task) {
throw new CoolException("鏈壘鍒板鍣ㄥ彿瀵瑰簲浠诲姟");
}
- if (!task.getTaskStatus().equals(TaskStsType.AWAIT.id)){
+ if (!task.getTaskStatus().equals(TaskStsType.AWAIT.id)) {
return R.error("浠诲姟鐘舵�佷笉鏄瓑寰呯‘璁�");
}
@@ -83,38 +91,84 @@
@Override
@Transactional(rollbackFor = Exception.class)
- public R saveCheckDiff(SaveCheckDiffParams params,Long loginUserId) {
+ public R saveCheckDiff(SaveCheckDiffParams params, Long loginUserId) {
CheckDiff checkDiff = checkDiffService.getById(params.getCheckId());
- if (null == checkDiff){
+ if (null == checkDiff) {
return R.error("鏈壘鍒扮洏鐐瑰樊寮傚崟");
}
- if (checkDiff.getExceStatus().equals(CheckDiffExceStatus.CHECK_DIFF_EXCE_STATUS_END.val)){
+ if (checkDiff.getExceStatus().equals(CheckDiffExceStatus.CHECK_DIFF_EXCE_STATUS_END.val)) {
return R.error("璇ョ洏鐐瑰崟宸插畬鎴�");
}
- for (CheckDiffItem checkDiffItem: params.getCheckDiffItems()){
- CheckDiffItem diffItem = checkDiffItemService.getById(checkDiffItem.getId());
- if (null == diffItem){
- return R.error("鏁版嵁閿欒锛屾湭鎵惧埌宸紓鍗曟槑缁�");
+ Task task = taskService.getOne(new LambdaQueryWrapper<Task>().eq(Task::getBarcode, params.getContainer()));
+ if (null == task) {
+ throw new CoolException("鏁版嵁閿欒锛屾湭鎵惧埌瀹瑰櫒鐮佸搴旂洏鐐逛换鍔�");
+ }
+ for (CheckDiffItem checkDiffItem : params.getCheckDiffItems()) {
+ CheckDiffItem diffItem = new CheckDiffItem();
+ if (Objects.isNull(checkDiffItem.getId())) {
+ BeanUtils.copyProperties(checkDiffItem, diffItem);
+ diffItem.setCheckId(params.getCheckId());
+
+ Matnr matnr = matnrService.getOne(new LambdaQueryWrapper<Matnr>().eq(Matnr::getCode, diffItem.getMatnrCode()));
+ if (Objects.isNull(matnr)) {
+ throw new CoolException("鍗曟嵁鐗╂枡鍚嶇О涓嶅瓨鍦紒锛�");
+ }
+
+ if (!checkDiffItemService.save(diffItem)) {
+ throw new CoolException("鏂板鏄庣粏淇濆瓨澶辫触锛侊紒");
+ }
+ //鏂板浠诲姟鏄庣粏淇℃伅
+ TaskItem taskItem = new TaskItem();
+ BeanUtils.copyProperties(diffItem, diffItem);
+ taskItem.setTaskId(task.getId())
+ .setOrderType(OrderType.ORDER_CHECK.type)
+ .setWkType(Short.parseShort(OrderWorkType.ORDER_WORK_TYPE_STOCK_CHECK.type))
+ .setAnfme(diffItem.getAnfme())
+ .setWorkQty(0.0)
+ .setBatch(diffItem.getBatch())
+ .setMaktx(matnr.getName())
+ .setMatnrCode(diffItem.getMatnrCode())
+ .setSpec(diffItem.getSpec())
+ .setModel(diffItem.getModel())
+ .setMatnrId(matnr.getId())
+ .setCreateBy(loginUserId)
+ //婕忕洏搴撳瓨锛屾柊澧炴病鏈夌洏鐐瑰崟鏄庣粏ID
+ .setSource(diffItem.getId())
+ .setSourceId(params.getCheckId())
+ .setCreateTime(new Date())
+ .setUpdateBy(loginUserId)
+ .setMemo("涓嶅湪搴撴槑缁嗭紝鐩樻紡鏂板")
+ .setUpdateTime(new Date())
+ .setId(null)
+ //鐩樼偣鍗旾D
+ .setOrderId(checkDiff.getOrderId());
+ if (!taskItemService.save(taskItem)) {
+ throw new CoolException("鏂板鐩樼偣鏄庣粏淇濆瓨澶辫触锛侊紒");
+ }
+ } else {
+ diffItem = checkDiffItemService.getById(checkDiffItem.getId());
+ if (null == diffItem) {
+ return R.error("鏁版嵁閿欒锛屾湭鎵惧埌宸紓鍗曟槑缁�");
+ }
}
+
checkDiffItem.setExceStatus(CheckDiffExceStatus.CHECK_DIFF_EXCE_STATUS_HOLD.val);
- if(!checkDiffItemService.updateById(checkDiffItem)){
+ if (!checkDiffItemService.updateById(checkDiffItem)) {
throw new CoolException("鏇存柊宸紓鍗曟槑缁嗗け璐�");
}
- checkDiff.setCheckQty(checkDiff.getCheckQty()+checkDiffItem.getCheckQty());
+ Double checkQty = Math.round((checkDiff.getCheckQty() + checkDiffItem.getCheckQty()) * 10000) / 10000.0;
+ checkDiff.setCheckQty(checkQty);
}
checkDiff.setExceStatus(CheckDiffExceStatus.CHECK_DIFF_EXCE_STATUS_HOLD.val);
- if(!checkDiffService.updateById(checkDiff)){
+ if (!checkDiffService.updateById(checkDiff)) {
throw new CoolException("鏇存柊宸紓鍗曞け璐�");
}
- Task task = taskService.getOne(new LambdaQueryWrapper<Task>().eq(Task::getBarcode, params.getContainer()));
- if (null == task){
- throw new CoolException("鏁版嵁閿欒锛屾湭鎵惧埌瀹瑰櫒鐮佸搴旂洏鐐逛换鍔�");
- }
+
task.setTaskStatus(TaskStsType.COMPLETE_OUT.id);
task.setUpdateBy(loginUserId);
task.setUpdateTime(new Date());
- if (!taskService.updateById(task)){
+ if (!taskService.updateById(task)) {
throw new CoolException("鏇存柊浠诲姟澶辫触");
}
return R.ok("鐩樼偣瀹屾垚");
--
Gitblit v1.9.1