Compare commits

...

2 Commits

Author SHA1 Message Date
曹鹏飞 392956408e feat(ticket): 添加主要负责人字段到工单PDF导出功能
- 在PDF模板中新增主要负责人显示字段
- 实现主要负责人从处理人列表中提取第一个的功能
- 调整表格列宽布局以适应新字段
- 优化工单PDF导出的数据展示结构
2026-01-16 16:19:13 +08:00
曹鹏飞 142b47f91f refactor(customer): 优化代理商公司同步逻辑,按公司名称和编码排重,任一个相同责认为是相同的记录,会覆盖旧记录 2026-01-16 15:15:29 +08:00
5 changed files with 30 additions and 12 deletions

View File

@ -538,7 +538,6 @@ public class TicketController extends ControllerBase {
@GetMapping("exportPdf")
@ApiMark(moduleName = "工单管理", apiName = "导出工单为pdf")
public void exportPdf(HttpServletResponse response, @Valid @RequestParam @NotNull(message = "工单编号不能为空") Integer id) {
Ticket ticket = ticketService.getById(id);
VUtils.trueThrowBusinessError(Objects.isNull(ticket)).throwMessage("工单不存在");
DeviceInfoVO device = deviceService.getByDeviceNo(ticket.getDeviceNo());

View File

@ -22,7 +22,6 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.stream.Collectors;
@ -99,10 +98,10 @@ public class AdminCustomerService {
*/
public void syncFromCrm(SyncFromCrmDTO dateParam) {
DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
// DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
// 循环从起始日期到结束日期每次增加一天
List<TBaseCustomer> result = new ArrayList<>();
// List<TBaseCustomer> result = new ArrayList<>();
// for (LocalDate date = stDate; !date.isAfter(edDate); date = date.plusDays(1)) {
@ -110,12 +109,19 @@ public class AdminCustomerService {
if (CollUtil.isEmpty(agentList)) {
return;
}
Set<String> crmComanyCodes = agentList.stream().map(u -> u.getId()).collect(Collectors.toSet());
List<TBaseCustomer> crmCompanyList = baseCustomerService.lambdaQuery().in(TBaseCustomer::getAgencyCompanyCode, crmComanyCodes).list();
Map<String, TBaseCustomer> crmCompanyMap = crmCompanyList.stream().collect(Collectors.toMap(TBaseCustomer::getAgencyCompanyCode, cm -> cm));
List<TBaseCustomer> result = new ArrayList<>();
// Set<String> crmComanyCodes = agentList.stream().map(u -> u.getId()).collect(Collectors.toSet());
// List<TBaseCustomer> crmCompanyList = baseCustomerService.lambdaQuery().in(TBaseCustomer::getAgencyCompanyCode, crmComanyCodes).list();
// Map<String, TBaseCustomer> crmCompanyMap = crmCompanyList.stream().collect(Collectors.toMap(TBaseCustomer::getAgencyCompanyCode, cm -> cm));
List<TBaseCustomer> customers = baseCustomerService.list();
agentList.forEach(u -> {
TBaseCustomer ent = crmCompanyMap.get(u.getId());
// TBaseCustomer ent = crmCompanyMap.get(u.getId());
TBaseCustomer ent = customers.stream()
.filter(c -> Objects.equals(c.getAgencyCompanyCode(), u.getId())
|| StrUtil.equals(convertName(c.getAgencyCompanyName()), convertName(u.getName())))
.findFirst()
.orElse(null);
if (Objects.nonNull(ent)) {
ent.setDataModifyTime(LocalDateTime.now());
@ -150,5 +156,7 @@ public class AdminCustomerService {
}
private String convertName(String name) {
return name.replaceAll("\\s+", "");
}
}

View File

@ -63,8 +63,11 @@
<td colspan="2" th:text="${ticket.useTime}+'小时'"></td>
</tr>
<tr>
<td class="desc1">主要负责人</td>
<td colspan="2"
th:text="${#strings.arraySplit(ticket.handleUserName, ',').length > 0 ? #strings.arraySplit(ticket.handleUserName, ',')[0] : ''}"></td>
<td class="desc1">处理人</td>
<td colspan="11" th:text="${ticket.handleUserName}"></td>
<td colspan="8" th:text="${ticket.handleUserName}"></td>
</tr>
<tr>
<td class="desc1">问题描述</td>

View File

@ -14,4 +14,9 @@ public class TTest {
System.out.println(t2);
System.out.println(ChronoUnit.DAYS.between(null, t1));
}
@Test
public void test2() {
System.out.println("" + " 打 撒sfc dffd发多少分多少 分多少分的d f ".replaceAll("\\s+", "") + "");
}
}

View File

@ -67,8 +67,11 @@
<td colspan="2" th:text="${base.v1}"></td>
</tr>
<tr>
<td class="desc1">主要负责人</td>
<td colspan="2"
th:text="${#strings.arraySplit(ticket.handleUserName, ',').length > 0 ? #strings.arraySplit(ticket.handleUserName, ',')[0] : ''}"></td>
<td class="desc1">处理人</td>
<td colspan="11" th:text="${ticket.handleUserName}"></td>
<td colspan="8" th:text="${ticket.handleUserName}"></td>
</tr>
<tr>
<td class="desc1">问题描述</td>