14 files modified
17 files added
| New file |
| | |
| | | package com.gkhy.exam.admin.controller.system; |
| | | |
| | | |
| | | import com.gkhy.exam.common.annotation.RepeatSubmit; |
| | | import com.gkhy.exam.common.api.CommonResult; |
| | | import com.gkhy.exam.system.domain.AnnualVerificationPlan; |
| | | import com.gkhy.exam.system.domain.EmployeeRecord; |
| | | import com.gkhy.exam.system.domain.req.EmployeeRecordReq; |
| | | import com.gkhy.exam.system.service.EmployeeRecordService; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiImplicitParam; |
| | | import io.swagger.annotations.ApiImplicitParams; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.validation.annotation.Validated; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | /** |
| | | * <p> |
| | | * 人员档案 前端控制器 |
| | | * </p> |
| | | * |
| | | * @author hh |
| | | * @since 2025-11-11 13:54:12 |
| | | */ |
| | | @RestController |
| | | @RequestMapping("/system/employee-record") |
| | | @Api(tags = "人员档案") |
| | | public class EmployeeRecordController{ |
| | | |
| | | |
| | | @Autowired |
| | | private EmployeeRecordService employeeRecordService; |
| | | |
| | | |
| | | @ApiOperation(value = "人员档案列表(分页)") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(paramType = "query", name = "pageNum", dataType = "int", required = false, value = "当前页,默认1"), |
| | | @ApiImplicitParam(paramType = "query", name = "pageSize", dataType = "int", required = false, value = "每页数目,默认10"), |
| | | @ApiImplicitParam(paramType = "query", name = "companyId", dataType = "int", required = false, value = "公司id"), |
| | | @ApiImplicitParam(paramType = "query", name = "name", dataType = "String", required = false, value = "姓名"), |
| | | @ApiImplicitParam(paramType = "query", name = "phone", dataType = "String", required = false, value = "手机号码"), |
| | | @ApiImplicitParam(paramType = "query", name = "qualification", dataType = "int", required = false, value = "学历1、高中及以下2、专科3、本科4、硕士5、博士及以上"), |
| | | @ApiImplicitParam(paramType = "query", name = "idCard", dataType = "String", required = false, value = "身份证号"), |
| | | |
| | | }) |
| | | @GetMapping("/selectEmployeeRecordList") |
| | | public CommonResult selectEmployeeRecordList(EmployeeRecordReq employeeRecordReq){ |
| | | return CommonResult.success(employeeRecordService.selectEmployeeRecordList(employeeRecordReq)); |
| | | } |
| | | @RepeatSubmit |
| | | @ApiOperation(value = "编辑人员档案") |
| | | @PostMapping("/saveEmployeeRecord") |
| | | public CommonResult saveEmployeeRecord(@RequestBody @Validated EmployeeRecord employeeRecord){ |
| | | return employeeRecordService.saveEmployeeRecord(employeeRecord); |
| | | } |
| | | |
| | | |
| | | @ApiOperation(value = "人员档案列表") |
| | | @GetMapping("/getEmployeeRecordList") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(paramType = "query", name = "companyId", dataType = "int", required = true, value = "公司id") |
| | | }) |
| | | public CommonResult getEmployeeRecordList(@RequestParam("companyId") Long companyId){ |
| | | return employeeRecordService.getEmployeeRecordList(companyId); |
| | | } |
| | | } |
| New file |
| | |
| | | package com.gkhy.exam.admin.controller.system; |
| | | |
| | | |
| | | import com.gkhy.exam.common.annotation.Log; |
| | | import com.gkhy.exam.common.annotation.RepeatSubmit; |
| | | import com.gkhy.exam.common.api.CommonResult; |
| | | import com.gkhy.exam.common.enums.BusinessType; |
| | | import com.gkhy.exam.system.domain.AnnualMaintenanceService; |
| | | import com.gkhy.exam.system.domain.Memo; |
| | | import com.gkhy.exam.system.domain.SysCategory; |
| | | import com.gkhy.exam.system.service.MemoService; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiImplicitParam; |
| | | import io.swagger.annotations.ApiImplicitParams; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.validation.annotation.Validated; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | /** |
| | | * <p> |
| | | * 备忘录 前端控制器 |
| | | * </p> |
| | | * |
| | | * @author hh |
| | | * @since 2025-11-10 13:58:42 |
| | | */ |
| | | @Api(tags = "备忘录") |
| | | @RestController |
| | | @RequestMapping("/system/memo") |
| | | public class MemoController { |
| | | @Autowired |
| | | private MemoService memoService; |
| | | |
| | | @RepeatSubmit |
| | | @ApiOperation(value = "新增编辑备忘录") |
| | | @PostMapping("/saveMemo") |
| | | public CommonResult saveMemo(@Validated @RequestBody Memo memo){ |
| | | return memoService.saveMemo(memo); |
| | | } |
| | | |
| | | @ApiOperation(value = "获取备忘录") |
| | | @GetMapping("/getMemo") |
| | | public CommonResult getMemo(){ |
| | | return memoService.getMemo(); |
| | | } |
| | | |
| | | @ApiOperation(value = "获取流程内容数据(分页)") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(paramType = "query", name = "pageNum", dataType = "int", required = false, value = "当前页,默认1"), |
| | | @ApiImplicitParam(paramType = "query", name = "pageSize", dataType = "int", required = false, value = "每页数目,默认10"), |
| | | // @ApiImplicitParam(paramType = "query", name = "companyId", dataType = "int", required = false, value = "公司id"), |
| | | |
| | | }) |
| | | @GetMapping("/getIndexTitle") |
| | | public CommonResult getIndexTitle(){ |
| | | return CommonResult.success(memoService.getIndexTitle()); |
| | | } |
| | | |
| | | } |
| | |
| | | return CommonResult.success(sysUserService.selectUserList(user)); |
| | | } |
| | | |
| | | @ApiOperation(value = "特殊作业人员列表(分页)") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(paramType = "query", name = "pageNum", dataType = "int", required = false, value = "当前页,默认1"), |
| | | @ApiImplicitParam(paramType = "query", name = "pageSize", dataType = "int", required = false, value = "每页数目,默认10") |
| | | }) |
| | | @GetMapping("/spList") |
| | | public CommonResult spList(SysUser user){ |
| | | return CommonResult.success(sysUserService.selectSpUserList(user)); |
| | | } |
| | | |
| | | |
| | | @PreAuthorize("hasAnyAuthority('train:exam:system','train:exam:company','train:exam:depart','train:exam:workshop','train:exam:other')") |
| | | @ApiOperation(value = "根据用户id获取用户信息") |
| | | @GetMapping(value = { "/{userId}" }) |
| | |
| | | // @NotBlank(message = "手机号码不能为空") |
| | | // @Length(min = 11, max = 11, message = "手机号只能为11位") |
| | | // @Pattern(regexp = "^[1][3,4,5,6,7,8,9][0-9]{9}$",message = "手机号码有误!") |
| | | @ApiModelProperty(value = "手机号码",required = false) |
| | | @TableField("phone") |
| | | private String phone; |
| | | |
| | | |
| | | @ApiModelProperty("用户性别(0男,1女,2未知,默认2)") |
| | | @TableField("sex") |
| | |
| | | @TableField("person_type") |
| | | private Integer personType; |
| | | |
| | | // @NotBlank(message = "职称不能为空") |
| | | @ApiModelProperty("职称1、初级2中级3高级") |
| | | @TableField("positional") |
| | | private String positional; |
| | | @ApiModelProperty(value = "是否内部人员0是1否",required = true) |
| | | @NotNull(message = "请选择是否内部人员") |
| | | @TableField("internal") |
| | | private Integer internal; |
| | | |
| | | @ApiModelProperty(value = "手机号码",required = false) |
| | | @TableField("phone") |
| | | private String phone; |
| | | |
| | | @ApiModelProperty("职务") |
| | | @TableField("duty") |
| | | private String duty; |
| | | |
| | | @ApiModelProperty("父级账号id") |
| | | @TableField("parent_id") |
| | |
| | | @TableField(exist = false) |
| | | private String deptName; |
| | | |
| | | @ApiModelProperty("职务") |
| | | @TableField("duty") |
| | | private String duty; |
| | | |
| | | @ApiModelProperty(value = "专业",required = true) |
| | | @TableField("post") |
| | | @NotBlank(message = "专业不能为空") |
| | | private String post; |
| | | |
| | | @ApiModelProperty("身份证号") |
| | | @TableField("id_card") |
| | | private String idCard; |
| | | |
| | | @ApiModelProperty("入职时间") |
| | | @TableField("entry_time") |
| | | private LocalDate entryTime; |
| | | |
| | | @ApiModelProperty("离职时间") |
| | | @TableField("resign_time") |
| | | private LocalDate resignTime; |
| | | |
| | | @ApiModelProperty(value = "学历1、高中及以下2、专科3、本科4、硕士5、博士及以上",required = true) |
| | | // @NotNull(message = "学历不能为空") |
| | | @TableField("qualification") |
| | | private Integer qualification; |
| | | |
| | | @ApiModelProperty("特殊作业证书") |
| | | @TableField("operation_certificate") |
| | |
| | | |
| | | @ExcelProperty("文件类型") |
| | | //1、体系文件2、项目文件3、其他 4、技术文件 5、知识产权 7、会议文件 (内部知识) |
| | | //1、标准2、规范3、法律法规4、其他 5、质量服务标准 (外部知识) |
| | | //1、管理2、技术3、质量服务标准、其他 (外部知识) |
| | | private String knowledgeType; |
| | | |
| | | |
| New file |
| | |
| | | package com.gkhy.exam.system.domain; |
| | | |
| | | import com.baomidou.mybatisplus.annotation.IdType; |
| | | import com.baomidou.mybatisplus.annotation.TableField; |
| | | import com.baomidou.mybatisplus.annotation.TableId; |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | import java.io.Serializable; |
| | | import java.math.BigDecimal; |
| | | import java.time.LocalDate; |
| | | import java.time.LocalDateTime; |
| | | |
| | | import com.fasterxml.jackson.annotation.JsonFormat; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Getter; |
| | | import lombok.Setter; |
| | | |
| | | import javax.validation.constraints.NotNull; |
| | | |
| | | /** |
| | | * <p> |
| | | * 人员档案 |
| | | * </p> |
| | | * |
| | | * @author hh |
| | | * @since 2025-11-11 13:54:12 |
| | | */ |
| | | @Getter |
| | | @Setter |
| | | @TableName("employee_record") |
| | | @ApiModel(value = "EmployeeRecord对象", description = "人员档案") |
| | | public class EmployeeRecord implements Serializable { |
| | | |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | @ApiModelProperty("人员档案id") |
| | | @TableId(value = "employee_id", type = IdType.AUTO) |
| | | private Long employeeId; |
| | | |
| | | @ApiModelProperty("公司id") |
| | | @TableField("company_id") |
| | | private Long companyId; |
| | | |
| | | @ApiModelProperty(value = "用户id",required = true) |
| | | @TableField("user_id") |
| | | private Long userId; |
| | | |
| | | @ApiModelProperty("岗位职责") |
| | | @TableField("duties") |
| | | private String duties; |
| | | |
| | | @ApiModelProperty("工龄") |
| | | @TableField("seniority") |
| | | private BigDecimal seniority; |
| | | |
| | | @ApiModelProperty("资格资历") |
| | | @TableField("qualification_requirements") |
| | | private String qualificationRequirements; |
| | | |
| | | @ApiModelProperty("学历1、高中及以下2、专科3、本科4、硕士5、博士及以上") |
| | | @TableField("qualification") |
| | | @NotNull(message = "学历不能为空") |
| | | private Integer qualification; |
| | | |
| | | @ApiModelProperty("身份证号") |
| | | @TableField("id_card") |
| | | private String idCard; |
| | | |
| | | @ApiModelProperty("职称1、初级2中级3高级") |
| | | @TableField("positional") |
| | | @NotNull(message = "职称不能为空") |
| | | private String positional; |
| | | |
| | | @ApiModelProperty("入职时间") |
| | | @TableField("entry_time") |
| | | @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") |
| | | @NotNull(message = "入职时间不能为空") |
| | | private LocalDate entryTime; |
| | | |
| | | @ApiModelProperty("离职日期") |
| | | @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") |
| | | @TableField("resign_time") |
| | | private LocalDate resignTime; |
| | | |
| | | @ApiModelProperty("创建时间") |
| | | @TableField("create_time") |
| | | private LocalDateTime createTime; |
| | | |
| | | @ApiModelProperty("更新者") |
| | | @TableField("update_by") |
| | | private String updateBy; |
| | | |
| | | @ApiModelProperty("更新时间") |
| | | @TableField("update_time") |
| | | private LocalDateTime updateTime; |
| | | |
| | | @ApiModelProperty("备注") |
| | | @TableField("remark") |
| | | private String remark; |
| | | |
| | | @ApiModelProperty("乐观锁") |
| | | @TableField("version") |
| | | private Integer version; |
| | | |
| | | @ApiModelProperty("证书") |
| | | @TableField("certificate") |
| | | private String certificate; |
| | | |
| | | @ApiModelProperty("删除标志(0代表存在,2代表删除,默认0)") |
| | | @TableField("del_flag") |
| | | private Integer delFlag; |
| | | |
| | | @ApiModelProperty("创建者") |
| | | @TableField("create_by") |
| | | private String createBy; |
| | | |
| | | |
| | | } |
| | |
| | | @NotBlank(message = "编号不能为空") |
| | | private String number; |
| | | |
| | | @ApiModelProperty(value ="1、标准2、规范3、法律法规4、其他 5、质量服务标准",required = true) |
| | | @ApiModelProperty(value ="1、管理2、技术3、质量服务标准、其他 ",required = true) |
| | | @TableField("knowledge_type") |
| | | @NotNull(message = "类型不能为空") |
| | | private Integer knowledgeType; |
| | |
| | | package com.gkhy.exam.system.domain; |
| | | |
| | | import com.baomidou.mybatisplus.annotation.TableField; |
| | | import com.fasterxml.jackson.annotation.JsonFormat; |
| | | import com.gkhy.exam.common.domain.BaseEntity; |
| | | import io.swagger.annotations.ApiModel; |
| | |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") |
| | | private LocalDateTime buildDate; |
| | | |
| | | @ApiModelProperty("地址") |
| | | private String platformAddress; |
| | | @ApiModelProperty("图标") |
| | | private String platformPic; |
| | | |
| | | |
| | | /** 删除标志(0代表存在 2代表删除) */ |
| | | private String delFlag; |
| New file |
| | |
| | | package com.gkhy.exam.system.domain; |
| | | |
| | | import com.baomidou.mybatisplus.annotation.IdType; |
| | | import com.baomidou.mybatisplus.annotation.TableField; |
| | | import com.baomidou.mybatisplus.annotation.TableId; |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | import java.io.Serializable; |
| | | import java.time.LocalDateTime; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Getter; |
| | | import lombok.Setter; |
| | | |
| | | /** |
| | | * <p> |
| | | * 备忘录 |
| | | * </p> |
| | | * |
| | | * @author hh |
| | | * @since 2025-11-10 13:58:42 |
| | | */ |
| | | @Getter |
| | | @Setter |
| | | @TableName("memo") |
| | | @ApiModel(value = "Memo对象", description = "备忘录") |
| | | public class Memo implements Serializable { |
| | | |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | @TableId(value = "id", type = IdType.AUTO) |
| | | private Long id; |
| | | |
| | | @TableField("company_id") |
| | | @ApiModelProperty("企业id") |
| | | private Long companyId; |
| | | |
| | | @TableField("content") |
| | | @ApiModelProperty("内容") |
| | | private String content; |
| | | |
| | | @TableField("create_by_id") |
| | | @ApiModelProperty("创建人id") |
| | | private Long createById; |
| | | |
| | | @TableField("create_time") |
| | | private LocalDateTime createTime; |
| | | |
| | | @TableField("update_by_id") |
| | | private Long updateById; |
| | | |
| | | @TableField("update_time") |
| | | private LocalDateTime updateTime; |
| | | |
| | | |
| | | } |
| | |
| | | import com.baomidou.mybatisplus.annotation.TableField; |
| | | import com.baomidou.mybatisplus.annotation.TableId; |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | import com.fasterxml.jackson.annotation.JsonFormat; |
| | | import com.fasterxml.jackson.annotation.JsonInclude; |
| | | import com.gkhy.exam.common.domain.BaseEntity; |
| | | import io.swagger.annotations.ApiModel; |
| | |
| | | import lombok.Setter; |
| | | |
| | | import javax.validation.constraints.NotBlank; |
| | | import javax.validation.constraints.NotNull; |
| | | import javax.validation.constraints.Size; |
| | | |
| | | import java.util.Date; |
| | | |
| | | import static com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL; |
| | | |
| | | /** |
| | | * 通知公告表 sys_notice |
| | | * |
| | | * |
| | | * @author ruoyi |
| | | */ |
| | | @Getter |
| | |
| | | private Long id; |
| | | |
| | | @ApiModelProperty("公告标题") |
| | | @NotBlank(message = "公告标题不能为空") |
| | | @Size(min = 0, max = 50, message = "公告标题不能超过50个字符") |
| | | // @NotBlank(message = "公告标题不能为空") |
| | | // @Size(min = 0, max = 50, message = "公告标题不能超过50个字符") |
| | | @TableField("title") |
| | | private String title; |
| | | |
| | | @TableField("company_id") |
| | | @ApiModelProperty("企业id") |
| | | @NotNull(message = "企业id不能为空") |
| | | private Long companyId; |
| | | |
| | | @ApiModelProperty("公告类型(1通知 2公告)") |
| | | @TableField("type") |
| | | private String type; |
| | | |
| | | @ApiModelProperty(value = "附件地址") |
| | | @TableField("file_path") |
| | | private String filePath; |
| | | |
| | | @ApiModelProperty(value = "文件名称") |
| | | @TableField("file_name") |
| | | private String fileName; |
| | | |
| | | @ApiModelProperty("部门ID") |
| | | @TableField("dept_id") |
| | | private Long deptId; |
| | | |
| | | @ApiModelProperty("部门名称") |
| | | @TableField(exist = false) |
| | | private String deptName; |
| | | |
| | | @ApiModelProperty("发布时间") |
| | | @TableField("publish_date") |
| | | @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") |
| | | private Date publishDate; |
| | | |
| | | @ApiModelProperty("公告内容") |
| | | @TableField("content") |
| | |
| | | @ApiModelProperty("公告状态(0正常 1关闭)") |
| | | @TableField("status") |
| | | private Integer status; |
| | | |
| | | @ApiModelProperty("删除标志(0代表存在 1代表删除)") |
| | | private Integer delFlag; |
| | | } |
| New file |
| | |
| | | package com.gkhy.exam.system.domain.req; |
| | | |
| | | import com.baomidou.mybatisplus.annotation.TableField; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | @Data |
| | | @ApiModel("人员档案查询数据") |
| | | public class EmployeeRecordReq { |
| | | |
| | | @ApiModelProperty("公司id") |
| | | private Long companyId; |
| | | |
| | | @ApiModelProperty(value = "名称") |
| | | private String name; |
| | | |
| | | // @ApiModelProperty(value = "人员类别1技术2管理3行政4特殊作业") |
| | | // private Integer personType; |
| | | |
| | | @ApiModelProperty(value = "手机号码") |
| | | private String phone; |
| | | |
| | | @ApiModelProperty("学历1、高中及以下2、专科3、本科4、硕士5、博士及以上") |
| | | private Integer qualification; |
| | | |
| | | @ApiModelProperty("身份证号") |
| | | private String idCard; |
| | | |
| | | @ApiModelProperty("职称1、初级2中级3高级") |
| | | private String positional; |
| | | } |
| New file |
| | |
| | | package com.gkhy.exam.system.domain.vo; |
| | | |
| | | import com.gkhy.exam.system.domain.EmployeeRecord; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | |
| | | |
| | | @Data |
| | | @ApiModel(value = "人员档案数据", description = "人员档案数据") |
| | | public class EmployeeRecordVO extends EmployeeRecord { |
| | | |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | |
| | | @ApiModelProperty(value = "名称") |
| | | private String name; |
| | | |
| | | // @ApiModelProperty(value = "用户类型(0系统用户,1企业级用户,2部门级用户,3车间级(岗位)级,4其他,默认0,6企业管理员)",required = true) |
| | | // private Integer userType; |
| | | |
| | | @ApiModelProperty("用户性别(0男,1女,2未知,默认2)") |
| | | private Integer sex; |
| | | |
| | | @ApiModelProperty(value = "用户年龄") |
| | | private Integer age; |
| | | |
| | | @ApiModelProperty(value = "人员类别1技术2管理3行政4特殊作业") |
| | | private Integer personType; |
| | | |
| | | @ApiModelProperty(value = "手机号码") |
| | | private String phone; |
| | | |
| | | @ApiModelProperty("职务") |
| | | private String duty; |
| | | |
| | | |
| | | @ApiModelProperty("部门id") |
| | | private Long deptId; |
| | | |
| | | @ApiModelProperty("部门名称") |
| | | private String deptName; |
| | | |
| | | @ApiModelProperty(value = "专业") |
| | | private String post; |
| | | |
| | | |
| | | } |
| New file |
| | |
| | | package com.gkhy.exam.system.domain.vo; |
| | | |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | @Data |
| | | @ApiModel("首页数据返回对象") |
| | | public class IndexDataRep { |
| | | @ApiModelProperty(value = "标题") |
| | | private String title; |
| | | @ApiModelProperty(value = "数据id") |
| | | private String dataId; |
| | | @ApiModelProperty(value = "数据类型1内审实施计划2培训计划3项目评审4年度检定计划5用章审批") |
| | | private String type; |
| | | } |
| New file |
| | |
| | | package com.gkhy.exam.system.domain.vo; |
| | | |
| | | import lombok.Data; |
| | | |
| | | @Data |
| | | public class IndexSearch { |
| | | private Long companyId; |
| | | private Long userId; |
| | | private String keyword; |
| | | private String keyword1; |
| | | } |
| New file |
| | |
| | | package com.gkhy.exam.system.domain.vo; |
| | | |
| | | import com.gkhy.exam.common.domain.entity.SysUser; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | import java.time.LocalDate; |
| | | |
| | | |
| | | @Data |
| | | @ApiModel("特殊人员数据展示") |
| | | public class SpSysUser extends SysUser { |
| | | |
| | | @ApiModelProperty(value = "学历1、高中及以下2、专科3、本科4、硕士5、博士及以上", required = true) |
| | | private Integer qualification; |
| | | |
| | | @ApiModelProperty("职称1、初级2中级3高级") |
| | | private String positional; |
| | | |
| | | @ApiModelProperty("身份证号") |
| | | private String idCard; |
| | | |
| | | @ApiModelProperty("入职时间") |
| | | private LocalDate entryTime; |
| | | |
| | | @ApiModelProperty("离职时间") |
| | | private LocalDate resignTime; |
| | | } |
| New file |
| | |
| | | package com.gkhy.exam.system.mapper; |
| | | |
| | | import com.gkhy.exam.system.domain.EmployeeRecord; |
| | | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
| | | import com.gkhy.exam.system.domain.req.EmployeeRecordReq; |
| | | import com.gkhy.exam.system.domain.vo.EmployeeRecordVO; |
| | | import org.apache.ibatis.annotations.Mapper; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * <p> |
| | | * 人员档案 Mapper 接口 |
| | | * </p> |
| | | * |
| | | * @author hh |
| | | * @since 2025-11-11 13:54:12 |
| | | */ |
| | | @Mapper |
| | | public interface EmployeeRecordMapper extends BaseMapper<EmployeeRecord> { |
| | | |
| | | List<EmployeeRecordVO> selectEmployeeRecordList(EmployeeRecordReq req); |
| | | List<EmployeeRecord> getEmployeeRecordList(Long companyId); |
| | | } |
| New file |
| | |
| | | package com.gkhy.exam.system.mapper; |
| | | |
| | | import com.gkhy.exam.system.domain.Memo; |
| | | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
| | | import com.gkhy.exam.system.domain.vo.IndexDataRep; |
| | | import com.gkhy.exam.system.domain.vo.IndexSearch; |
| | | import org.apache.ibatis.annotations.Mapper; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * <p> |
| | | * 备忘录 Mapper 接口 |
| | | * </p> |
| | | * |
| | | * @author hh |
| | | * @since 2025-11-10 13:58:42 |
| | | */ |
| | | @Mapper |
| | | public interface MemoMapper extends BaseMapper<Memo> { |
| | | |
| | | List<IndexDataRep> getIndexTitle(IndexSearch indexSearch); |
| | | } |
| | |
| | | |
| | | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
| | | import com.gkhy.exam.common.domain.entity.SysUser; |
| | | import com.gkhy.exam.system.domain.vo.SpSysUser; |
| | | import org.apache.ibatis.annotations.Mapper; |
| | | |
| | | import java.util.List; |
| | |
| | | */ |
| | | List<SysUser> userList(SysUser user); |
| | | |
| | | |
| | | List<SpSysUser> userSpList(SysUser user); |
| | | /** |
| | | * 根据手机号获取用户 |
| | | * @param phone |
| New file |
| | |
| | | package com.gkhy.exam.system.service; |
| | | |
| | | import com.gkhy.exam.common.api.CommonPage; |
| | | import com.gkhy.exam.common.api.CommonResult; |
| | | import com.gkhy.exam.system.domain.CustomerRecord; |
| | | import com.gkhy.exam.system.domain.EmployeeRecord; |
| | | import com.baomidou.mybatisplus.extension.service.IService; |
| | | import com.gkhy.exam.system.domain.req.EmployeeRecordReq; |
| | | |
| | | /** |
| | | * <p> |
| | | * 人员档案 服务类 |
| | | * </p> |
| | | * |
| | | * @author hh |
| | | * @since 2025-11-11 13:54:12 |
| | | */ |
| | | public interface EmployeeRecordService extends IService<EmployeeRecord> { |
| | | |
| | | CommonPage selectEmployeeRecordList(EmployeeRecordReq req); |
| | | |
| | | |
| | | CommonResult saveEmployeeRecord(EmployeeRecord employeeRecord); |
| | | |
| | | CommonResult getEmployeeRecordList(Long companyId); |
| | | |
| | | } |
| New file |
| | |
| | | package com.gkhy.exam.system.service; |
| | | |
| | | import com.gkhy.exam.common.api.CommonPage; |
| | | import com.gkhy.exam.common.api.CommonResult; |
| | | import com.gkhy.exam.system.domain.Meetings; |
| | | import com.gkhy.exam.system.domain.Memo; |
| | | import com.baomidou.mybatisplus.extension.service.IService; |
| | | |
| | | /** |
| | | * <p> |
| | | * 备忘录 服务类 |
| | | * </p> |
| | | * |
| | | * @author hh |
| | | * @since 2025-11-10 13:58:42 |
| | | */ |
| | | public interface MemoService extends IService<Memo> { |
| | | |
| | | CommonResult saveMemo(Memo memo); |
| | | |
| | | CommonResult getMemo(); |
| | | |
| | | |
| | | CommonPage getIndexTitle(); |
| | | |
| | | } |
| | |
| | | */ |
| | | CommonPage selectUserList(SysUser user); |
| | | |
| | | |
| | | CommonPage selectSpUserList(SysUser user); |
| | | /** |
| | | * 根据登录名获取用户 |
| | | * @param username |
| New file |
| | |
| | | package com.gkhy.exam.system.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.gkhy.exam.common.api.CommonPage; |
| | | import com.gkhy.exam.common.api.CommonResult; |
| | | import com.gkhy.exam.common.utils.PageUtils; |
| | | import com.gkhy.exam.system.domain.EmployeeRecord; |
| | | import com.gkhy.exam.system.domain.req.EmployeeRecordReq; |
| | | import com.gkhy.exam.system.domain.vo.EmployeeRecordVO; |
| | | import com.gkhy.exam.system.mapper.EmployeeRecordMapper; |
| | | import com.gkhy.exam.system.service.EmployeeRecordService; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * <p> |
| | | * 人员档案 服务实现类 |
| | | * </p> |
| | | * |
| | | * @author hh |
| | | * @since 2025-11-11 13:54:12 |
| | | */ |
| | | @Service |
| | | public class EmployeeRecordServiceImpl extends ServiceImpl<EmployeeRecordMapper, EmployeeRecord> implements EmployeeRecordService { |
| | | |
| | | @Autowired |
| | | private EmployeeRecordMapper employeeRecordMapper; |
| | | @Override |
| | | public CommonPage selectEmployeeRecordList(EmployeeRecordReq req) { |
| | | PageUtils.startPage(); |
| | | List<EmployeeRecordVO> employeeRecords = employeeRecordMapper.selectEmployeeRecordList(req); |
| | | |
| | | return CommonPage.restPage(employeeRecords); |
| | | } |
| | | |
| | | @Override |
| | | public CommonResult saveEmployeeRecord(EmployeeRecord employeeRecord) { |
| | | LambdaQueryWrapper<EmployeeRecord> queryWrapper = new LambdaQueryWrapper<>(); |
| | | queryWrapper.eq(EmployeeRecord::getEmployeeId, employeeRecord.getEmployeeId()); |
| | | queryWrapper.eq(EmployeeRecord :: getDelFlag, 0); |
| | | if (employeeRecordMapper.selectCount(queryWrapper) <= 0) { |
| | | return CommonResult.failed("该员工不存在"); |
| | | } |
| | | employeeRecordMapper.update(employeeRecord, queryWrapper); |
| | | |
| | | return CommonResult.success(); |
| | | } |
| | | |
| | | @Override |
| | | public CommonResult getEmployeeRecordList(Long companyId) { |
| | | // LambdaQueryWrapper<EmployeeRecord> queryWrapper = new LambdaQueryWrapper<>(); |
| | | // queryWrapper.eq(EmployeeRecord::getCompanyId, companyId); |
| | | // queryWrapper.eq(EmployeeRecord::getDelFlag, 0); |
| | | List<EmployeeRecord> employeeRecords = employeeRecordMapper.getEmployeeRecordList(companyId); |
| | | return CommonResult.success(employeeRecords); |
| | | } |
| | | } |
| | |
| | | externalKnowledge.setName(dto.getName()); |
| | | externalKnowledge.setNumber(dto.getNumber()); |
| | | switch (dto.getKnowledgeType()) { |
| | | case "标准": |
| | | case "管理": |
| | | externalKnowledge.setKnowledgeType(1); |
| | | break; |
| | | case "规范": |
| | | case "技术": |
| | | externalKnowledge.setKnowledgeType(2); |
| | | break; |
| | | case "法律法规": |
| | | externalKnowledge.setKnowledgeType(3); |
| | | break; |
| | | case "质量服务标准": |
| | | externalKnowledge.setKnowledgeType(5); |
| | | externalKnowledge.setKnowledgeType(3); |
| | | break; |
| | | default: |
| | | externalKnowledge.setKnowledgeType(4); |
| New file |
| | |
| | | package com.gkhy.exam.system.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; |
| | | import com.gkhy.exam.common.api.CommonPage; |
| | | import com.gkhy.exam.common.api.CommonResult; |
| | | import com.gkhy.exam.common.utils.PageUtils; |
| | | import com.gkhy.exam.common.utils.SecurityUtils; |
| | | import com.gkhy.exam.system.domain.Memo; |
| | | import com.gkhy.exam.system.domain.vo.IndexDataRep; |
| | | import com.gkhy.exam.system.domain.vo.IndexSearch; |
| | | import com.gkhy.exam.system.mapper.MemoMapper; |
| | | import com.gkhy.exam.system.service.MemoService; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.time.LocalDateTime; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * <p> |
| | | * 备忘录 服务实现类 |
| | | * </p> |
| | | * |
| | | * @author hh |
| | | * @since 2025-11-10 13:58:42 |
| | | */ |
| | | @Service |
| | | public class MemoServiceImpl extends ServiceImpl<MemoMapper, Memo> implements MemoService { |
| | | |
| | | @Autowired |
| | | private MemoMapper memoMapper; |
| | | @Override |
| | | public CommonResult saveMemo(Memo memo) { |
| | | if (memo.getId() != null){ |
| | | |
| | | LambdaUpdateWrapper<Memo> updateWrapper = new LambdaUpdateWrapper<>(); |
| | | updateWrapper.eq(Memo::getCreateById, SecurityUtils.getUserId()); |
| | | updateWrapper.set(Memo::getContent, memo.getContent()) |
| | | .set(Memo::getUpdateById, memo.getUpdateById()) |
| | | .set(Memo::getUpdateTime, LocalDateTime.now()); |
| | | memoMapper.update(new Memo(), updateWrapper); |
| | | }else { |
| | | LambdaQueryWrapper<Memo> queryWrapper = new LambdaQueryWrapper<>(); |
| | | queryWrapper.eq(Memo::getCreateById, SecurityUtils.getUserId()); |
| | | if (memoMapper.selectCount(queryWrapper) >= 1){ |
| | | return CommonResult.failed("只能保存一个"); |
| | | } |
| | | memo.setCreateById(SecurityUtils.getUserId()); |
| | | memo.setCompanyId(SecurityUtils.getCompanyId() == null ? 0 : SecurityUtils.getCompanyId()); |
| | | memo.setCreateTime(LocalDateTime.now()); |
| | | memoMapper.insert(memo); |
| | | } |
| | | return CommonResult.success(memo); |
| | | } |
| | | |
| | | @Override |
| | | public CommonResult getMemo() { |
| | | LambdaQueryWrapper<Memo> queryWrapper = new LambdaQueryWrapper<>(); |
| | | queryWrapper.eq(Memo::getCreateById, SecurityUtils.getUserId()); |
| | | return CommonResult.success(memoMapper.selectOne(queryWrapper)); |
| | | } |
| | | |
| | | @Override |
| | | public CommonPage getIndexTitle() { |
| | | |
| | | Long userId = SecurityUtils.getUserId(); |
| | | Long deptId = SecurityUtils.getLoginUser().getUser().getDeptId(); |
| | | Long companyId = SecurityUtils.getCompanyId(); |
| | | IndexSearch indexSearch = new IndexSearch(); |
| | | indexSearch.setUserId(userId); |
| | | indexSearch.setCompanyId(companyId); |
| | | if (deptId != null && deptId == 20){ |
| | | indexSearch.setKeyword(deptId.toString()); |
| | | } |
| | | if (deptId != null && deptId == 22){ |
| | | indexSearch.setKeyword1(deptId.toString()); |
| | | } |
| | | PageUtils.startPage(); |
| | | List<IndexDataRep> indexTitle = memoMapper.getIndexTitle(indexSearch); |
| | | return CommonPage.restPage(indexTitle); |
| | | } |
| | | } |
| | |
| | | @Override |
| | | public CommonPage selectNoticeList(SysNotice notice) { |
| | | PageUtils.startPage(); |
| | | notice.setDeptId(SecurityUtils.getLoginUser().getUser().getDeptId()); |
| | | List<SysNotice> notices=baseMapper.selectNoticeList(notice); |
| | | return CommonPage.restPage(notices); |
| | | } |
| | |
| | | import cn.hutool.core.codec.Base64; |
| | | import cn.hutool.core.util.ObjectUtil; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.gkhy.exam.common.annotation.DataScope; |
| | | import com.gkhy.exam.common.api.CommonPage; |
| | |
| | | import com.gkhy.exam.common.utils.RedisUtils; |
| | | import com.gkhy.exam.common.utils.SecurityUtils; |
| | | import com.gkhy.exam.common.utils.StringUtils; |
| | | import com.gkhy.exam.system.domain.EmployeeRecord; |
| | | import com.gkhy.exam.system.domain.ExStudent; |
| | | import com.gkhy.exam.system.domain.SysUserRole; |
| | | import com.gkhy.exam.system.domain.req.EmployeeRecordReq; |
| | | import com.gkhy.exam.system.domain.vo.EmployeeRecordVO; |
| | | import com.gkhy.exam.system.domain.vo.SpSysUser; |
| | | import com.gkhy.exam.system.mapper.EmployeeRecordMapper; |
| | | import com.gkhy.exam.system.mapper.SysUserMapper; |
| | | import com.gkhy.exam.system.mapper.SysUserRoleMapper; |
| | | import com.gkhy.exam.system.service.ExStudentService; |
| | |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import javax.validation.Validator; |
| | | import java.time.LocalDateTime; |
| | | import java.util.*; |
| | | import java.util.concurrent.TimeUnit; |
| | | import java.util.stream.Collectors; |
| | |
| | | @Autowired |
| | | private ExStudentService exStudentService; |
| | | |
| | | @Autowired |
| | | private EmployeeRecordMapper employeeRecordMapper; |
| | | |
| | | |
| | | @Override |
| | | public CommonPage<SysUser> selectUserList(SysUser user) { |
| | | SysUser currentUser = SecurityUtils.getLoginUser().getUser(); |
| | |
| | | } |
| | | PageUtils.startPage(); |
| | | users = baseMapper.userList(user); |
| | | } |
| | | return CommonPage.restPage(users); |
| | | } |
| | | |
| | | @Override |
| | | public CommonPage selectSpUserList(SysUser user) { |
| | | SysUser currentUser = SecurityUtils.getLoginUser().getUser(); |
| | | List<SpSysUser> users = new ArrayList<>(); |
| | | if (!currentUser.getUserType().equals(UserTypeEnum.WORKSHOP_USER.getCode())) { |
| | | if (!currentUser.getUserType().equals(UserTypeEnum.SYSTEM_USER.getCode())) { |
| | | user.setCompanyId(currentUser.getCompanyId()); |
| | | Map<String, Object> paramsMap = new HashMap<>(); |
| | | // paramsMap.put("userType",currentUser.getUserType()); |
| | | user.setParams(paramsMap); |
| | | } |
| | | PageUtils.startPage(); |
| | | users = baseMapper.userSpList(user); |
| | | } |
| | | return CommonPage.restPage(users); |
| | | } |
| | |
| | | |
| | | @Override |
| | | public SysUser selectUserById(Long userId) { |
| | | |
| | | |
| | | |
| | | |
| | | return baseMapper.getUserById(userId); |
| | | } |
| | | |
| | |
| | | throw new ApiException("管理员用户不能被删除"); |
| | | } |
| | | delCacheByUsername(user.getUsername()); |
| | | return baseMapper.deleteUserById(userId); |
| | | int i = baseMapper.deleteUserById(userId); |
| | | if (i > 0){ |
| | | delEmployeeRecord(userId); |
| | | } |
| | | return i; |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = RuntimeException.class) |
| | | public int addUser(SysUser user) { |
| | | ExStudent exStudent = new ExStudent(); |
| | | exStudent.setCompanyId(user.getCompanyId()); |
| | | exStudent.setName(user.getName()); |
| | | exStudent.setPassword(user.getPassword()); |
| | | exStudent.setDeptId(user.getDeptId()); |
| | | exStudent.setDuty(user.getDuty()); |
| | | exStudent.setSex(user.getSex()); |
| | | exStudent.setPhone(user.getPhone()); |
| | | |
| | | |
| | | checkRequestData(user); |
| | | checkUserAllowed(user); |
| | |
| | | |
| | | batchSaveRole(user.getRoles(), user.getId(), false); |
| | | |
| | | ExStudent exStudent = new ExStudent(); |
| | | exStudent.setCompanyId(user.getCompanyId()); |
| | | exStudent.setName(user.getName()); |
| | | exStudent.setPassword(user.getPassword()); |
| | | exStudent.setDeptId(user.getDeptId()); |
| | | exStudent.setDuty(user.getDuty()); |
| | | exStudent.setSex(user.getSex()); |
| | | exStudent.setPhone(user.getPhone()); |
| | | exStudent.setUserId(user.getId()); |
| | | exStudentService.insertStudent(exStudent); |
| | | |
| | | Integer internal = user.getInternal(); |
| | | if (internal == 0){ |
| | | EmployeeRecord employeeRecord = new EmployeeRecord(); |
| | | employeeRecord.setCompanyId(user.getCompanyId()); |
| | | employeeRecord.setUserId(user.getId()); |
| | | employeeRecord.setCreateBy(SecurityUtils.getUsername()); |
| | | employeeRecord.setCreateTime(LocalDateTime.now()); |
| | | saveEmployeeRecord(employeeRecord); |
| | | } |
| | | |
| | | if (row < 1) { |
| | | throw new ApiException("新增用户失败"); |
| | | } |
| | | return row; |
| | | } |
| | | |
| | | private void saveEmployeeRecord( EmployeeRecord employeeRecord){ |
| | | employeeRecordMapper.insert( employeeRecord); |
| | | } |
| | | |
| | | private void delEmployeeRecord(Long userId){ |
| | | LambdaUpdateWrapper<EmployeeRecord> updateWrapper = new LambdaUpdateWrapper<>(); |
| | | updateWrapper.eq(EmployeeRecord::getUserId,userId).set(EmployeeRecord::getDelFlag,1) |
| | | .set(EmployeeRecord::getUpdateBy,SecurityUtils.getUsername()).set(EmployeeRecord::getUpdateTime,LocalDateTime.now()); |
| | | employeeRecordMapper.update(new EmployeeRecord() ,updateWrapper); |
| | | } |
| | | |
| | | |
| | | public void batchSaveRole(List<SysRole> roleIds, Long userId, boolean isUpdate) { |
| | | |
| | |
| | | |
| | | @Override |
| | | public int updateUser(SysUser user) { |
| | | SysUser sysUser = selectUserById(user.getId()); |
| | | checkRequestData(user); |
| | | checkUserAllowed(user); |
| | | user.setUpdateBy(SecurityUtils.getUsername()); |
| | | user.setPassword(null); |
| | | int row = baseMapper.updateById(user); |
| | | batchSaveRole(user.getRoles(), user.getId(), true); |
| | | |
| | | if (sysUser.getInternal() == 0 && sysUser.getInternal() == 1){ |
| | | delEmployeeRecord(user.getId()); |
| | | }else if (sysUser.getInternal() == 1 && user.getInternal() == 0){ |
| | | EmployeeRecord employeeRecord = new EmployeeRecord(); |
| | | employeeRecord.setCompanyId(user.getCompanyId()); |
| | | employeeRecord.setUserId(user.getId()); |
| | | employeeRecord.setCreateBy(SecurityUtils.getUsername()); |
| | | employeeRecord.setCreateTime(LocalDateTime.now()); |
| | | saveEmployeeRecord(employeeRecord); |
| | | } |
| | | |
| | | if (row < 1) { |
| | | throw new ApiException("更新用户信息失败"); |
| | |
| | | |
| | | @Override |
| | | public Map<String, Object> getUserData(Long companyId) { |
| | | List<SysUser> sysUsers = baseMapper.selectList(new LambdaQueryWrapper<>( |
| | | SysUser.class |
| | | ).eq(SysUser::getCompanyId, companyId).eq(SysUser::getDelFlag, UserConstant.ENABLE)); |
| | | EmployeeRecordReq req = new EmployeeRecordReq(); |
| | | req.setCompanyId(companyId); |
| | | List<EmployeeRecordVO> sysUsers = employeeRecordMapper.selectEmployeeRecordList(req); |
| | | int totalUser = sysUsers.size(); |
| | | |
| | | Map<String, Object> map = new HashMap<>(); |
| | |
| | | map.put("totalUser", totalUser); |
| | | //专业 |
| | | map.put("post", sysUsers.stream() |
| | | .map(SysUser::getPost) |
| | | .map(EmployeeRecordVO::getPost) |
| | | .filter(Objects::nonNull) |
| | | .distinct() |
| | | .collect(Collectors.joining(","))); |
| | |
| | | map.put("jsRatio", String.format("%.2f", jsRatio)); |
| | | double averageAge = sysUsers.stream() |
| | | .filter(user -> user.getAge() != null) // 过滤年龄为null的用户 |
| | | .mapToInt(SysUser::getAge) // 提取年龄值 |
| | | .mapToInt(EmployeeRecordVO::getAge) // 提取年龄值 |
| | | .average() // 计算平均值 |
| | | .orElse(0.0); |
| | | map.put("avgAge", String.format("%.1f", averageAge));//平均年龄 |
| New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | <mapper namespace="com.gkhy.exam.system.mapper.EmployeeRecordMapper"> |
| | | |
| | | |
| | | |
| | | <select id="selectEmployeeRecordList" parameterType="com.gkhy.exam.system.domain.req.EmployeeRecordReq" |
| | | resultType="com.gkhy.exam.system.domain.vo.EmployeeRecordVO"> |
| | | |
| | | select |
| | | a.name, a.sex, a.age, a.person_type personType , a.phone, a.dept_id deptId, a.post,a.duty, |
| | | aa.employee_id employeeId, aa.company_id companyId, |
| | | b.dept_name deptName,aa.user_id userId,aa.duties,aa.seniority,aa.qualification_requirements qualificationRequirements, |
| | | aa.qualification,aa.id_card idCard,aa.positional,aa.entry_time entryTime,aa.resign_time resignTime,aa.certificate, |
| | | aa.version,aa.create_time createTime,aa.update_time updateTime,aa.create_by createBy,aa.update_by updateBy |
| | | from employee_record aa |
| | | inner join sys_user a on a.id = aa.user_id and a.company_id = aa.company_id |
| | | inner join sys_dept b on a.dept_id = b.dept_id |
| | | where a.del_flag = 0 and aa.del_flag = 0 |
| | | <if test="companyId != null"> |
| | | and aa.company_id = #{companyId} |
| | | </if> |
| | | <if test="name != null and name != ''"> |
| | | and a.name like concat('%',#{name},'%') |
| | | </if> |
| | | <if test="phone != null and phone != ''"> |
| | | and a.phone like concat('%',#{phone},'%') |
| | | </if> |
| | | <if test="qualification != null"> |
| | | and aa.qualification = #{qualification} |
| | | </if> |
| | | <if test="positional != null"> |
| | | and aa.positional = #{positional} |
| | | </if> |
| | | </select> |
| | | |
| | | <select id="getEmployeeRecordList" parameterType="long" |
| | | resultType="com.gkhy.exam.system.domain.EmployeeRecord"> |
| | | select |
| | | a.name, |
| | | aa.employee_id employeeId, aa.user_id userId |
| | | from employee_record aa |
| | | inner join sys_user a on a.id = aa.user_id and a.company_id = aa.company_id |
| | | where a.del_flag = 0 and aa.del_flag = 0 |
| | | <if test="companyId != null"> |
| | | and aa.company_id = #{companyId} |
| | | </if> |
| | | </select> |
| | | |
| | | |
| | | </mapper> |
| | |
| | | <if test="companyId!=null "> |
| | | and company_id = #{companyId} |
| | | </if> |
| | | <if test="knowledgeType != null"> |
| | | and knowledge_type = #{knowledgeType} |
| | | </if> |
| | | ORDER BY create_time desc |
| | | </select> |
| | | </mapper> |
| New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | <mapper namespace="com.gkhy.exam.system.mapper.MemoMapper"> |
| | | |
| | | |
| | | |
| | | <select id="getIndexTitle" resultType="com.gkhy.exam.system.domain.vo.IndexDataRep" parameterType="com.gkhy.exam.system.domain.vo.IndexSearch"> |
| | | <if test="keyword != '' and keyword != null"> |
| | | SELECT CONCAT(`year`, '年内审实施计划') AS title, |
| | | '1' AS type, |
| | | id AS dataId |
| | | FROM internal_audit_carry |
| | | WHERE del_flag = 1 |
| | | AND review_start = DATE( |
| | | NOW()) and company_id = #{companyId} |
| | | UNION ALL |
| | | SELECT a.device_name AS title, |
| | | '4' AS type, |
| | | a.annual_verification_id AS dataId |
| | | FROM annual_verification_device a |
| | | INNER JOIN annual_verification_plan b ON a.annual_verification_id = b.id |
| | | WHERE a.del_flag = 0 |
| | | AND b.del_flag = 0 |
| | | AND DATE_SUB(DATE(a.next_calibration_time), INTERVAL 1 MONTH) = DATE( |
| | | now()) and b.company_id = #{companyId} |
| | | UNION ALL |
| | | </if> |
| | | <if test="keyword1 != '' and keyword1 != null"> |
| | | SELECT train_name AS title, |
| | | '2' AS type, |
| | | id AS dataId |
| | | FROM train_plan |
| | | WHERE del_flag = 1 |
| | | AND DATE_SUB(DATE(train_time), INTERVAL 1 MONTH) = DATE( |
| | | NOW()) and company_id = #{companyId} |
| | | UNION ALL |
| | | </if> |
| | | SELECT b.item_name AS title, |
| | | '3' AS type, |
| | | a.id AS dataId |
| | | FROM item_review a |
| | | INNER JOIN item b ON b.id = a.item_id |
| | | AND b.del_flag = 1 |
| | | INNER JOIN item_review_user c ON c.review_id = a.id |
| | | AND c.del_flag = 0 |
| | | WHERE a.del_flag = 0 |
| | | AND c.review_user_id = #{userId} |
| | | AND c.`status` = 2 and a.company_id = #{companyId} |
| | | UNION ALL |
| | | SELECT a.use_seal_cause AS title, |
| | | '5' AS type, |
| | | a.id AS dataId |
| | | FROM use_seal_apply a |
| | | WHERE a.del_flag = 0 |
| | | AND (a.apply_user_id = #{userId} or a.next_check = #{userId} ) |
| | | AND a.`status` = 1 and a.company_id = #{companyId} |
| | | </select> |
| | | </mapper> |
| | |
| | | <result property="updateBy" column="update_by" /> |
| | | <result property="updateTime" column="update_time" /> |
| | | <result property="remark" column="remark" /> |
| | | <result property="filePath" column="file_path" /> |
| | | <result property="fileName" column="file_name" /> |
| | | <result property="deptId" column="dept_id" /> |
| | | <result property="publishDate" column="publish_date" /> |
| | | <result property="companyId" column="company_id" /> |
| | | </resultMap> |
| | | <resultMap type="com.gkhy.exam.system.domain.SysNotice" id="SysNoticeVoResult"> |
| | | <result property="deptName" column="dept_name" /> |
| | | </resultMap> |
| | | |
| | | <sql id="selectNoticeVo"> |
| | | select id, title, type, cast(content as char) as content, status, create_by, create_time, update_by, update_time, remark |
| | | select id, title, type, cast(content as char) as content,company_id, status, create_by, create_time, update_by, update_time, remark, file_path, file_name, dept_id, publish_date |
| | | from sys_notice |
| | | </sql> |
| | | |
| | |
| | | where id = #{noticeId} |
| | | </select> |
| | | |
| | | <select id="selectNoticeList" resultMap="SysNoticeResult"> |
| | | <include refid="selectNoticeVo"/> |
| | | <where> |
| | | <if test="title != null and title != ''"> |
| | | AND title like concat('%', #{title}, '%') |
| | | </if> |
| | | <if test="type != null and type != ''"> |
| | | AND type = #{type} |
| | | </if> |
| | | <if test="createBy != null and createBy != ''"> |
| | | AND create_by like concat('%', #{createBy}, '%') |
| | | </if> |
| | | </where> |
| | | order by create_time desc |
| | | <select id="selectNoticeList" resultMap="SysNoticeVoResult"> |
| | | select a.id, a.title, a.type, cast(a.content as char) as content, a.status, a.create_by, a.create_time, a.update_by, |
| | | a.update_time, a.remark, a.file_path, a.file_name, a.dept_id, a.publish_date,b.dept_name,a.company_id |
| | | from sys_notice a |
| | | left join sys_dept b on a.dept_id = b.dept_id |
| | | where a.del_flag = 0 |
| | | <if test="companyId != null"> |
| | | AND a.company_id = #{companyId} |
| | | </if> |
| | | <if test="title != null and title != ''"> |
| | | AND a.title like concat('%', #{title}, '%') |
| | | </if> |
| | | <if test="type != null and type != ''"> |
| | | AND a.type = #{type} |
| | | </if> |
| | | <if test="deptId != null"> |
| | | AND a.deptId = #{dept_id} |
| | | </if> |
| | | <if test="createBy != null and createBy != ''"> |
| | | AND a.create_by like concat('%', #{createBy}, '%') |
| | | </if> |
| | | |
| | | order by a.create_time desc |
| | | </select> |
| | | |
| | | |
| | | <delete id="deleteNoticeByIds" parameterType="Long"> |
| | | delete from sys_notice where notice_id in |
| | | update sys_notice set del_flag = 1 where id in |
| | | <foreach item="noticeId" collection="array" open="(" separator="," close=")"> |
| | | #{noticeId} |
| | | </foreach> |
| | |
| | | <result property="companyName" column="company_name" /> |
| | | <result property="remainPeriod" column="remain_period" /> |
| | | <result property="parentName" column="parent_name" /> |
| | | <result property="idCard" column="id_card" /> |
| | | <!-- <result property="idCard" column="id_card" />--> |
| | | <result property="duty" column="duty" /> |
| | | <result property="post" column="post" /> |
| | | <result property="deptId" column="dept_id" /> |
| | | <result property="deptName" column="dept_name" /> |
| | | <result property="entryTime" column="entry_time" /> |
| | | <result property="resignTime" column="resign_time" /> |
| | | <!-- <result property="entryTime" column="entry_time" />--> |
| | | <!-- <result property="resignTime" column="resign_time" />--> |
| | | <result property="personType" column="person_type" /> |
| | | <result property="age" column="age" /> |
| | | <result property="positional" column="positional" /> |
| | | <result property="qualification" column="qualification" /> |
| | | <!-- <result property="positional" column="positional" />--> |
| | | <!-- <result property="qualification" column="qualification" />--> |
| | | <result property="operationCertificate" column="operation_certificate" /> |
| | | <result property="internal" column="internal" /> |
| | | |
| | | </resultMap> |
| | | |
| | |
| | | <result property="roleId" column="role_id" /> |
| | | <result property="roleName" column="role_name" /> |
| | | </collection> |
| | | </resultMap> |
| | | |
| | | |
| | | <resultMap id="SysUserSpVoResult" type="com.gkhy.exam.system.domain.vo.SpSysUser" extends="SysUserVoResult"> |
| | | <result property="idCard" column="id_card" /> |
| | | <result property="entryTime" column="entry_time" /> |
| | | <result property="resignTime" column="resign_time" /> |
| | | <result property="positional" column="positional" /> |
| | | <result property="qualification" column="qualification" /> |
| | | |
| | | </resultMap> |
| | | |
| | | |
| | |
| | | left join sys_role r on r.role_id=ur.role_id |
| | | where ur.user_id = #{userId} |
| | | </select> |
| | | <!-- ,u.id_card,u.entry_time,u.resign_time,u.positional,u.qualification--> |
| | | <select id="userList" resultMap="SysUserVoResult"> |
| | | select u.id,u.username,u.name,u.user_type,u.phone,u.parent_id,u.company_id,u.sex,u.status,u.del_flag,u.version, |
| | | u.login_ip,u.login_date,u.create_by,u.create_time,u.remark,c.name as company_name,su.name as parent_name, |
| | | u.dept_id,d.dept_name,u.duty,u.post,u.id_card,u.entry_time,u.resign_time,u.person_type,u.age,u.positional,u.qualification,u.operation_certificate |
| | | u.dept_id,d.dept_name,u.duty,u.post,u.person_type,u.age,u.operation_certificate,u.internal |
| | | from sys_user u |
| | | left join sys_company c on c.id=u.company_id |
| | | left join sys_user su on su.id=u.parent_id and u.parent_id!=0 |
| | |
| | | <if test="personType != null"> |
| | | AND u.person_type = #{personType} |
| | | </if> |
| | | <if test="qualification != null"> |
| | | AND u.qualification = #{qualification} |
| | | <if test="internal != null"> |
| | | AND u.internal = #{internal} |
| | | </if> |
| | | <!-- <if test="qualification != null">--> |
| | | <!-- AND u.qualification = #{qualification}--> |
| | | <!-- </if>--> |
| | | <if test="userType != null"> |
| | | AND u.user_type = #{userType} |
| | | </if> |
| | |
| | | |
| | | |
| | | |
| | | <select id="userSpList" resultMap="SysUserSpVoResult"> |
| | | select u.id,u.username,u.name,u.user_type,u.phone,u.parent_id,u.company_id,u.sex,u.status,u.del_flag,u.version, |
| | | u.login_ip,u.login_date,u.create_by,u.create_time,u.remark,c.name as company_name,su.name as parent_name, |
| | | u.dept_id,d.dept_name,u.duty,u.post,u.person_type,u.age,u.operation_certificate,u.internal, |
| | | ur.id_card,ur.entry_time,ur.resign_time,ur.positional,ur.qualification |
| | | from sys_user u |
| | | left join sys_company c on c.id=u.company_id |
| | | left join sys_user su on su.id=u.parent_id and u.parent_id!=0 |
| | | left join sys_dept d on d.dept_id=u.dept_id |
| | | left join employee_record ur on ur.user_id=u.id |
| | | |
| | | <where> |
| | | and u.del_flag = 0 |
| | | <if test="username != null and username != ''"> |
| | | AND u.username like concat('%', #{username}, '%') |
| | | </if> |
| | | <if test="name != null and name != ''"> |
| | | AND u.name like concat('%', #{name}, '%') |
| | | </if> |
| | | <if test="status != null and status != ''"> |
| | | AND u.status = #{status} |
| | | </if> |
| | | <if test="personType != null"> |
| | | AND u.person_type = #{personType} |
| | | </if> |
| | | <if test="internal != null"> |
| | | AND u.internal = #{internal} |
| | | </if> |
| | | <!-- <if test="qualification != null">--> |
| | | <!-- AND u.qualification = #{qualification}--> |
| | | <!-- </if>--> |
| | | <if test="userType != null"> |
| | | AND u.user_type = #{userType} |
| | | </if> |
| | | <if test="deptId != null"> |
| | | AND d.dept_id = #{deptId} |
| | | </if> |
| | | <if test="companyId != null "> |
| | | AND u.company_id = #{companyId} |
| | | </if> |
| | | <if test="phone != null and phone != ''"> |
| | | AND u.phone like concat('%', #{phone}, '%') |
| | | </if> |
| | | <if test="post != null and post != ''"> |
| | | AND u.post like concat('%', #{post}, '%') |
| | | </if> |
| | | <if test="params.beginTime != null and params.beginTime != ''"><!-- 开始时间检索 --> |
| | | AND date_format(u.create_time,'%y%m%d') >= date_format(#{params.beginTime},'%y%m%d') |
| | | </if> |
| | | <if test="params.endTime != null and params.endTime != ''"><!-- 结束时间检索 --> |
| | | AND date_format(u.create_time,'%y%m%d') <= date_format(#{params.endTime},'%y%m%d') |
| | | </if> |
| | | <if test="params.userType != null and (params.userType==4 or params.userType==1)"> |
| | | AND u.user_type in (2,3) |
| | | </if> |
| | | <if test="params.userType != null and params.userType==2"> |
| | | AND u.user_type in (3) |
| | | </if> |
| | | <if test="params.userType != null and params.userType==0"> |
| | | AND u.user_type in (1,2,3,4) |
| | | </if> |
| | | |
| | | </where> |
| | | order by u.id desc |
| | | </select> |
| | | |
| | | |
| | | |
| | | |
| | | <select id="getUserByPhone" resultMap="SysUserResult"> |
| | | select id,username,name,password,parent_id,company_id,phone,status,del_flag from sys_user |
| | | where phone=#{phone} and del_flag=0 |
| | | </select> |
| | | |
| | | <select id="getUserById" resultMap="SysUserResult"> |
| | | <!--,u.positional,u.qualification,u.id_card,u.entry_time,u.resign_time,--> |
| | | <select id="getUserById" resultMap="SysUserVoResult"> |
| | | select u.id,u.username,u.user_type,u.name,u.phone,u.parent_id,u.company_id,u.status,u.sex,u.del_flag,u.version,c.name as company_name, |
| | | c.remain_period,su.name as parent_name,u.dept_id,d.dept_name,u.duty,u.post,u.id_card,u.entry_time,u.resign_time, |
| | | u.person_type,u.age,u.positional,u.qualification,u.operation_certificate |
| | | c.remain_period,su.name as parent_name,u.dept_id,d.dept_name,u.duty,u.post, |
| | | u.person_type,u.age,u.operation_certificate,u.internal |
| | | from sys_user u |
| | | left join sys_company c on c.id=u.company_id |
| | | left join sys_user su on su.id=u.parent_id and u.parent_id!=0 |