From 3aa2f1033b08a95b6c321a338418146434f284e5 Mon Sep 17 00:00:00 2001
From: cl <1442464845@qq.com>
Date: 星期五, 17 四月 2026 17:41:34 +0800
Subject: [PATCH] 页面优化
---
rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/PdaCheckOrderServiceImpl.java | 75 ++++++++++++++++++++++++++++++++++++-
1 files changed, 73 insertions(+), 2 deletions(-)
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 a647b93..436fed0 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
@@ -28,6 +28,7 @@
import com.vincent.rsf.server.system.service.impl.FieldsItemServiceImpl;
import com.vincent.rsf.server.system.service.impl.UserServiceImpl;
import com.vincent.rsf.server.system.utils.SerialRuleUtils;
+import com.vincent.rsf.server.system.utils.SystemAuthUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -71,6 +72,9 @@
@Autowired
private CheckOrderService checkOrderService;
+
+ @Autowired
+ private CusItemSyncViewQueryService cusItemSyncViewQueryService;
@Override
@@ -151,7 +155,7 @@
taskItem.setTaskId(task.getId())
.setOrderType(OrderType.ORDER_CHECK.type)
.setSourceCode(diffItem.getOrderCode())
- .setWkType(Short.parseShort(OrderWorkType.ORDER_WORK_TYPE_STOCK_CHECK.type))
+ .setWkType(OrderWorkType.ORDER_WORK_TYPE_STOCK_CHECK.type)
.setAnfme(diffItem.getCheckQty())
.setWorkQty(0.0)
.setBatch(diffItem.getBatch())
@@ -263,7 +267,7 @@
if (Cools.isEmpty(matnrCode)) {
return R.error("鐗╂枡鐮佷负绌�");
}
- Matnr matnr = matnrService.getOne(new LambdaQueryWrapper<Matnr>().eq(Matnr::getCode, matnrCode));
+ Matnr matnr = getMatnrByCodePreferView(matnrCode);
if (null == matnr) {
return R.error("鏈壘鍒扮紪鐮佸搴旂殑鏄庣粏");
}
@@ -275,6 +279,73 @@
return R.ok(checkDiffItem);
}
+ /** 鎵墿鏂欏厛鏌ヨ鍥撅紝鍛戒腑鍚庡悓姝ョ墿鏂欎富鏁版嵁 */
+ private Matnr getMatnrByCodePreferView(String matnrCode) {
+ String code = StringUtils.trimToNull(matnrCode);
+ if (code == null) {
+ return null;
+ }
+ List<Map<String, Object>> viewItems = null;
+ try {
+ viewItems = cusItemSyncViewQueryService.listByItemNos(Collections.singletonList(code));
+ } catch (Exception ignore) {
+ }
+ Map<String, Object> row = null;
+ if (viewItems != null) {
+ row = viewItems.stream()
+ .filter(v -> StringUtils.equals(code, StringUtils.trimToNull(Objects.toString(v.get("item_no"), null))))
+ .findFirst()
+ .orElse(null);
+ }
+ if (row == null) {
+ return matnrService.getOneByCodeAndBatch(code, "");
+ }
+ String viewSpec = StringUtils.trimToEmpty(Objects.toString(row.get("item_spec"), ""));
+ String viewUnit = StringUtils.trimToNull(Objects.toString(row.get("unit_no"), null));
+ Long loginUserId = SystemAuthUtils.getLoginUserId() == null ? 1L : SystemAuthUtils.getLoginUserId();
+ Matnr local = matnrService.getOneByCodeAndBatch(code, "");
+ if (local == null) {
+ Matnr matnr = new Matnr();
+ matnr.setCode(code)
+ .setBatch("")
+ .setName(code)
+ .setSpec(viewSpec)
+ .setUnit(viewUnit)
+ .setStockUnit(viewUnit)
+ .setStatus(1)
+ .setCreateBy(loginUserId)
+ .setUpdateBy(loginUserId)
+ .setCreateTime(new Date())
+ .setUpdateTime(new Date());
+ if (!matnrService.save(matnr)) {
+ throw new CoolException("鐗╂枡淇℃伅淇濆瓨澶辫触");
+ }
+ return matnr;
+ }
+ boolean specDiff = !StringUtils.equals(StringUtils.trimToEmpty(local.getSpec()), viewSpec);
+ boolean unitDiff = viewUnit != null
+ && (!StringUtils.equals(StringUtils.trimToEmpty(local.getUnit()), viewUnit)
+ || !StringUtils.equals(StringUtils.trimToEmpty(local.getStockUnit()), viewUnit));
+ if (specDiff || unitDiff) {
+ Matnr update = new Matnr();
+ update.setId(local.getId());
+ if (specDiff) {
+ update.setSpec(viewSpec);
+ local.setSpec(viewSpec);
+ }
+ if (unitDiff) {
+ update.setUnit(viewUnit).setStockUnit(viewUnit);
+ local.setUnit(viewUnit);
+ local.setStockUnit(viewUnit);
+ }
+ update.setUpdateBy(loginUserId).setUpdateTime(new Date());
+ if (!matnrService.updateById(update)) {
+ throw new CoolException("鐗╂枡淇℃伅鏇存柊澶辫触");
+ }
+ }
+ return local;
+ }
+
@Override
public R getCheckTaskItemList2(String barcode) {
LambdaQueryWrapper<Task> lambdaQueryWrapper = new LambdaQueryWrapper<>();
--
Gitblit v1.9.1