diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/SysOaWarehouseController.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/SysOaWarehouseController.java
index adbe18e..8cc5e52 100644
--- a/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/SysOaWarehouseController.java
+++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/SysOaWarehouseController.java
@@ -183,6 +183,8 @@ public class SysOaWarehouseController extends BaseController {
});
sysOaWarehouseMaster.setWarehouseList(list);
sysOaWarehouseMaster.setMasterNum(UUID.randomUUID().toString());
+ // 导入入口跳过"必须关联采购需求"校验,后续可在采购需求处手动关联
+ sysOaWarehouseMaster.setSkipRequirementCheck(true);
iSysOaWarehouseMasterService.insertByBo(sysOaWarehouseMaster);
return R.ok(result.getAnalysis());
}
diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/SysOaWarehouseMasterBo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/SysOaWarehouseMasterBo.java
index 39e0059..4075b69 100644
--- a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/SysOaWarehouseMasterBo.java
+++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/SysOaWarehouseMasterBo.java
@@ -83,6 +83,11 @@ public class SysOaWarehouseMasterBo extends BaseEntity {
private Long requirementId;
+ /**
+ * 导入场景跳过"必须关联采购需求"校验(仅 import 入口传 true)
+ */
+ private transient Boolean skipRequirementCheck;
+
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date startTime;
diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/im/ImCredentialsController.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/im/ImCredentialsController.java
index 5d5d157..658643b 100644
--- a/ruoyi-oa/src/main/java/com/ruoyi/oa/im/ImCredentialsController.java
+++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/im/ImCredentialsController.java
@@ -9,11 +9,14 @@ import com.ruoyi.system.mapper.SysUserMapper;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
/**
@@ -64,6 +67,49 @@ public class ImCredentialsController extends BaseController {
return R.ok(data);
}
+ /**
+ * 给指定 OA 用户在 OpenIM 注册账号(如未注册)。
+ * 用于发消息前确保对方 imUserId 存在 —— 解决 OpenIM "RecordNotFoundError 1004"。
+ *
支持单个或批量,幂等。
+ */
+ @PostMapping("/ensure")
+ public R