培训记录特定检索

develop-QA
qinyulong 3 months ago
parent 92572cd398
commit 35d377cacf
  1. 5
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/jobTransfer/pojo/entity/CultivateDetailEntity.java
  2. 81
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/jobTransfer/pojo/request/CultivateDetailQuery.java
  3. 23
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/jobTransfer/pojo/vo/CultivateDetailVO.java
  4. 5
      blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/controller/CultivateDetailController.java
  5. 5
      blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/mapper/CultivateDetailMapper.java
  6. 93
      blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/mapper/CultivateDetailMapper.xml
  7. 3
      blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/service/ICultivateDetailService.java
  8. 5
      blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/service/impl/CultivateDetailServiceImpl.java
  9. 6
      doc/sql/mes/increase-260108.sql

@ -61,6 +61,11 @@ public class CultivateDetailEntity extends BaseEntity {
*/
@Schema(description = "下发时间")
private Date distributeTime;
/**
* 完成时间
*/
@Schema(description = "完成时间")
private Date finishTime;
/**
* 附件链接
*/

@ -0,0 +1,81 @@
package org.springblade.desk.jobTransfer.pojo.request;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.springblade.core.mp.base.BaseEntity;
import java.util.Date;
/**
* 培训安排分页检索 实体类
*
* @author qyl
* @since 2026-01-09
*/
@Data
public class CultivateDetailQuery extends BaseEntity {
/**
* 姓名
*/
@Schema(description = "姓名")
private String name;
/**
* 工号
*/
@Schema(description = "工号")
private String code;
/**
* 用工类型
*/
@Schema(description = "用工类型(1实习工,2正式工)")
private Short staffType;
/**
* 培训类型(1实习,2转岗,3下岗)
*/
@Schema(description = "培训类型(1实习,2转岗,3下岗)")
private Short type;
/**
* 培训模板ID
*/
@Schema(description = "培训模板ID")
private Long planId;
/**
* 培训师ID
*/
@Schema(description = "培训师ID")
private Long teacherId;
/**
* 培训状态(1未配置,2等待下发,3已下发-培训中,4已到期,5已培训-待确认,6培训完成)
*/
@Schema(description = "培训状态(1未配置,2等待下发,3已下发-培训中,4已到期,5已培训-待确认,6培训完成)")
private Short caStatus;
/**
* 下发时间
*/
@Schema(description = "下发时间")
private Date distributeTime;
/**
* 培训周期()
*/
@Schema(description = "培训周期(天)")
private Integer cycle;
/**
* 预警周期()
*/
@Schema(description = "预警周期(天)")
private Integer earlyWarningDay;
/**
* 开始时间
*/
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date startTime;
/**
* 结束时间
*/
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date endTime;
}

@ -18,4 +18,27 @@ public class CultivateDetailVO extends CultivateDetailEntity {
@Serial
private static final long serialVersionUID = 1L;
//姓名
private String name;
//用工号
private String code;
//用工类型
private String staffTypeName;
//培训类型
private String typeName;
//培训周期(天)
private Integer cycle;
//预警周期(天)
private Integer earlyWarningDay;
//培训计划
private String planName;
//状态
private String caStatusName;
}

@ -14,6 +14,7 @@ import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springblade.desk.jobTransfer.pojo.excel.CultivateDetailExcel;
import org.springblade.desk.jobTransfer.pojo.request.CultivateDetailQuery;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
@ -62,8 +63,8 @@ public class CultivateDetailController extends BladeController {
@GetMapping("/page")
@ApiOperationSupport(order = 3)
@Operation(summary = "分页", description = "传入cultivateDetail")
public R<IPage<CultivateDetailVO>> page(CultivateDetailVO cultivateDetail, Query query) {
IPage<CultivateDetailVO> pages = cultivateDetailService.selectCultivateDetailPage(Condition.getPage(query), cultivateDetail);
public R<IPage<CultivateDetailVO>> page(CultivateDetailQuery cultivateDetailQuery, Query query) {
IPage<CultivateDetailVO> pages = cultivateDetailService.selectCultivateDetailPage(Condition.getPage(query), cultivateDetailQuery);
return R.data(pages);
}

@ -2,6 +2,7 @@ package org.springblade.desk.jobTransfer.mapper;
import org.springblade.desk.jobTransfer.pojo.entity.CultivateDetailEntity;
import org.springblade.desk.jobTransfer.pojo.excel.CultivateDetailExcel;
import org.springblade.desk.jobTransfer.pojo.request.CultivateDetailQuery;
import org.springblade.desk.jobTransfer.pojo.vo.CultivateDetailVO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
@ -22,10 +23,10 @@ public interface CultivateDetailMapper extends BaseMapper<CultivateDetailEntity>
* 自定义分页
*
* @param page 分页参数
* @param cultivateDetail 查询参数
* @param query 查询参数
* @return List<CultivateDetailVO>
*/
List<CultivateDetailVO> selectCultivateDetailPage(IPage page, CultivateDetailVO cultivateDetail);
List<CultivateDetailVO> selectCultivateDetailPage(IPage page, CultivateDetailQuery query);
/**

@ -22,13 +22,98 @@
<result column="CA_STATUS" property="caStatus"/>
<result column="DISTRIBUTE_TIME" property="distributeTime"/>
<result column="ATTACH_LINK" property="attachLink"/>
<result column="FINISH_TIME" property="finishTime"/>
</resultMap>
<!-- CultivateDetailVO 结果映射 -->
<resultMap id="CultivateDetailVOResultMap" type="org.springblade.desk.jobTransfer.pojo.vo.CultivateDetailVO">
<!-- 基础字段映射 -->
<id property="id" column="id"/>
<result property="tenantId" column="tenant_id"/>
<result property="createUser" column="create_user"/>
<result property="createTime" column="create_time"/>
<result property="createDept" column="create_dept"/>
<result property="updateUser" column="update_user"/>
<result property="updateTime" column="update_time"/>
<result property="status" column="status"/>
<result property="isDeleted" column="is_deleted"/>
<result property="phId" column="ph_id"/>
<result property="type" column="type"/>
<result property="planId" column="plan_id"/>
<result property="teacherId" column="teacher_id"/>
<result property="teacherName" column="teacher_name"/>
<result property="caStatus" column="ca_status"/>
<result property="distributeTime" column="distribute_time"/>
<result property="attachLink" column="attach_link"/>
<select id="selectCultivateDetailPage" resultMap="mesCultivateDetailResultMap">
select *
from MES_CULTIVATE_DETAIL
where is_deleted = 0
<!-- 关联字段映射 -->
<result property="name" column="name"/>
<result property="code" column="code"/>
<result property="staffTypeName" column="staff_type"/>
<result property="cycle" column="cycle"/>
<result property="earlyWarningDay" column="early_warning_day"/>
<result property="planName" column="plan_name"/>
<result property="caStatusName" column="ca_status"/>
</resultMap>
<!-- 分页查询培训安排 -->
<select id="selectCultivateDetailPage" resultMap="CultivateDetailVOResultMap">
SELECT
cd.*,
bu.real_name as name,
bu.code as code,
mph.staff_type,
mp.cycle,
mp.early_warning_day,
mp.name as plan_name
FROM
mes_cultivate_detail cd
LEFT JOIN
mes_post_handle mph ON cd.ph_id = mph.id AND mph.is_deleted = 0
LEFT JOIN
mes_training_plan mp ON cd.plan_id = mp.id AND mp.is_deleted = 0
LEFT JOIN
blade_user bu ON mph.user_id = bu.id <!-- 通过mes_post_handle的user_id关联 -->
WHERE
cd.is_deleted = 0
<if test="query.name != null and query.name != ''">
AND bu.real_name LIKE CONCAT(CONCAT('%', #{query.name}), '%')
</if>
<if test="query.code != null and query.code != ''">
AND bu.code LIKE CONCAT(CONCAT('%', #{query.code}), '%')
</if>
<if test="query.staffType != null">
AND mph.staff_type = #{query.staffType}
</if>
<if test="query.type != null">
AND cd.type = #{query.type}
</if>
<if test="query.planId != null">
AND cd.plan_id = #{query.planId}
</if>
<if test="query.teacherId != null">
AND cd.teacher_id = #{query.teacherId}
</if>
<if test="query.caStatus != null">
AND cd.ca_status = #{query.caStatus}
</if>
<if test="query.distributeTime != null">
AND cd.distribute_time = #{query.distributeTime}
</if>
<if test="query.cycle != null">
AND mp.cycle = #{query.cycle}
</if>
<if test="query.earlyWarningDay != null">
AND mp.early_warning_day = #{query.earlyWarningDay}
</if>
<!-- 时间范围查询 -->
<if test="query.startTime != null and query.startTime != ''">
AND cd.DISTRIBUTE_TIME &gt;= #{query.startTime}
</if>
<if test="query.endTime != null and query.endTime != ''">
AND cd.DISTRIBUTE_TIME &lt;= #{query.endTime}
</if>
ORDER BY cd.create_time DESC
</select>

@ -3,6 +3,7 @@ package org.springblade.desk.jobTransfer.service;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import org.springblade.desk.jobTransfer.pojo.entity.CultivateDetailEntity;
import org.springblade.desk.jobTransfer.pojo.excel.CultivateDetailExcel;
import org.springblade.desk.jobTransfer.pojo.request.CultivateDetailQuery;
import org.springblade.desk.jobTransfer.pojo.vo.CultivateDetailVO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.mp.base.BaseService;
@ -23,7 +24,7 @@ public interface ICultivateDetailService extends BaseService<CultivateDetailEnti
* @param cultivateDetail 查询参数
* @return IPage<CultivateDetailVO>
*/
IPage<CultivateDetailVO> selectCultivateDetailPage(IPage<CultivateDetailVO> page, CultivateDetailVO cultivateDetail);
IPage<CultivateDetailVO> selectCultivateDetailPage(IPage<CultivateDetailVO> page, CultivateDetailQuery cultivateDetail);
/**

@ -2,6 +2,7 @@ package org.springblade.desk.jobTransfer.service.impl;
import org.springblade.desk.jobTransfer.pojo.entity.CultivateDetailEntity;
import org.springblade.desk.jobTransfer.pojo.excel.CultivateDetailExcel;
import org.springblade.desk.jobTransfer.pojo.request.CultivateDetailQuery;
import org.springblade.desk.jobTransfer.pojo.vo.CultivateDetailVO;
import org.springblade.desk.jobTransfer.mapper.CultivateDetailMapper;
import org.springblade.desk.jobTransfer.service.ICultivateDetailService;
@ -22,8 +23,8 @@ import java.util.List;
public class CultivateDetailServiceImpl extends BaseServiceImpl<CultivateDetailMapper, CultivateDetailEntity> implements ICultivateDetailService {
@Override
public IPage<CultivateDetailVO> selectCultivateDetailPage(IPage<CultivateDetailVO> page, CultivateDetailVO cultivateDetail) {
return page.setRecords(baseMapper.selectCultivateDetailPage(page, cultivateDetail));
public IPage<CultivateDetailVO> selectCultivateDetailPage(IPage<CultivateDetailVO> page, CultivateDetailQuery cultivateDetailQuery) {
return page.setRecords(baseMapper.selectCultivateDetailPage(page, cultivateDetailQuery));
}

@ -357,3 +357,9 @@ COMMENT
ON COLUMN MES_EQUIPMENT_MAINTENANCE.MAINTENANCE_STATUS IS '维护状态(1正常,2到期,3离职)';
COMMENT
ON TABLE MES_EQUIPMENT_MAINTENANCE IS '岗位设备维护';
--
ALTER TABLE MES_CULTIVATE_DETAIL
ADD (FINISH_TIME DATE);
COMMENT
ON COLUMN MES_CULTIVATE_DETAIL.FINISH_TIME IS '完成时间'
Loading…
Cancel
Save