收敛充电订单开票待办接收人

This commit is contained in:
jsowell
2026-07-17 17:30:29 +08:00
parent c416bdacc9
commit 5c7f4dccec
9 changed files with 112 additions and 7 deletions

View File

@@ -26,7 +26,7 @@ import static org.mockito.Mockito.when;
class OrderInvoiceRecordTodoTest {
@Test
void insert_shouldCreateTodoForEachMerchantUser() {
void insert_shouldCreateTodoForEachMerchantAdmin() {
OrderInvoiceRecordMapper mapper = mock(OrderInvoiceRecordMapper.class);
PileMerchantInfoService merchantService = mock(PileMerchantInfoService.class);
TodoTaskAssigneeService assigneeService = mock(TodoTaskAssigneeService.class);
@@ -44,7 +44,7 @@ class OrderInvoiceRecordTodoTest {
PileMerchantInfo merchantInfo = new PileMerchantInfo();
merchantInfo.setDeptId("200");
when(merchantService.selectPileMerchantInfoById(100L)).thenReturn(merchantInfo);
when(assigneeService.findActiveUserIdsByDeptTree(200L)).thenReturn(Arrays.asList(8L, 9L));
when(assigneeService.findActiveOperatorAdminUserIdsByDeptTree(200L)).thenReturn(Arrays.asList(8L, 9L));
when(todoTaskService.createTask(any(TodoTaskCreateCommand.class))).thenReturn(new SysTodoTask());
service.insertOrderInvoiceRecord(invoiceRecord);
@@ -56,6 +56,8 @@ class OrderInvoiceRecordTodoTest {
commands.get(0).getAssigneeUserId(), commands.get(1).getAssigneeUserId()));
assertEquals("ORDER_INVOICE_RECORD", commands.get(0).getBusinessType());
assertEquals("55", commands.get(0).getBusinessId());
assertEquals("充电订单开票申请", commands.get(0).getTitle());
assertEquals("有新的充电订单开票申请需要处理申请单号55", commands.get(0).getSummary());
assertEquals("invoiceDetail", commands.get(0).getRouteName());
assertEquals(TodoTaskConstants.PRIORITY_IMPORTANT, commands.get(0).getPriority());
assertEquals("INVOICE_REVIEW:ORDER_INVOICE_RECORD:55:8", commands.get(0).getIdempotentKey());

View File

@@ -0,0 +1,52 @@
package com.jsowell.system.service;
import com.jsowell.system.mapper.SysUserMapper;
import com.jsowell.system.service.impl.TodoTaskAssigneeServiceImpl;
import org.junit.jupiter.api.Test;
import java.lang.reflect.Field;
import java.util.Collections;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
class TodoTaskAssigneeServiceImplTest {
@Test
void findOperatorAdmins_shouldUseConfiguredRole() {
SysUserMapper mapper = mock(SysUserMapper.class);
TodoTaskAssigneeServiceImpl service = new TodoTaskAssigneeServiceImpl();
setField(service, "userMapper", mapper);
setField(service, "operatorAdminRoleId", 7L);
when(mapper.selectActiveUserIdsByDeptTreeAndRole(200L, 7L))
.thenReturn(Collections.singletonList(8L));
assertEquals(Collections.singletonList(8L),
service.findActiveOperatorAdminUserIdsByDeptTree(200L));
verify(mapper).selectActiveUserIdsByDeptTreeAndRole(200L, 7L);
}
@Test
void findOperatorAdmins_shouldFallbackToExistingMerchantAdminRole() {
SysUserMapper mapper = mock(SysUserMapper.class);
TodoTaskAssigneeServiceImpl service = new TodoTaskAssigneeServiceImpl();
setField(service, "userMapper", mapper);
when(mapper.selectActiveUserIdsByDeptTreeAndRole(200L, 3L))
.thenReturn(Collections.singletonList(8L));
service.findActiveOperatorAdminUserIdsByDeptTree(200L);
verify(mapper).selectActiveUserIdsByDeptTreeAndRole(200L, 3L);
}
private static void setField(Object target, String fieldName, Object value) {
try {
Field field = target.getClass().getDeclaredField(fieldName);
field.setAccessible(true);
field.set(target, value);
} catch (Exception exception) {
throw new RuntimeException(exception);
}
}
}

View File

@@ -121,7 +121,7 @@ class TodoTaskServiceImplTest {
private static TodoTaskCreateCommand createCommand() {
return TodoTaskCreateCommand.builder()
.taskType("INVOICE_REVIEW")
.title("司机开票申请")
.title("充电订单开票申请")
.businessType("INVOICE_APPLY")
.businessId("100")
.routeName("InvoiceApplyDetail")