!47 refactor(flow): 统一管理部门ID和角色ID至 OrgConfig

* refactor(flow): 统一管理部门ID和角色ID至 OrgConfig
This commit is contained in:
new_new_new
2026-06-18 02:19:26 +00:00
parent 42c7b6f035
commit b9eb8cd99f
13 changed files with 143 additions and 172 deletions
@@ -5,6 +5,7 @@ import static org.mockito.Mockito.*;
import com.alibaba.fastjson.JSONObject;
import com.jeecg.weibo.exception.BusinessException;
import org.jeecg.OrgConfig;
import org.jeecg.common.system.api.ISysBaseAPI;
import org.jeecg.inspectcloseout.InspectCloseoutConfig.InspectCloseoutProperties;
import org.junit.jupiter.api.BeforeEach;
@@ -23,11 +24,16 @@ class InspectCloseoutFlowTest {
@Mock
private InspectCloseoutConfig inspectCloseoutConfig;
@Mock
private OrgConfig orgConfig;
@Mock
private ISysBaseAPI iSysBaseAPI;
private InspectCloseoutFlow flow;
private InspectCloseoutProperties props;
private OrgConfig.Dept dept;
private OrgConfig.Role role;
@BeforeEach
void setUp() {
@@ -43,8 +49,19 @@ class InspectCloseoutFlowTest {
props.setCompletionStatusKey("completionStatusKey");
lenient().when(inspectCloseoutConfig.getInspectCloseout()).thenReturn(props);
dept = new OrgConfig.Dept();
dept.setJj("dept-jj");
dept.setSld("dept-sld");
dept.setDq("dept-dq");
role = new OrgConfig.Role();
role.setLd("role-ld");
role.setJjWorker("role-jj-worker");
role.setSldJwsj("role-sld-jwsj");
lenient().when(orgConfig.getDept()).thenReturn(dept);
lenient().when(orgConfig.getRole()).thenReturn(role);
// FlowNodeExpression 未使用,传 null
flow = new InspectCloseoutFlow(inspectCloseoutConfig, null, iSysBaseAPI);
flow = new InspectCloseoutFlow(inspectCloseoutConfig, orgConfig, null, iSysBaseAPI);
}
// ==================== 部门角色用户查询 ====================
@@ -55,8 +72,7 @@ class InspectCloseoutFlowTest {
@Test
void getJJDeptLdUserIdList_shouldReturnUserList() {
List<String> users = List.of("user1", "user2");
when(iSysBaseAPI.getUsersListByDeptIdAndRoleIdLocalApi(
InspectCloseoutConstant.JJ_DEPT_ID, InspectCloseoutConstant.JJ_DEPT_LEADER_ROLE_ID))
when(iSysBaseAPI.getUsersListByDeptIdAndRoleIdLocalApi("dept-jj", "role-ld"))
.thenReturn(users);
assertEquals(users, flow.getJJDeptLdUserIdList());
@@ -64,8 +80,7 @@ class InspectCloseoutFlowTest {
@Test
void getJJDeptLdUserIdList_shouldReturnEmptyList() {
when(iSysBaseAPI.getUsersListByDeptIdAndRoleIdLocalApi(
InspectCloseoutConstant.JJ_DEPT_ID, InspectCloseoutConstant.JJ_DEPT_LEADER_ROLE_ID))
when(iSysBaseAPI.getUsersListByDeptIdAndRoleIdLocalApi("dept-jj", "role-ld"))
.thenReturn(Collections.emptyList());
assertEquals(Collections.emptyList(), flow.getJJDeptLdUserIdList());
@@ -73,8 +88,7 @@ class InspectCloseoutFlowTest {
@Test
void getJJDeptLdUserIdListLength_shouldReturnCount() {
when(iSysBaseAPI.getUsersListByDeptIdAndRoleIdLocalApi(
InspectCloseoutConstant.JJ_DEPT_ID, InspectCloseoutConstant.JJ_DEPT_LEADER_ROLE_ID))
when(iSysBaseAPI.getUsersListByDeptIdAndRoleIdLocalApi("dept-jj", "role-ld"))
.thenReturn(List.of("user1", "user2", "user3"));
assertEquals(3, flow.getJJDeptLdUserIdListLength());
@@ -82,8 +96,7 @@ class InspectCloseoutFlowTest {
@Test
void getJJDeptLdUserIdListLength_shouldReturnZeroWhenEmpty() {
when(iSysBaseAPI.getUsersListByDeptIdAndRoleIdLocalApi(
InspectCloseoutConstant.JJ_DEPT_ID, InspectCloseoutConstant.JJ_DEPT_LEADER_ROLE_ID))
when(iSysBaseAPI.getUsersListByDeptIdAndRoleIdLocalApi("dept-jj", "role-ld"))
.thenReturn(Collections.emptyList());
assertEquals(0, flow.getJJDeptLdUserIdListLength());
@@ -92,8 +105,7 @@ class InspectCloseoutFlowTest {
@Test
void getJJDeptLdWorkerIdList_shouldReturnUserList() {
List<String> users = List.of("worker1");
when(iSysBaseAPI.getUsersListByDeptIdAndRoleIdLocalApi(
InspectCloseoutConstant.JJ_DEPT_ID, InspectCloseoutConstant.JJ_DEPT_WORKER_ROLE_ID))
when(iSysBaseAPI.getUsersListByDeptIdAndRoleIdLocalApi("dept-jj", "role-jj-worker"))
.thenReturn(users);
assertEquals(users, flow.getJJDeptLdWorkerIdList());
@@ -101,8 +113,7 @@ class InspectCloseoutFlowTest {
@Test
void getJJDeptLdWorkerIdListLength_shouldReturnCount() {
when(iSysBaseAPI.getUsersListByDeptIdAndRoleIdLocalApi(
InspectCloseoutConstant.JJ_DEPT_ID, InspectCloseoutConstant.JJ_DEPT_LEADER_ROLE_ID))
when(iSysBaseAPI.getUsersListByDeptIdAndRoleIdLocalApi("dept-jj", "role-ld"))
.thenReturn(List.of("user1", "user2"));
assertEquals(2, flow.getJJDeptLdWorkerIdListLength());
@@ -111,8 +122,7 @@ class InspectCloseoutFlowTest {
@Test
void getDqDeptLdUserIdList_shouldReturnUserList() {
List<String> users = List.of("dq_user1");
when(iSysBaseAPI.getUsersListByDeptIdAndRoleIdLocalApi(
InspectCloseoutConstant.DQ_DEPT_ID, InspectCloseoutConstant.DQ_DEPT_WORKER_ROLE_ID))
when(iSysBaseAPI.getUsersListByDeptIdAndRoleIdLocalApi("dept-dq", "role-jj-worker"))
.thenReturn(users);
assertEquals(users, flow.getDqDeptLdUserIdList());
@@ -120,8 +130,7 @@ class InspectCloseoutFlowTest {
@Test
void getDqDeptLdUserIdListLength_shouldReturnCount() {
when(iSysBaseAPI.getUsersListByDeptIdAndRoleIdLocalApi(
InspectCloseoutConstant.DQ_DEPT_ID, InspectCloseoutConstant.DQ_DEPT_WORKER_ROLE_ID))
when(iSysBaseAPI.getUsersListByDeptIdAndRoleIdLocalApi("dept-dq", "role-jj-worker"))
.thenReturn(List.of("user1", "user2"));
assertEquals(2, flow.getDqDeptLdUserIdListLength());
@@ -129,8 +138,7 @@ class InspectCloseoutFlowTest {
@Test
void getDqDeptLdUserIdListLength_shouldReturnZeroWhenEmpty() {
when(iSysBaseAPI.getUsersListByDeptIdAndRoleIdLocalApi(
InspectCloseoutConstant.DQ_DEPT_ID, InspectCloseoutConstant.DQ_DEPT_WORKER_ROLE_ID))
when(iSysBaseAPI.getUsersListByDeptIdAndRoleIdLocalApi("dept-dq", "role-jj-worker"))
.thenReturn(Collections.emptyList());
assertEquals(0, flow.getDqDeptLdUserIdListLength());
@@ -144,8 +152,7 @@ class InspectCloseoutFlowTest {
@Test
void getJWSJUser_shouldReturnUniqueUser() {
when(iSysBaseAPI.getUsersListByDeptIdAndRoleIdLocalApi(
InspectCloseoutConstant.SLD_DEPT_ID, InspectCloseoutConstant.SLD_JWSJ_ROLE_ID))
when(iSysBaseAPI.getUsersListByDeptIdAndRoleIdLocalApi("dept-sld", "role-sld-jwsj"))
.thenReturn(List.of("jwsj_user"));
assertEquals("jwsj_user", flow.getJWSJUser());
@@ -153,8 +160,7 @@ class InspectCloseoutFlowTest {
@Test
void getJWSJUser_shouldThrowWhenEmpty() {
when(iSysBaseAPI.getUsersListByDeptIdAndRoleIdLocalApi(
InspectCloseoutConstant.SLD_DEPT_ID, InspectCloseoutConstant.SLD_JWSJ_ROLE_ID))
when(iSysBaseAPI.getUsersListByDeptIdAndRoleIdLocalApi("dept-sld", "role-sld-jwsj"))
.thenReturn(Collections.emptyList());
assertThrows(BusinessException.class, () -> flow.getJWSJUser());
@@ -162,8 +168,7 @@ class InspectCloseoutFlowTest {
@Test
void getJWSJUser_shouldThrowWhenMultipleUsers() {
when(iSysBaseAPI.getUsersListByDeptIdAndRoleIdLocalApi(
InspectCloseoutConstant.SLD_DEPT_ID, InspectCloseoutConstant.SLD_JWSJ_ROLE_ID))
when(iSysBaseAPI.getUsersListByDeptIdAndRoleIdLocalApi("dept-sld", "role-sld-jwsj"))
.thenReturn(List.of("user1", "user2"));
assertThrows(BusinessException.class, () -> flow.getJWSJUser());
@@ -7,6 +7,7 @@ import com.alibaba.fastjson.JSONObject;
import com.jeecg.weibo.exception.BusinessException;
import org.flowable.engine.RuntimeService;
import org.flowable.engine.delegate.DelegateExecution;
import org.jeecg.OrgConfig;
import org.jeecg.common.system.api.ISysBaseAPI;
import org.jeecg.inspectimprove.InspectImproveConfig.InspectImproveProperties;
import org.jeecg.modules.demo.dqinspecttask.entity.DqInspectTask;
@@ -27,6 +28,9 @@ class InspectImproveFlowTest {
@Mock
private InspectImproveConfig inspectImproveConfig;
@Mock
private OrgConfig orgConfig;
@Mock
private ISysBaseAPI iSysBaseAPI;
@@ -41,21 +45,30 @@ class InspectImproveFlowTest {
private InspectImproveFlow flow;
private InspectImproveProperties props;
private OrgConfig.Dept dept;
private OrgConfig.Role role;
@BeforeEach
void setUp() {
props = new InspectImproveProperties();
props.setBusinessKey("businessKey");
props.setDqDeptId("dept-001");
props.setLdRoleId("role-001");
props.setMeasureResLeaderKey("measureResLeader");
props.setMeasureResDeptKey("measureResDept");
props.setQuestionResLeaderKey("questionResLeader");
props.setQuestionResDeptKey("questionResDept");
lenient().when(inspectImproveConfig.getInspectImprove()).thenReturn(props);
// IDjInspectImproveService, FlowNodeExpression, XiSpeakConfig 未使用,传 null
flow = new InspectImproveFlow(inspectImproveConfig, null, null, null,
dept = new OrgConfig.Dept();
dept.setDq("dept-dq");
dept.setSld("dept-sld");
role = new OrgConfig.Role();
role.setLd("role-ld");
role.setSdwsj("role-sdwsj");
lenient().when(orgConfig.getDept()).thenReturn(dept);
lenient().when(orgConfig.getRole()).thenReturn(role);
// IDjInspectImproveService, FlowNodeExpression 未使用,传 null
flow = new InspectImproveFlow(inspectImproveConfig, orgConfig, null, null,
iSysBaseAPI, dqInspectTaskService, runtimeService);
}
@@ -211,22 +224,15 @@ class InspectImproveFlowTest {
@Test
void getDqDeptLdUserIdList_shouldReturnUserList() {
List<String> users = List.of("user1", "user2");
when(iSysBaseAPI.getUsersListByDeptIdAndRoleIdLocalApi("dept-001", "role-001"))
when(iSysBaseAPI.getUsersListByDeptIdAndRoleIdLocalApi("dept-dq", "role-ld"))
.thenReturn(users);
assertEquals(users, flow.getDqDeptLdUserIdList());
}
@Test
void getDqDeptLdUserIdList_shouldReturnEmptyWhenPropsIsNull() {
when(inspectImproveConfig.getInspectImprove()).thenReturn(null);
assertEquals(Collections.emptyList(), flow.getDqDeptLdUserIdList());
}
@Test
void getDqDeptLdUserIdListLength_shouldReturnCount() {
when(iSysBaseAPI.getUsersListByDeptIdAndRoleIdLocalApi("dept-001", "role-001"))
when(iSysBaseAPI.getUsersListByDeptIdAndRoleIdLocalApi("dept-dq", "role-ld"))
.thenReturn(List.of("user1", "user2"));
assertEquals(2, flow.getDqDeptLdUserIdListLength());
@@ -234,8 +240,7 @@ class InspectImproveFlowTest {
@Test
void getSDWSJ_shouldReturnUniqueUser() {
when(iSysBaseAPI.getUsersListByDeptIdAndRoleIdLocalApi(
InspectConstant.SLD_DEPT_ID, InspectConstant.SDWSJ_ROLE_ID))
when(iSysBaseAPI.getUsersListByDeptIdAndRoleIdLocalApi("dept-sld", "role-sdwsj"))
.thenReturn(List.of("party_secretary"));
assertEquals("party_secretary", flow.getSDWSJ());
@@ -243,8 +248,7 @@ class InspectImproveFlowTest {
@Test
void getSDWSJ_shouldThrowWhenEmpty() {
when(iSysBaseAPI.getUsersListByDeptIdAndRoleIdLocalApi(
InspectConstant.SLD_DEPT_ID, InspectConstant.SDWSJ_ROLE_ID))
when(iSysBaseAPI.getUsersListByDeptIdAndRoleIdLocalApi("dept-sld", "role-sdwsj"))
.thenReturn(Collections.emptyList());
assertThrows(BusinessException.class, () -> flow.getSDWSJ());
@@ -252,8 +256,7 @@ class InspectImproveFlowTest {
@Test
void getSDWSJ_shouldThrowWhenMultipleUsers() {
when(iSysBaseAPI.getUsersListByDeptIdAndRoleIdLocalApi(
InspectConstant.SLD_DEPT_ID, InspectConstant.SDWSJ_ROLE_ID))
when(iSysBaseAPI.getUsersListByDeptIdAndRoleIdLocalApi("dept-sld", "role-sdwsj"))
.thenReturn(List.of("user1", "user2"));
assertThrows(BusinessException.class, () -> flow.getSDWSJ());
@@ -272,7 +275,7 @@ class InspectImproveFlowTest {
task.setMeasureResDept("dept-100");
List<String> leaders = List.of("leader1");
when(iSysBaseAPI.getUsersListByDeptIdAndRoleIdLocalApi("dept-100", "role-001"))
when(iSysBaseAPI.getUsersListByDeptIdAndRoleIdLocalApi("dept-100", "role-ld"))
.thenReturn(leaders);
assertEquals(leaders, flow.getImplDeptLeaderList(execution));
@@ -293,7 +296,7 @@ class InspectImproveFlowTest {
DqInspectTask task = mockTaskFound("biz-001");
task.setMeasureResDept("dept-100");
when(iSysBaseAPI.getUsersListByDeptIdAndRoleIdLocalApi("dept-100", "role-001"))
when(iSysBaseAPI.getUsersListByDeptIdAndRoleIdLocalApi("dept-100", "role-ld"))
.thenReturn(List.of("leader1", "leader2"));
assertEquals(2, flow.getImplDeptLeaderListLength(execution));