修复部分bug

This commit is contained in:
tangcy 2026-03-27 09:31:59 +08:00
parent 1a8223a358
commit fb657b810e
3 changed files with 86 additions and 43 deletions

View File

@ -17,13 +17,13 @@ import java.util.List;
@Schema(description = "工作票申请") @Schema(description = "工作票申请")
public class WorkTicket extends BaseEntity { public class WorkTicket extends BaseEntity {
@Schema(description = "工作票ID") @Schema(description = "工作票 ID")
private Long ticketId; private Long ticketId;
@Schema(description = "票证编号") @Schema(description = "票证编号")
private String ticketNumber; private String ticketNumber;
@Schema(description = "所属项目ID") @Schema(description = "所属项目 ID")
private Long projectId; private Long projectId;
@Schema(description = "项目编号(联查 work_plan 返回,表中不存)") @Schema(description = "项目编号(联查 work_plan 返回,表中不存)")
@ -35,7 +35,7 @@ public class WorkTicket extends BaseEntity {
@Schema(description = "作业地点") @Schema(description = "作业地点")
private String workLocation; private String workLocation;
@Schema(description = "作业负责人ID") @Schema(description = "作业负责人 ID")
private Long supervisorId; private Long supervisorId;
@Schema(description = "作业负责人姓名") @Schema(description = "作业负责人姓名")
@ -44,9 +44,18 @@ public class WorkTicket extends BaseEntity {
@Schema(description = "作业负责人职位") @Schema(description = "作业负责人职位")
private String supervisorPosition; private String supervisorPosition;
@Schema(description = "负责人所属部门名称(根据负责人ID联查列表返回") @Schema(description = "负责人所属部门名称(根据负责人 ID 联查,列表返回)")
private String supervisorDeptName; private String supervisorDeptName;
@Schema(description = "搜索关键字(不映射到数据库,用于模糊查询 projectCode 和 projectName")
private String keyword;
@Schema(description = "开始时间(不映射到数据库,用于时间范围查询)")
private String startTime;
@Schema(description = "结束时间(不映射到数据库,用于时间范围查询)")
private String endTime;
@Schema(description = "作业内容") @Schema(description = "作业内容")
private String workContent; private String workContent;

View File

@ -20,6 +20,7 @@ import org.springframework.transaction.annotation.Transactional;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
/** /**
* 工作票申请Service业务层处理 * 工作票申请Service业务层处理
@ -87,7 +88,32 @@ public class WorkTicketServiceImpl implements IWorkTicketService {
*/ */
@Override @Override
public List<WorkTicket> selectWorkTicketList(WorkTicket workTicket) { public List<WorkTicket> selectWorkTicketList(WorkTicket workTicket) {
return workTicketMapper.selectWorkTicketList(workTicket); List<WorkTicket> workTickets = workTicketMapper.selectWorkTicketList(workTicket);
// 在内存中根据 supervisorDeptName 字段进行模糊过滤
if (StringUtils.isNotBlank(workTicket.getSupervisorDeptName())) {
String keyword = workTicket.getSupervisorDeptName();
workTickets = workTickets.stream()
.filter(ticket -> ticket.getSupervisorDeptName() != null
&& ticket.getSupervisorDeptName().contains(keyword))
.collect(Collectors.toList());
}
// 在内存中根据 keyword 字段进行模糊过滤匹配 projectCode projectName
if (StringUtils.isNotBlank(workTicket.getKeyword())) {
String keyword = workTicket.getKeyword();
workTickets = workTickets.stream()
.filter(ticket -> {
boolean matchProjectCode = StringUtils.isNotBlank(ticket.getProjectCode())
&& ticket.getTicketNumber().contains(keyword);
boolean matchProjectName = StringUtils.isNotBlank(ticket.getProjectName())
&& ticket.getProjectName().contains(keyword);
return matchProjectCode || matchProjectName;
})
.collect(Collectors.toList());
}
return workTickets;
} }
/** /**
@ -205,7 +231,7 @@ public class WorkTicketServiceImpl implements IWorkTicketService {
/** /**
* 审批工作票通过/已签发 * 审批工作票通过/已签发
* *
* @param ticketId 工作票ID * @param ticketId 工作票ID
* @param reviewComment 审核意见 * @param reviewComment 审核意见
* @return 结果 * @return 结果
*/ */
@ -240,7 +266,7 @@ public class WorkTicketServiceImpl implements IWorkTicketService {
/** /**
* 审批工作票驳回 * 审批工作票驳回
* *
* @param ticketId 工作票ID * @param ticketId 工作票ID
* @param reviewComment 审核意见 * @param reviewComment 审核意见
* @return 结果 * @return 结果
*/ */
@ -295,14 +321,16 @@ public class WorkTicketServiceImpl implements IWorkTicketService {
try { try {
if (StringUtils.isNotEmpty(workTicket.getGeneralSafetyMeasures())) { if (StringUtils.isNotEmpty(workTicket.getGeneralSafetyMeasures())) {
workTicket.setSafetyMeasuresList(objectMapper.readValue( workTicket.setSafetyMeasuresList(objectMapper.readValue(
workTicket.getGeneralSafetyMeasures(), workTicket.getGeneralSafetyMeasures(),
new TypeReference<List<String>>() {} new TypeReference<List<String>>() {
}
)); ));
} }
if (StringUtils.isNotEmpty(workTicket.getTeamMemberQualifications())) { if (StringUtils.isNotEmpty(workTicket.getTeamMemberQualifications())) {
workTicket.setQualificationList(objectMapper.readValue( workTicket.setQualificationList(objectMapper.readValue(
workTicket.getTeamMemberQualifications(), workTicket.getTeamMemberQualifications(),
new TypeReference<List<com.admin.contractor.domain.TeamMemberQualification>>() {} new TypeReference<List<com.admin.contractor.domain.TeamMemberQualification>>() {
}
)); ));
} }
} catch (Exception e) { } catch (Exception e) {

View File

@ -112,6 +112,12 @@
<if test="projectId != null"> <if test="projectId != null">
and wt.project_id = #{projectId} and wt.project_id = #{projectId}
</if> </if>
<if test="startTime != null and startTime != ''">
and wt.create_time &gt;= #{startTime}
</if>
<if test="endTime != null and endTime != ''">
and wt.create_time &lt;= DATE_ADD(DATE(#{endTime}), INTERVAL 1 DAY)
</if>
order by wt.create_time desc order by wt.create_time desc
</select> </select>