修复部分bug
This commit is contained in:
parent
1a8223a358
commit
fb657b810e
|
|
@ -17,13 +17,13 @@ import java.util.List;
|
|||
@Schema(description = "工作票申请")
|
||||
public class WorkTicket extends BaseEntity {
|
||||
|
||||
@Schema(description = "工作票ID")
|
||||
@Schema(description = "工作票 ID")
|
||||
private Long ticketId;
|
||||
|
||||
@Schema(description = "票证编号")
|
||||
private String ticketNumber;
|
||||
|
||||
@Schema(description = "所属项目ID")
|
||||
@Schema(description = "所属项目 ID")
|
||||
private Long projectId;
|
||||
|
||||
@Schema(description = "项目编号(联查 work_plan 返回,表中不存)")
|
||||
|
|
@ -35,7 +35,7 @@ public class WorkTicket extends BaseEntity {
|
|||
@Schema(description = "作业地点")
|
||||
private String workLocation;
|
||||
|
||||
@Schema(description = "作业负责人ID")
|
||||
@Schema(description = "作业负责人 ID")
|
||||
private Long supervisorId;
|
||||
|
||||
@Schema(description = "作业负责人姓名")
|
||||
|
|
@ -44,9 +44,18 @@ public class WorkTicket extends BaseEntity {
|
|||
@Schema(description = "作业负责人职位")
|
||||
private String supervisorPosition;
|
||||
|
||||
@Schema(description = "负责人所属部门名称(根据负责人ID联查,列表返回)")
|
||||
@Schema(description = "负责人所属部门名称(根据负责人 ID 联查,列表返回)")
|
||||
private String supervisorDeptName;
|
||||
|
||||
@Schema(description = "搜索关键字(不映射到数据库,用于模糊查询 projectCode 和 projectName)")
|
||||
private String keyword;
|
||||
|
||||
@Schema(description = "开始时间(不映射到数据库,用于时间范围查询)")
|
||||
private String startTime;
|
||||
|
||||
@Schema(description = "结束时间(不映射到数据库,用于时间范围查询)")
|
||||
private String endTime;
|
||||
|
||||
@Schema(description = "作业内容")
|
||||
private String workContent;
|
||||
|
||||
|
|
|
|||
|
|
@ -20,32 +20,33 @@ import org.springframework.transaction.annotation.Transactional;
|
|||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 工作票申请Service业务层处理
|
||||
*
|
||||
*
|
||||
* @author ruoyi
|
||||
*/
|
||||
@Service
|
||||
public class WorkTicketServiceImpl implements IWorkTicketService {
|
||||
|
||||
|
||||
@Autowired
|
||||
private WorkTicketMapper workTicketMapper;
|
||||
|
||||
@Autowired
|
||||
private WorkPlanMapper workPlanMapper;
|
||||
|
||||
|
||||
@Autowired(required = false)
|
||||
private IRiskControlCardService riskControlCardService;
|
||||
|
||||
@Autowired(required = false)
|
||||
private IOwnerIssuerService ownerIssuerService;
|
||||
|
||||
|
||||
private static final ObjectMapper objectMapper = new ObjectMapper();
|
||||
|
||||
|
||||
/**
|
||||
* 查询工作票申请
|
||||
*
|
||||
*
|
||||
* @param ticketId 工作票ID
|
||||
* @return 工作票申请信息
|
||||
*/
|
||||
|
|
@ -69,7 +70,7 @@ public class WorkTicketServiceImpl implements IWorkTicketService {
|
|||
if (workPlan != null) {
|
||||
if (ticket.getProjectName() == null) {
|
||||
ticket.setProjectName(workPlan.getProjectName());
|
||||
}
|
||||
}
|
||||
if (ticket.getProjectCode() == null) {
|
||||
ticket.setProjectCode(workPlan.getProjectCode());
|
||||
}
|
||||
|
|
@ -78,21 +79,46 @@ public class WorkTicketServiceImpl implements IWorkTicketService {
|
|||
}
|
||||
return ticket;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 查询工作票申请列表
|
||||
*
|
||||
*
|
||||
* @param workTicket 工作票申请信息
|
||||
* @return 工作票申请集合
|
||||
*/
|
||||
@Override
|
||||
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;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 根据项目ID查询工作票
|
||||
*
|
||||
*
|
||||
* @param projectId 项目ID
|
||||
* @return 工作票申请信息
|
||||
*/
|
||||
|
|
@ -104,10 +130,10 @@ public class WorkTicketServiceImpl implements IWorkTicketService {
|
|||
}
|
||||
return ticket;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新增工作票申请
|
||||
*
|
||||
*
|
||||
* @param workTicket 工作票申请信息
|
||||
* @return 结果
|
||||
*/
|
||||
|
|
@ -121,27 +147,27 @@ public class WorkTicketServiceImpl implements IWorkTicketService {
|
|||
if (workPlanMapper.selectWorkPlanById(workTicket.getProjectId()) == null) {
|
||||
throw new ServiceException("项目不存在");
|
||||
}
|
||||
|
||||
|
||||
// 生成票证编号
|
||||
if (StringUtils.isEmpty(workTicket.getTicketNumber())) {
|
||||
workTicket.setTicketNumber(generateTicketNumber());
|
||||
}
|
||||
|
||||
|
||||
// 默认状态为草稿
|
||||
if (StringUtils.isEmpty(workTicket.getStatus())) {
|
||||
workTicket.setStatus("0");
|
||||
}
|
||||
|
||||
|
||||
// 处理JSON字段
|
||||
processJsonFields(workTicket);
|
||||
|
||||
|
||||
workTicket.setCreateBy(SecurityUtils.getUsername());
|
||||
return workTicketMapper.insertWorkTicket(workTicket);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 修改工作票申请
|
||||
*
|
||||
*
|
||||
* @param workTicket 工作票申请信息
|
||||
* @return 结果
|
||||
*/
|
||||
|
|
@ -153,10 +179,10 @@ public class WorkTicketServiceImpl implements IWorkTicketService {
|
|||
workTicket.setUpdateBy(SecurityUtils.getUsername());
|
||||
return workTicketMapper.updateWorkTicket(workTicket);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 批量删除工作票申请
|
||||
*
|
||||
*
|
||||
* @param ticketIds 需要删除的工作票ID
|
||||
* @return 结果
|
||||
*/
|
||||
|
|
@ -165,10 +191,10 @@ public class WorkTicketServiceImpl implements IWorkTicketService {
|
|||
public int deleteWorkTicketByIds(Long[] ticketIds) {
|
||||
return workTicketMapper.deleteWorkTicketByIds(ticketIds);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 保存草稿
|
||||
*
|
||||
*
|
||||
* @param workTicket 工作票申请信息
|
||||
* @return 结果
|
||||
*/
|
||||
|
|
@ -182,10 +208,10 @@ public class WorkTicketServiceImpl implements IWorkTicketService {
|
|||
return updateWorkTicket(workTicket);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 提交工作票申请
|
||||
*
|
||||
*
|
||||
* @param ticketId 工作票ID
|
||||
* @return 结果
|
||||
*/
|
||||
|
|
@ -201,11 +227,11 @@ public class WorkTicketServiceImpl implements IWorkTicketService {
|
|||
}
|
||||
return workTicketMapper.updateTicketStatus(ticketId, "1", null, null); // 待审核状态
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 审批工作票(通过/已签发)
|
||||
*
|
||||
* @param ticketId 工作票ID
|
||||
*
|
||||
* @param ticketId 工作票ID
|
||||
* @param reviewComment 审核意见
|
||||
* @return 结果
|
||||
*/
|
||||
|
|
@ -236,11 +262,11 @@ public class WorkTicketServiceImpl implements IWorkTicketService {
|
|||
String reviewer = SecurityUtils.getUsername();
|
||||
return workTicketMapper.updateTicketStatus(ticketId, "2", reviewer, reviewComment); // 已签发
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 审批工作票(驳回)
|
||||
*
|
||||
* @param ticketId 工作票ID
|
||||
*
|
||||
* @param ticketId 工作票ID
|
||||
* @param reviewComment 审核意见
|
||||
* @return 结果
|
||||
*/
|
||||
|
|
@ -271,7 +297,7 @@ public class WorkTicketServiceImpl implements IWorkTicketService {
|
|||
String reviewer = SecurityUtils.getUsername();
|
||||
return workTicketMapper.updateTicketStatus(ticketId, "3", reviewer, reviewComment); // 已驳回
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 处理JSON字段
|
||||
*/
|
||||
|
|
@ -287,7 +313,7 @@ public class WorkTicketServiceImpl implements IWorkTicketService {
|
|||
throw new ServiceException("数据格式错误");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 解析JSON字段
|
||||
*/
|
||||
|
|
@ -295,21 +321,23 @@ public class WorkTicketServiceImpl implements IWorkTicketService {
|
|||
try {
|
||||
if (StringUtils.isNotEmpty(workTicket.getGeneralSafetyMeasures())) {
|
||||
workTicket.setSafetyMeasuresList(objectMapper.readValue(
|
||||
workTicket.getGeneralSafetyMeasures(),
|
||||
new TypeReference<List<String>>() {}
|
||||
workTicket.getGeneralSafetyMeasures(),
|
||||
new TypeReference<List<String>>() {
|
||||
}
|
||||
));
|
||||
}
|
||||
if (StringUtils.isNotEmpty(workTicket.getTeamMemberQualifications())) {
|
||||
workTicket.setQualificationList(objectMapper.readValue(
|
||||
workTicket.getTeamMemberQualifications(),
|
||||
new TypeReference<List<com.admin.contractor.domain.TeamMemberQualification>>() {}
|
||||
workTicket.getTeamMemberQualifications(),
|
||||
new TypeReference<List<com.admin.contractor.domain.TeamMemberQualification>>() {
|
||||
}
|
||||
));
|
||||
}
|
||||
} catch (Exception e) {
|
||||
// 忽略JSON解析错误
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 生成票证编号
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -112,6 +112,12 @@
|
|||
<if test="projectId != null">
|
||||
and wt.project_id = #{projectId}
|
||||
</if>
|
||||
<if test="startTime != null and startTime != ''">
|
||||
and wt.create_time >= #{startTime}
|
||||
</if>
|
||||
<if test="endTime != null and endTime != ''">
|
||||
and wt.create_time <= DATE_ADD(DATE(#{endTime}), INTERVAL 1 DAY)
|
||||
</if>
|
||||
order by wt.create_time desc
|
||||
</select>
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue