From 1936cef71ca4ef95d52c951b4af5948c7885b893 Mon Sep 17 00:00:00 2001 From: zf <1603559716@qq.com> Date: 星期一, 19 二月 2024 15:17:26 +0800 Subject: [PATCH] 考试申报 --- exam-system/src/main/java/com/gkhy/exam/noncoalmine/entity/TrainingInstitution.java | 9 exam-system/src/main/java/com/gkhy/exam/noncoalmine/model/query/ExamApplyQuery.java | 29 + ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml | 45 ++ ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/SysDistrictVo.java | 54 +++ exam-system/src/main/java/com/gkhy/exam/noncoalmine/service/ExamSiteService.java | 2 exam-system/src/main/java/com/gkhy/exam/noncoalmine/controller/TrainingInstitutionController.java | 12 exam-system/src/main/java/com/gkhy/exam/noncoalmine/model/modForm/TrainingInstitutionModForm.java | 2 exam-system/src/main/java/com/gkhy/exam/noncoalmine/model/addForm/ExamApplyAddForm.java | 86 ++++ exam-system/src/main/resources/mapper/noncoalmine/TrainingInstitutionMapper.xml | 35 + exam-system/src/main/java/com/gkhy/exam/noncoalmine/model/query/TrainingInstitutionQuery.java | 2 ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserInstitution.java | 10 exam-system/src/main/java/com/gkhy/exam/noncoalmine/model/modForm/ExamApplyModForm.java | 90 +++++ exam-system/src/main/java/com/gkhy/exam/noncoalmine/service/ExamApplyService.java | 21 + ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java | 52 ++ exam-system/src/main/java/com/gkhy/exam/noncoalmine/entity/ExamApply.java | 81 ++++ exam-system/src/main/java/com/gkhy/exam/noncoalmine/model/vo/ExamApplyVO.java | 64 +++ ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/TrainingInstitutionVo.java | 33 + exam-system/src/main/java/com/gkhy/exam/noncoalmine/service/impl/ExamSiteServiceImpl.java | 7 exam-system/src/main/java/com/gkhy/exam/noncoalmine/controller/ExamApplyController.java | 100 +++++ exam-system/src/main/java/com/gkhy/exam/noncoalmine/mapper/TrainingInstitutionMapper.java | 4 exam-system/src/main/java/com/gkhy/exam/noncoalmine/mapper/ExamApplyMapper.java | 25 + exam-system/src/main/java/com/gkhy/exam/noncoalmine/service/impl/TrainingInstitutionServiceImpl.java | 31 + ruoyi-system/src/main/resources/mapper/system/SysUserInstitutionMapper.xml | 35 + ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java | 50 ++ exam-system/src/main/resources/mapper/noncoalmine/ExamApplyMapper.xml | 32 + exam-system/src/main/java/com/gkhy/exam/noncoalmine/service/impl/ExamApplyServiceImpl.java | 53 ++ exam-system/src/main/java/com/gkhy/exam/noncoalmine/controller/ExamSiteController.java | 11 ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserInstitutionMapper.java | 45 ++ exam-system/src/main/java/com/gkhy/exam/noncoalmine/service/TrainingInstitutionService.java | 5 ruoyi-admin/src/main/resources/application-dev.yml | 6 30 files changed, 997 insertions(+), 34 deletions(-) diff --git a/exam-system/src/main/java/com/gkhy/exam/noncoalmine/controller/ExamApplyController.java b/exam-system/src/main/java/com/gkhy/exam/noncoalmine/controller/ExamApplyController.java new file mode 100644 index 0000000..adb8200 --- /dev/null +++ b/exam-system/src/main/java/com/gkhy/exam/noncoalmine/controller/ExamApplyController.java @@ -0,0 +1,100 @@ +package com.gkhy.exam.noncoalmine.controller; + +import com.gkhy.exam.noncoalmine.entity.ExamApply; +import com.gkhy.exam.noncoalmine.model.addForm.ExamApplyAddForm; +import com.gkhy.exam.noncoalmine.model.modForm.ExamApplyModForm; +import com.gkhy.exam.noncoalmine.model.modForm.ExamSiteModForm; +import com.gkhy.exam.noncoalmine.model.query.ExamApplyQuery; +import com.gkhy.exam.noncoalmine.service.ExamApplyService; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.page.TableDataInfo; +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.*; + +import java.util.List; +@Api(tags = "考试申报接口") +@RequestMapping("exam/apply") +@RestController +public class ExamApplyController extends BaseController { + /** + * 服务对象 + */ + @Autowired + private ExamApplyService examApplyService; + + /** + * 分页查询所有数据 + * + * @param query 查询实体 + * @return 所有数据 + */ + @ApiOperation(value = "分页查询列表") + @ApiImplicitParams({ + @ApiImplicitParam(name = "pageNum", dataTypeClass = String.class,value = "页码",required = true), + @ApiImplicitParam(name = "pageSize", dataTypeClass = String.class,value = "页数",required = true), + /*@ApiImplicitParam(name = "isCm", dataTypeClass = Byte.class,value = "是否是煤矿 1是,0非"), + @ApiImplicitParam(name = "districtId", dataTypeClass = Long.class,value = "区域id"), + @ApiImplicitParam(name = "examStartTime", dataTypeClass = Date.class,value = "考试开始时间 yyyy-MM-dd"), + @ApiImplicitParam(name = "examEndTime", dataTypeClass = Date.class,value = "考试开始时间 yyyy-MM-dd"),*/ + }) + @GetMapping("page/list") + public TableDataInfo listByPage(ExamApplyQuery query) { + startPage(); + return getDataTable(this.examApplyService.listByPage(query)); + } + + /** + * 通过主键查询单条数据 + * + * @param applyId 主键 + * @return 单条数据 + */ + @ApiOperation(value = "通过主键查询单条数据") + @GetMapping("get/{applyId}") + public AjaxResult selectOne(@PathVariable Long applyId) { + return success(this.examApplyService.getById(applyId)); + } + + /** + * 新增数据 + * + * @param addForm 实体对象 + * @return 新增结果 + */ + @ApiOperation(value = "新增数据") + @PostMapping("/add") + public AjaxResult add(@Validated @RequestBody ExamApplyAddForm addForm) { + return toAjax(this.examApplyService.add(addForm)); + } + + /** + * 修改数据 + * + * @param modForm 实体对象 + * @return 修改结果 + */ + @ApiOperation(value = "修改数据") + @PostMapping("/mod") + public AjaxResult mod(@Validated @RequestBody ExamApplyModForm modForm) { + return toAjax(this.examApplyService.mod(modForm)); + } + + /** + * 删除数据 + * + * @param applyIds 主键结合 + * @return 删除结果 + */ + @ApiOperation(value = "删除数据") + @DeleteMapping("/del/batch/{applyIds}") + public AjaxResult delBatch(@PathVariable("applyIds") List<Long> applyIds) { + this.examApplyService.delBatch(applyIds); + return success(); + } +} diff --git a/exam-system/src/main/java/com/gkhy/exam/noncoalmine/controller/ExamSiteController.java b/exam-system/src/main/java/com/gkhy/exam/noncoalmine/controller/ExamSiteController.java index 011bdaf..2373d20 100644 --- a/exam-system/src/main/java/com/gkhy/exam/noncoalmine/controller/ExamSiteController.java +++ b/exam-system/src/main/java/com/gkhy/exam/noncoalmine/controller/ExamSiteController.java @@ -97,5 +97,16 @@ this.examSiteService.delBatch(siteIds); return success(); } + + /** + * 根据机构查询下拉 + */ + @ApiOperation(value = "根据机构查询下拉考点") + @GetMapping("select/{institutionId}") + public AjaxResult getSiteByInstitutionId(@PathVariable Long institutionId) { + return success(this.examSiteService.getSiteByInstitutionId(institutionId)); + } + + } diff --git a/exam-system/src/main/java/com/gkhy/exam/noncoalmine/controller/TrainingInstitutionController.java b/exam-system/src/main/java/com/gkhy/exam/noncoalmine/controller/TrainingInstitutionController.java index 67409a9..f7e241d 100644 --- a/exam-system/src/main/java/com/gkhy/exam/noncoalmine/controller/TrainingInstitutionController.java +++ b/exam-system/src/main/java/com/gkhy/exam/noncoalmine/controller/TrainingInstitutionController.java @@ -6,6 +6,7 @@ import com.gkhy.exam.noncoalmine.service.TrainingInstitutionService; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.core.page.TableDataInfo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; @@ -103,7 +104,16 @@ @ApiOperation(value = "选择列表") @GetMapping("select") public AjaxResult selectList(TrainingInstitutionQuery query){ - return success(this.trainingInstitutionService.listByPage(query)); + return success(this.trainingInstitutionService.select(query)); + } + + /** + * 选择列表-根据角色身份 + */ + @ApiOperation(value = "选择列表-根据角色身份") + @GetMapping("selectByPermission") + public AjaxResult selectByPermissionList(TrainingInstitutionQuery query){ + return success(this.trainingInstitutionService.selectByPermissionList(query)); } } diff --git a/exam-system/src/main/java/com/gkhy/exam/noncoalmine/entity/ExamApply.java b/exam-system/src/main/java/com/gkhy/exam/noncoalmine/entity/ExamApply.java new file mode 100644 index 0000000..7644c5c --- /dev/null +++ b/exam-system/src/main/java/com/gkhy/exam/noncoalmine/entity/ExamApply.java @@ -0,0 +1,81 @@ +package com.gkhy.exam.noncoalmine.entity; + +import java.time.LocalDateTime; +import java.util.Date; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.ruoyi.common.core.domain.BaseEntity; +import lombok.Data; + +import java.io.Serializable; + +/** + * (ExamApply)表实体类 + * + * @author makejava + * @since 2024-02-04 13:36:51 + */ +@Data +public class ExamApply{ + + + @TableId(type = IdType.AUTO) + private Long applyId; + //考试计划批次全称 + private String examName; + //机构 + private Long institutionId; + + //考点 + private Long siteId; + //考试人数 + private Integer examNum; + //是否为煤矿:0为非,1是 + private Byte isCm; + //考试开始时间 + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date examStartTime; + //考试结束时间 + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date examEndTime; + //补考开始时间 + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date resitStartTime; + //补考结束时间 + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date resitEndTime; + //实操开始时间 + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date operationStartTime; + //实操结束时间 + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date operationEndTime; + //考点联系人 + private String siteContacts; + //考点联系人电话 + private String siteContactsPhone; + //机构联系人 + private String institutionContacts; + //机构联系人电话 + private String institutionContactsPhone; + + private Integer delFlag; + + @TableField(fill = FieldFill.INSERT) + private String createBy; + @TableField(fill = FieldFill.INSERT_UPDATE) + private String updateBy; + @TableField(fill = FieldFill.INSERT) + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime createTime; + @TableField(fill = FieldFill.INSERT_UPDATE) + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime updateTime; + +} + diff --git a/exam-system/src/main/java/com/gkhy/exam/noncoalmine/entity/TrainingInstitution.java b/exam-system/src/main/java/com/gkhy/exam/noncoalmine/entity/TrainingInstitution.java index 7e1d178..35fd1c0 100644 --- a/exam-system/src/main/java/com/gkhy/exam/noncoalmine/entity/TrainingInstitution.java +++ b/exam-system/src/main/java/com/gkhy/exam/noncoalmine/entity/TrainingInstitution.java @@ -13,16 +13,11 @@ import java.io.Serializable; -/** - * (TrainingInstitution)表实体类 - * - * @author makejava - * @since 2023-09-13 16:12:31 - */ + @Data public class TrainingInstitution { @TableId(type = IdType.AUTO) - private String institutionId; + private Long institutionId; //机构名称 private String institutionName; //地区id diff --git a/exam-system/src/main/java/com/gkhy/exam/noncoalmine/mapper/ExamApplyMapper.java b/exam-system/src/main/java/com/gkhy/exam/noncoalmine/mapper/ExamApplyMapper.java new file mode 100644 index 0000000..89f2677 --- /dev/null +++ b/exam-system/src/main/java/com/gkhy/exam/noncoalmine/mapper/ExamApplyMapper.java @@ -0,0 +1,25 @@ +package com.gkhy.exam.noncoalmine.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.gkhy.exam.noncoalmine.entity.ExamApply; +import com.gkhy.exam.noncoalmine.model.query.ExamApplyQuery; +import com.gkhy.exam.noncoalmine.model.vo.ExamApplyVO; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Repository; + +import java.util.List; + +/** + * (ExamApply)表数据库访问层 + * + * @author makejava + * @since 2024-02-04 13:36:49 + */ +@Repository +@Mapper +public interface ExamApplyMapper extends BaseMapper<ExamApply> { + + List<ExamApplyVO> listByPage(@Param("query") ExamApplyQuery query); +} + diff --git a/exam-system/src/main/java/com/gkhy/exam/noncoalmine/mapper/TrainingInstitutionMapper.java b/exam-system/src/main/java/com/gkhy/exam/noncoalmine/mapper/TrainingInstitutionMapper.java index b862cbd..ddcd9e9 100644 --- a/exam-system/src/main/java/com/gkhy/exam/noncoalmine/mapper/TrainingInstitutionMapper.java +++ b/exam-system/src/main/java/com/gkhy/exam/noncoalmine/mapper/TrainingInstitutionMapper.java @@ -21,5 +21,9 @@ public interface TrainingInstitutionMapper extends BaseMapper<TrainingInstitution> { List<TrainingInstitutionVO> listByPage(@Param("query") TrainingInstitutionQuery query); + + List<TrainingInstitutionVO> selectAll(@Param("query") TrainingInstitutionQuery query); + + List<TrainingInstitutionVO> getUserInstitutions(@Param("query") TrainingInstitutionQuery query); } diff --git a/exam-system/src/main/java/com/gkhy/exam/noncoalmine/model/addForm/ExamApplyAddForm.java b/exam-system/src/main/java/com/gkhy/exam/noncoalmine/model/addForm/ExamApplyAddForm.java new file mode 100644 index 0000000..d587507 --- /dev/null +++ b/exam-system/src/main/java/com/gkhy/exam/noncoalmine/model/addForm/ExamApplyAddForm.java @@ -0,0 +1,86 @@ +package com.gkhy.exam.noncoalmine.model.addForm; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import java.util.Date; + +/** + * @email 1603559716@qq.com + * @author: zf + * @date: 2024/2/4 + * @time: 14:39 + */ +@ApiModel +@Data +public class ExamApplyAddForm { + @ApiModelProperty(value = "考试批次全称",required = true) + @NotEmpty(message = "请填写考试批次全称") + private String examName; + + @ApiModelProperty(value = "机构id",required = true) + @NotNull(message = "请选择机构") + private Long institutionId; + + @ApiModelProperty(value = "考试点id",required = true) + @NotNull(message = "请选择考试点") + private Long siteId; + + @ApiModelProperty(value = "考试人数",required = true) + @NotNull(message = "请填写考试人数") + private Integer examNum; + + //是否为煤矿:0为非,1是 + @ApiModelProperty(value = "是否为煤矿",required = true,notes = "0为非,1是") + @NotNull(message = "请选择是否为煤矿") + private Byte isCm; + + @ApiModelProperty(value = "考试开始时间") + @NotNull(message = "请选择考试开始时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date examStartTime; + + @ApiModelProperty(value = "考试结束时间") + @NotNull(message = "请选择考试结束时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date examEndTime; + + @ApiModelProperty(value = "补考开始时间") + @NotNull(message = "请选择补考开始时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date resitStartTime; + + @ApiModelProperty(value = "补考结束时间") + @NotNull(message = "请选择补考结束时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date resitEndTime; + + @ApiModelProperty(value = "实操开始时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date operationStartTime; + + @ApiModelProperty(value = "实操结束时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date operationEndTime; + + @ApiModelProperty(value = "考点联系人") + @NotEmpty(message = "请输入考点联系人") + private String siteContacts; + + @ApiModelProperty(value = "考点联系人电话") + @NotEmpty(message = "请输入考点联系人电话") + private String siteContactsPhone; + + @ApiModelProperty(value = "机构联系人") + @NotEmpty(message = "请输入机构联系人") + private String institutionContacts; + + @ApiModelProperty(value = "机构联系人电话") + @NotEmpty(message = "请输入机构联系人电话") + private String institutionContactsPhone; + +} diff --git a/exam-system/src/main/java/com/gkhy/exam/noncoalmine/model/modForm/ExamApplyModForm.java b/exam-system/src/main/java/com/gkhy/exam/noncoalmine/model/modForm/ExamApplyModForm.java new file mode 100644 index 0000000..4a90113 --- /dev/null +++ b/exam-system/src/main/java/com/gkhy/exam/noncoalmine/model/modForm/ExamApplyModForm.java @@ -0,0 +1,90 @@ +package com.gkhy.exam.noncoalmine.model.modForm; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import java.util.Date; + +/** + * @email 1603559716@qq.com + * @author: zf + * @date: 2024/2/4 + * @time: 14:57 + */ +@ApiModel +@Data +public class ExamApplyModForm { + + @NotNull(message = "请选择考试申报id") + private Long applyId; + + @ApiModelProperty(value = "考试批次全称",required = true) + @NotEmpty(message = "请填写考试批次全称") + private String examName; + + @ApiModelProperty(value = "机构id",required = true) + @NotNull(message = "请选择机构") + private Long institutionId; + + @ApiModelProperty(value = "考试点id",required = true) + @NotNull(message = "请选择考试点") + private Long siteId; + + @ApiModelProperty(value = "考试人数",required = true) + @NotNull(message = "请填写考试人数") + private Integer examNum; + + //是否为煤矿:0为非,1是 + @ApiModelProperty(value = "是否为煤矿",required = true,notes = "0为非,1是") + @NotNull(message = "请选择是否为煤矿") + private Byte isCm; + + @ApiModelProperty(value = "考试开始时间") + @NotNull(message = "请选择考试开始时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date examStartTime; + + @ApiModelProperty(value = "考试结束时间") + @NotNull(message = "请选择考试结束时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date examEndTime; + + @ApiModelProperty(value = "补考开始时间") + @NotNull(message = "请选择补考开始时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date resitStartTime; + + @ApiModelProperty(value = "补考结束时间") + @NotNull(message = "请选择补考结束时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date resitEndTime; + + @ApiModelProperty(value = "实操开始时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date operationStartTime; + + @ApiModelProperty(value = "实操结束时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date operationEndTime; + + @ApiModelProperty(value = "考点联系人") + @NotEmpty(message = "请输入考点联系人") + private String siteContacts; + + @ApiModelProperty(value = "考点联系人电话") + @NotEmpty(message = "请输入考点联系人电话") + private String siteContactsPhone; + + @ApiModelProperty(value = "机构联系人") + @NotEmpty(message = "请输入机构联系人") + private String institutionContacts; + + @ApiModelProperty(value = "机构联系人电话") + @NotEmpty(message = "请输入机构联系人电话") + private String institutionContactsPhone; + +} diff --git a/exam-system/src/main/java/com/gkhy/exam/noncoalmine/model/modForm/TrainingInstitutionModForm.java b/exam-system/src/main/java/com/gkhy/exam/noncoalmine/model/modForm/TrainingInstitutionModForm.java index f8e23ec..766d6e4 100644 --- a/exam-system/src/main/java/com/gkhy/exam/noncoalmine/model/modForm/TrainingInstitutionModForm.java +++ b/exam-system/src/main/java/com/gkhy/exam/noncoalmine/model/modForm/TrainingInstitutionModForm.java @@ -16,7 +16,7 @@ public class TrainingInstitutionModForm { @ApiModelProperty(value = "机构主键",required = true) @NotNull(message = "机构主键不可为空") - private String institutionId; + private Long institutionId; //机构名称 @ApiModelProperty(value = "机构名称",required = true) @NotEmpty(message = "请输入机构名称") diff --git a/exam-system/src/main/java/com/gkhy/exam/noncoalmine/model/query/ExamApplyQuery.java b/exam-system/src/main/java/com/gkhy/exam/noncoalmine/model/query/ExamApplyQuery.java new file mode 100644 index 0000000..95db45e --- /dev/null +++ b/exam-system/src/main/java/com/gkhy/exam/noncoalmine/model/query/ExamApplyQuery.java @@ -0,0 +1,29 @@ +package com.gkhy.exam.noncoalmine.model.query; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +/** + * @email 1603559716@qq.com + * @author: zf + * @date: 2024/2/4 + * @time: 13:43 + */ +@ApiModel +@Data +public class ExamApplyQuery { + @ApiModelProperty(value = "区域id") + private Long districtId; + @ApiModelProperty(value = "是否是煤矿 1是,0非") + private Byte isCm; + @ApiModelProperty(value = "开始时间") + @JsonFormat(pattern = "yyyy-MM-dd") + private Date examStartTime; + @ApiModelProperty(value = "结束时间") + @JsonFormat(pattern = "yyyy-MM-dd") + private Date examEndTime; +} diff --git a/exam-system/src/main/java/com/gkhy/exam/noncoalmine/model/query/TrainingInstitutionQuery.java b/exam-system/src/main/java/com/gkhy/exam/noncoalmine/model/query/TrainingInstitutionQuery.java index bf0ba97..2b8144d 100644 --- a/exam-system/src/main/java/com/gkhy/exam/noncoalmine/model/query/TrainingInstitutionQuery.java +++ b/exam-system/src/main/java/com/gkhy/exam/noncoalmine/model/query/TrainingInstitutionQuery.java @@ -23,4 +23,6 @@ //区划编码 @ApiModelProperty(value = "区划编码") private String districtCode; + + private Long userId; } diff --git a/exam-system/src/main/java/com/gkhy/exam/noncoalmine/model/vo/ExamApplyVO.java b/exam-system/src/main/java/com/gkhy/exam/noncoalmine/model/vo/ExamApplyVO.java new file mode 100644 index 0000000..165a018 --- /dev/null +++ b/exam-system/src/main/java/com/gkhy/exam/noncoalmine/model/vo/ExamApplyVO.java @@ -0,0 +1,64 @@ +package com.gkhy.exam.noncoalmine.model.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.util.Date; + +/** + * @email 1603559716@qq.com + * @author: zf + * @date: 2024/2/4 + * @time: 13:47 + */ +@Data +public class ExamApplyVO { + private Long applyId; + + private String examName; + + private Long institutionId; + + private String institutionName; + + private Long siteId; + + private String siteName; + + private String districtName; + + private Integer examNum; + //是否为煤矿:0为非,1是 + private Byte isCm; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date examStartTime; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date examEndTime; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date resitStartTime; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date resitEndTime; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date operationStartTime; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date operationEndTime; + + private String siteContacts; + + private String siteContactsPhone; + + private String institutionContacts; + + private String institutionContactsPhone; + + private Integer delFlag; + + private Date createTime; + + private Date updateTime; + + private String createBy; + + private String updateBy; +} diff --git a/exam-system/src/main/java/com/gkhy/exam/noncoalmine/service/ExamApplyService.java b/exam-system/src/main/java/com/gkhy/exam/noncoalmine/service/ExamApplyService.java new file mode 100644 index 0000000..43fa026 --- /dev/null +++ b/exam-system/src/main/java/com/gkhy/exam/noncoalmine/service/ExamApplyService.java @@ -0,0 +1,21 @@ +package com.gkhy.exam.noncoalmine.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.gkhy.exam.noncoalmine.entity.ExamApply; +import com.gkhy.exam.noncoalmine.model.addForm.ExamApplyAddForm; +import com.gkhy.exam.noncoalmine.model.modForm.ExamApplyModForm; +import com.gkhy.exam.noncoalmine.model.query.ExamApplyQuery; +import com.gkhy.exam.noncoalmine.model.vo.ExamApplyVO; + +import java.util.List; + +public interface ExamApplyService extends IService<ExamApply> { + + List<ExamApplyVO> listByPage(ExamApplyQuery query); + + void delBatch(List<Long> applyIds); + + int add(ExamApplyAddForm addForm); + + int mod(ExamApplyModForm modForm); +} diff --git a/exam-system/src/main/java/com/gkhy/exam/noncoalmine/service/ExamSiteService.java b/exam-system/src/main/java/com/gkhy/exam/noncoalmine/service/ExamSiteService.java index b00fc77..1a64953 100644 --- a/exam-system/src/main/java/com/gkhy/exam/noncoalmine/service/ExamSiteService.java +++ b/exam-system/src/main/java/com/gkhy/exam/noncoalmine/service/ExamSiteService.java @@ -24,5 +24,7 @@ int mod(ExamSiteModForm modForm); void delBatch(List<Long> siteIds); + + List<ExamSite> getSiteByInstitutionId(Long institutionId); } diff --git a/exam-system/src/main/java/com/gkhy/exam/noncoalmine/service/TrainingInstitutionService.java b/exam-system/src/main/java/com/gkhy/exam/noncoalmine/service/TrainingInstitutionService.java index a38eebe..efeeebf 100644 --- a/exam-system/src/main/java/com/gkhy/exam/noncoalmine/service/TrainingInstitutionService.java +++ b/exam-system/src/main/java/com/gkhy/exam/noncoalmine/service/TrainingInstitutionService.java @@ -6,6 +6,7 @@ import com.gkhy.exam.noncoalmine.model.modForm.TrainingInstitutionModForm; import com.gkhy.exam.noncoalmine.model.query.TrainingInstitutionQuery; import com.gkhy.exam.noncoalmine.model.vo.TrainingInstitutionVO; +import com.ruoyi.common.core.domain.model.LoginUser; import java.util.List; @@ -24,5 +25,9 @@ int add(TrainingInstitutionAddForm addForm); void delBatch(List<Long> institutionIds); + + List<TrainingInstitutionVO> selectByPermissionList(TrainingInstitutionQuery query); + + List<TrainingInstitutionVO> select(TrainingInstitutionQuery query); } diff --git a/exam-system/src/main/java/com/gkhy/exam/noncoalmine/service/impl/ExamApplyServiceImpl.java b/exam-system/src/main/java/com/gkhy/exam/noncoalmine/service/impl/ExamApplyServiceImpl.java new file mode 100644 index 0000000..95922c3 --- /dev/null +++ b/exam-system/src/main/java/com/gkhy/exam/noncoalmine/service/impl/ExamApplyServiceImpl.java @@ -0,0 +1,53 @@ +package com.gkhy.exam.noncoalmine.service.impl; + +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.gkhy.exam.noncoalmine.entity.ExamApply; +import com.gkhy.exam.noncoalmine.entity.ExamSite; +import com.gkhy.exam.noncoalmine.mapper.ExamApplyMapper; +import com.gkhy.exam.noncoalmine.model.addForm.ExamApplyAddForm; +import com.gkhy.exam.noncoalmine.model.modForm.ExamApplyModForm; +import com.gkhy.exam.noncoalmine.model.query.ExamApplyQuery; +import com.gkhy.exam.noncoalmine.model.vo.ExamApplyVO; +import com.gkhy.exam.noncoalmine.service.ExamApplyService; +import com.ruoyi.common.utils.bean.BeanUtils; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @email 1603559716@qq.com + * @author: zf + * @date: 2024/2/4 + * @time: 13:40 + */ +@Service("examApplyService") +public class ExamApplyServiceImpl extends ServiceImpl<ExamApplyMapper, ExamApply> implements ExamApplyService { + + @Override + public List<ExamApplyVO> listByPage(ExamApplyQuery query) { + return baseMapper.listByPage(query); + } + + @Override + public void delBatch(List<Long> applyIds) { + UpdateWrapper<ExamApply> updateWrapper = new UpdateWrapper<>(); + updateWrapper.in("apply_id",applyIds) + .set("del_flag",(byte)2); + this.update(updateWrapper); + } + + @Override + public int add(ExamApplyAddForm addForm) { + ExamApply examApply = new ExamApply(); + BeanUtils.copyProperties(addForm,examApply); + examApply.setDelFlag(0); + return baseMapper.insert(examApply); + } + @Override + public int mod(ExamApplyModForm modForm) { + ExamApply examApply = new ExamApply(); + BeanUtils.copyProperties(modForm,examApply); + return baseMapper.updateById(examApply); + } +} diff --git a/exam-system/src/main/java/com/gkhy/exam/noncoalmine/service/impl/ExamSiteServiceImpl.java b/exam-system/src/main/java/com/gkhy/exam/noncoalmine/service/impl/ExamSiteServiceImpl.java index 1844e07..36c8bdc 100644 --- a/exam-system/src/main/java/com/gkhy/exam/noncoalmine/service/impl/ExamSiteServiceImpl.java +++ b/exam-system/src/main/java/com/gkhy/exam/noncoalmine/service/impl/ExamSiteServiceImpl.java @@ -1,5 +1,6 @@ package com.gkhy.exam.noncoalmine.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.gkhy.exam.noncoalmine.entity.ExamSite; @@ -94,5 +95,11 @@ .set("del_flag",(byte)2); this.update(updateWrapper); } + + @Override + public List<ExamSite> getSiteByInstitutionId(Long institutionId) { + List<ExamSite> examSites = baseMapper.selectList(new LambdaQueryWrapper<ExamSite>().eq(ExamSite::getDelFlag, (byte) 0).eq(ExamSite::getInstitutionId, institutionId)); + return examSites; + } } diff --git a/exam-system/src/main/java/com/gkhy/exam/noncoalmine/service/impl/TrainingInstitutionServiceImpl.java b/exam-system/src/main/java/com/gkhy/exam/noncoalmine/service/impl/TrainingInstitutionServiceImpl.java index 33526c0..c67861a 100644 --- a/exam-system/src/main/java/com/gkhy/exam/noncoalmine/service/impl/TrainingInstitutionServiceImpl.java +++ b/exam-system/src/main/java/com/gkhy/exam/noncoalmine/service/impl/TrainingInstitutionServiceImpl.java @@ -1,5 +1,6 @@ package com.gkhy.exam.noncoalmine.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.gkhy.exam.noncoalmine.entity.TrainingInstitution; @@ -11,6 +12,7 @@ import com.gkhy.exam.noncoalmine.model.vo.TrainingInstitutionVO; import com.gkhy.exam.noncoalmine.service.TrainingInstitutionService; import com.ruoyi.common.core.domain.entity.SysUser; +import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.system.domain.SysDistrict; @@ -19,15 +21,11 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.List; +import java.util.Set; import java.util.stream.Collectors; -/** - * (TrainingInstitution)表服务实现类 - * - * @author makejava - * @since 2023-09-13 16:12:31 - */ @Service("trainingInstitutionService") public class TrainingInstitutionServiceImpl extends ServiceImpl<TrainingInstitutionMapper, TrainingInstitution> implements TrainingInstitutionService { @Autowired @@ -80,5 +78,26 @@ this.update(updateWrapper); } + @Override + public List<TrainingInstitutionVO> selectByPermissionList(TrainingInstitutionQuery query) { + LoginUser loginUser = SecurityUtils.getLoginUser(); + List<TrainingInstitutionVO> institutionVOList = new ArrayList<>(); + Set<String> permissions = loginUser.getPermissions(); + if(permissions.contains("admin") || permissions.contains("common")){ + //管理员 + institutionVOList = trainingInstitutionMapper.selectAll(query); + }else { + query.setUserId(loginUser.getUserId()); + institutionVOList = trainingInstitutionMapper.getUserInstitutions(query); + } + + return institutionVOList; + } + + @Override + public List<TrainingInstitutionVO> select(TrainingInstitutionQuery query) { + return trainingInstitutionMapper.selectAll(query); + } + } diff --git a/exam-system/src/main/resources/mapper/noncoalmine/ExamApplyMapper.xml b/exam-system/src/main/resources/mapper/noncoalmine/ExamApplyMapper.xml new file mode 100644 index 0000000..3d0078d --- /dev/null +++ b/exam-system/src/main/resources/mapper/noncoalmine/ExamApplyMapper.xml @@ -0,0 +1,32 @@ +<?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.noncoalmine.mapper.ExamApplyMapper"> + <select id="listByPage" resultType="com.gkhy.exam.noncoalmine.model.vo.ExamApplyVO"> + SELECT + ea.*, + t.institution_name, + es.site_name, + d.NAME AS districtName + FROM + exam_apply ea + LEFT JOIN training_institution t ON t.institution_id = ea.institution_id + LEFT JOIN sys_district d ON d.id = t.district_id + LEFT JOIN exam_site es ON es.site_id = ea.site_id + WHERE + ea.del_flag = 0 + <if test="query.districtId != null"> + and d.district_id = #{query.districtId} + </if> + <if test="query.examStartTime != null"><!-- 开始时间检索 --> + and date_format(ea.exam_start_time,'%y-%m-%d') >= date_format(#{query.examStartTime},'%y-%m-%d') + </if> + <if test="query.examEndTime != null"><!-- 结束时间检索 --> + and date_format(ea.exam_end_time,'%y-%m-%d') <= date_format(#{query.examEndTime},'%y-%m-%d') + </if> + order by ea.create_time desc + + </select> + +</mapper> \ No newline at end of file diff --git a/exam-system/src/main/resources/mapper/noncoalmine/TrainingInstitutionMapper.xml b/exam-system/src/main/resources/mapper/noncoalmine/TrainingInstitutionMapper.xml index 30d04f5..7dd1bee 100644 --- a/exam-system/src/main/resources/mapper/noncoalmine/TrainingInstitutionMapper.xml +++ b/exam-system/src/main/resources/mapper/noncoalmine/TrainingInstitutionMapper.xml @@ -24,4 +24,39 @@ order by t.create_time desc </select> + <select id="selectAll" resultType="com.gkhy.exam.noncoalmine.model.vo.TrainingInstitutionVO"> + SELECT + t.*, + d.name as districtName + FROM + training_institution t + LEFT JOIN sys_district d ON d.id = t.district_id + WHERE + t.del_flag = 0 + <if test="query.institutionName != null and query.institutionName != ''"> + and t.institution_name like concat('%', #{query.institutionName}, '%') + </if> + <if test="query.isCm != null"> + AND t.is_cm = #{query.isCm} + </if> + order by t.is_cm asc + + </select> + <select id="getUserInstitutions" resultType="com.gkhy.exam.noncoalmine.model.vo.TrainingInstitutionVO"> + SELECT + t.*, + d.NAME AS districtName + FROM + sys_user_institution ui + LEFT JOIN training_institution t ON ui.institution_id = t.institution_id + LEFT JOIN sys_district d ON d.id = t.district_id + WHERE + ui.user_id = #{query.userId} + <if test="query.institutionName != null and query.institutionName != ''"> + and t.institution_name like concat('%', #{query.institutionName}, '%') + </if> + order by t.create_time desc + + </select> + </mapper> \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/application-dev.yml b/ruoyi-admin/src/main/resources/application-dev.yml index bddbfcd..aa77ac9 100644 --- a/ruoyi-admin/src/main/resources/application-dev.yml +++ b/ruoyi-admin/src/main/resources/application-dev.yml @@ -24,9 +24,9 @@ druid: # 主库数据源 master: - url: jdbc:mysql://121.239.169.30:33306/swspkmas?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 - username: gkhynew - password: 123456 + url: jdbc:mysql://localhost:3306/swspkmas?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 + username: root + password: root # 从库数据源 slave: # 从数据源开关/默认关闭 diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java index db31b62..32e5ee7 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java @@ -3,6 +3,9 @@ import java.util.Date; import java.util.List; import javax.validation.constraints.*; + +import com.ruoyi.common.core.domain.model.SysDistrictVo; +import com.ruoyi.common.core.domain.model.TrainingInstitutionVo; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; import com.ruoyi.common.annotation.Excel; @@ -28,7 +31,9 @@ /** 部门ID */ @Excel(name = "部门编号", type = Type.IMPORT) private Long deptId; - + /** + * 区域 + */ private Long districtId; private String unit; @@ -92,6 +97,19 @@ /** 角色ID */ private Long roleId; + + /** + * 身份证 + */ + private String idCard; + /*** + * 机构ids + */ + private Long[] institutionIds; + + private SysDistrictVo district; + + private List<TrainingInstitutionVo> institutions; public SysUser() { @@ -317,6 +335,38 @@ this.unit = unit; } + public String getIdCard() { + return idCard; + } + + public void setIdCard(String idCard) { + this.idCard = idCard; + } + + public SysDistrictVo getDistrict() { + return district; + } + + public void setDistrict(SysDistrictVo district) { + this.district = district; + } + + public Long[] getInstitutionIds() { + return institutionIds; + } + + public void setInstitutionIds(Long[] institutionIds) { + this.institutionIds = institutionIds; + } + + public List<TrainingInstitutionVo> getInstitutions() { + return institutions; + } + + public void setInstitutions(List<TrainingInstitutionVo> institutions) { + this.institutions = institutions; + } + @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/SysDistrictVo.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/SysDistrictVo.java new file mode 100644 index 0000000..f29de82 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/SysDistrictVo.java @@ -0,0 +1,54 @@ +package com.ruoyi.common.core.domain.model; + + +public class SysDistrictVo { + private Long districtId; + + private String districtCode; + + private String districtName; + + private String parentcode; + + private Byte districtType; + + public Long getDistrictId() { + return districtId; + } + + public void setDistrictId(Long districtId) { + this.districtId = districtId; + } + + public String getDistrictCode() { + return districtCode; + } + + public void setDistrictCode(String districtCode) { + this.districtCode = districtCode; + } + + public String getDistrictName() { + return districtName; + } + + public void setDistrictName(String districtName) { + this.districtName = districtName; + } + + public String getParentcode() { + return parentcode; + } + + public void setParentcode(String parentcode) { + this.parentcode = parentcode; + } + + public Byte getDistrictType() { + return districtType; + } + + public void setDistrictType(Byte districtType) { + this.districtType = districtType; + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/TrainingInstitutionVo.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/TrainingInstitutionVo.java new file mode 100644 index 0000000..5c86302 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/TrainingInstitutionVo.java @@ -0,0 +1,33 @@ +package com.ruoyi.common.core.domain.model; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.time.LocalDateTime; + +@Data +public class TrainingInstitutionVo { + + private Long institutionId; + //机构名称 + private String institutionName; + //地区id + private Long districtId; + //地址 + private String address; + //负责人 + private String header; + //负责人电话 + private String hphone; + //联系人 + private String contact; + //联系人电话 + private String cphone; + //是否为煤矿:0为非,1是 + private Byte isCm; + //备注 + private String remark; + +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserInstitution.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserInstitution.java new file mode 100644 index 0000000..6a380d2 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserInstitution.java @@ -0,0 +1,10 @@ +package com.ruoyi.system.domain; + +import lombok.Data; + +@Data +public class SysUserInstitution { + private Long userId; + private Long institutionId; + +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserInstitutionMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserInstitutionMapper.java new file mode 100644 index 0000000..acd5199 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserInstitutionMapper.java @@ -0,0 +1,45 @@ +package com.ruoyi.system.mapper; + + +import com.ruoyi.system.domain.SysUserInstitution; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface SysUserInstitutionMapper { + + /** + * 通过用户ID删除用户和机构关联 + * + * @param userId 用户ID + * @return 结果 + */ + public int deleteUserInstitutionByUserId(Long userId); + + /** + * 批量删除用户和机构关联 + * + * @param userIds 需要删除的数据ID + * @return 结果 + */ + public int deleteUserInstitution(Long[] userIds); + + + + /** + * 批量新增用户机构信息 + * + * @param userInstitutionList 用户机构列表 + * @return 结果 + */ + public int batchUserInstitution(List<SysUserInstitution> userInstitutionList); + + /** + * 删除用户和机构关联信息 + * + * @param userInstitution 用户和机构关联信息 + * @return 结果 + */ + public int deleteUserInstitution(SysUserInstitution userInstitution); + +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java index b371060..7351376 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java @@ -4,6 +4,9 @@ import java.util.List; import java.util.stream.Collectors; import javax.validation.Validator; + +import com.ruoyi.system.domain.SysUserInstitution; +import com.ruoyi.system.mapper.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -22,11 +25,6 @@ import com.ruoyi.system.domain.SysPost; import com.ruoyi.system.domain.SysUserPost; import com.ruoyi.system.domain.SysUserRole; -import com.ruoyi.system.mapper.SysPostMapper; -import com.ruoyi.system.mapper.SysRoleMapper; -import com.ruoyi.system.mapper.SysUserMapper; -import com.ruoyi.system.mapper.SysUserPostMapper; -import com.ruoyi.system.mapper.SysUserRoleMapper; import com.ruoyi.system.service.ISysConfigService; import com.ruoyi.system.service.ISysUserService; @@ -60,6 +58,9 @@ @Autowired protected Validator validator; + + @Autowired + private SysUserInstitutionMapper institutionMapper; /** * 根据条件分页查询用户列表 @@ -259,11 +260,14 @@ // 新增用户信息 int rows = userMapper.insertUser(user); // 新增用户岗位关联 - insertUserPost(user); + //insertUserPost(user); // 新增用户与角色管理 insertUserRole(user); + //用户关联机构 + insertUserInstitution(user.getUserId(), user.getInstitutionIds()); return rows; } + /** * 注册用户信息 @@ -293,9 +297,12 @@ // 新增用户与角色管理 insertUserRole(user); // 删除用户与岗位关联 - userPostMapper.deleteUserPostByUserId(userId); + /* userPostMapper.deleteUserPostByUserId(userId); // 新增用户与岗位管理 - insertUserPost(user); + insertUserPost(user);*/ + //删除机构 + institutionMapper.deleteUserInstitutionByUserId(userId); + insertUserInstitution(user.getUserId(), user.getInstitutionIds()); return userMapper.updateUser(user); } @@ -432,6 +439,29 @@ } /** + * 新增用户机构信息 + * + * @param userId 用户ID + * @param institutionIds 机构组 + */ + public void insertUserInstitution(Long userId, Long[] institutionIds) + { + if (StringUtils.isNotEmpty(institutionIds)) + { + // 新增用户与角色管理 + List<SysUserInstitution> list = new ArrayList<SysUserInstitution>(institutionIds.length); + for (Long institutionId : institutionIds) + { + SysUserInstitution ui = new SysUserInstitution(); + ui.setUserId(userId); + ui.setInstitutionId(institutionId); + list.add(ui); + } + institutionMapper.batchUserInstitution(list); + } + } + + /** * 通过用户ID删除用户 * * @param userId 用户ID @@ -466,7 +496,9 @@ // 删除用户与角色关联 userRoleMapper.deleteUserRole(userIds); // 删除用户与岗位关联 - userPostMapper.deleteUserPost(userIds); + //userPostMapper.deleteUserPost(userIds); + //删除机构 + institutionMapper.deleteUserInstitution(userIds); return userMapper.deleteUserByIds(userIds); } diff --git a/ruoyi-system/src/main/resources/mapper/system/SysUserInstitutionMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysUserInstitutionMapper.xml new file mode 100644 index 0000000..f63b685 --- /dev/null +++ b/ruoyi-system/src/main/resources/mapper/system/SysUserInstitutionMapper.xml @@ -0,0 +1,35 @@ +<?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.ruoyi.system.mapper.SysUserInstitutionMapper"> + + <resultMap type="SysUserInstitution" id="SysUserInstitutionResult"> + <result property="userId" column="user_id" /> + <result property="institutionId" column="institution_id" /> + </resultMap> + + <delete id="deleteUserInstitutionByUserId" parameterType="Long"> + delete from sys_user_institution where user_id=#{userId} + </delete> + + <delete id="deleteUserInstitution" parameterType="Long"> + delete from sys_user_institution where user_id in + <foreach collection="array" item="userId" open="(" separator="," close=")"> + #{userId} + </foreach> + </delete> + + <insert id="batchUserInstitution"> + insert into sys_user_institution(user_id, institution_id) values + <foreach item="item" index="index" collection="list" separator=","> + (#{item.userId},#{item.institutionId}) + </foreach> + </insert> + + <delete id="deleteUserInstitution" parameterType="SysUserInstitution"> + delete from sys_user_institution where user_id=#{userId} and institution_id=#{institutionId} + </delete> + + +</mapper> \ No newline at end of file diff --git a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml index b580763..9fde387 100644 --- a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml @@ -25,8 +25,11 @@ <result property="updateBy" column="update_by" /> <result property="updateTime" column="update_time" /> <result property="remark" column="remark" /> + <result property="idCard" column="id_card" /> <association property="dept" javaType="SysDept" resultMap="deptResult" /> + <association property="district" javaType="SysDistrictVo" resultMap="DistrictResult"/> <collection property="roles" javaType="java.util.List" resultMap="RoleResult" /> + <collection property="institutions" javaType="java.util.List" resultMap="InstitutionResult" /> </resultMap> <resultMap id="deptResult" type="SysDept"> @@ -47,20 +50,41 @@ <result property="dataScope" column="data_scope" /> <result property="status" column="role_status" /> </resultMap> + + <resultMap id="DistrictResult" type="SysDistrictVo"> + <id property="districtId" column="district_id" /> + <result property="districtCode" column="district_code" /> + <result property="districtName" column="district_name" /> + <result property="parentcode" column="parentcode" /> + <result property="districtType" column="district_type" /> + </resultMap> + + <resultMap id="InstitutionResult" type="TrainingInstitutionVo"> + <id property="institutionId" column="institution_id" /> + <result property="institutionName" column="institution_name" /> + </resultMap> <sql id="selectUserVo"> - select u.user_id, u.dept_id, u.district_id,u.unit,u.user_name, u.nick_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, + select u.user_id, u.dept_id, u.district_id,u.unit,u.user_name, u.nick_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, u.id_card, d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.status as dept_status, - r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status + r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status, + di.name as district_name, + ti.institution_id, ti.institution_name from sys_user u left join sys_dept d on u.dept_id = d.dept_id left join sys_user_role ur on u.user_id = ur.user_id left join sys_role r on r.role_id = ur.role_id + left join sys_district di on di.id = u.district_id + left join sys_user_institution ui on u.user_id = ui.user_id + left join training_institution ti on ui.institution_id = ti.institution_id </sql> <select id="selectUserList" parameterType="SysUser" resultMap="SysUserResult"> - select u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, d.dept_name, d.leader from sys_user u + select u.user_id, u.dept_id, u.district_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, d.dept_name, d.leader, u.id_card, ti.institution_id, ti.institution_name, di.name as district_name from sys_user u left join sys_dept d on u.dept_id = d.dept_id + left join sys_district di on di.id = u.district_id + left join sys_user_institution ui on u.user_id = ui.user_id + left join training_institution ti on ui.institution_id = ti.institution_id where u.del_flag = '0' <if test="userId != null and userId != 0"> AND u.user_id = #{userId} @@ -88,11 +112,13 @@ </select> <select id="selectAllocatedList" parameterType="SysUser" resultMap="SysUserResult"> - select distinct u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.phonenumber, u.status, u.create_time + select distinct u.user_id, u.dept_id, u.district_id, u.user_name, u.nick_name, u.email, u.phonenumber, u.status, u.create_time, u.id_card, di.name as district_name from sys_user u left join sys_dept d on u.dept_id = d.dept_id left join sys_user_role ur on u.user_id = ur.user_id left join sys_role r on r.role_id = ur.role_id + left join sys_district di on di.id = u.district_id + where u.del_flag = '0' and r.role_id = #{roleId} <if test="userName != null and userName != ''"> AND u.user_name like concat('%', #{userName}, '%') @@ -105,12 +131,13 @@ </select> <select id="selectUnallocatedList" parameterType="SysUser" resultMap="SysUserResult"> - select distinct u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.phonenumber, u.status, u.create_time + select distinct u.user_id, u.dept_id, u.district_id, u.user_name, u.nick_name, u.email, u.phonenumber, u.status, u.create_time, u.id_card, di.name as district_name from sys_user u left join sys_dept d on u.dept_id = d.dept_id left join sys_user_role ur on u.user_id = ur.user_id left join sys_role r on r.role_id = ur.role_id - where u.del_flag = '0' and (r.role_id != #{roleId} or r.role_id IS NULL) + left join sys_district di on di.id = u.district_id + where u.del_flag = '0' and (r.role_id != #{roleId} or r.role_id IS NULL) and u.user_id not in (select u.user_id from sys_user u inner join sys_user_role ur on u.user_id = ur.user_id and ur.role_id = #{roleId}) <if test="userName != null and userName != ''"> AND u.user_name like concat('%', #{userName}, '%') @@ -158,6 +185,8 @@ <if test="status != null and status != ''">status,</if> <if test="createBy != null and createBy != ''">create_by,</if> <if test="remark != null and remark != ''">remark,</if> + <if test="idCard != null and idCard != ''">id_card,</if> + <if test="districtId != null and districtId != 0">district_id,</if> create_time )values( <if test="userId != null and userId != ''">#{userId},</if> @@ -172,6 +201,8 @@ <if test="status != null and status != ''">#{status},</if> <if test="createBy != null and createBy != ''">#{createBy},</if> <if test="remark != null and remark != ''">#{remark},</if> + <if test="idCard != null and idCard != ''">#{idCard},</if> + <if test="districtId != null and districtId != 0">#{districtId},</if> sysdate() ) </insert> @@ -192,6 +223,8 @@ <if test="loginDate != null">login_date = #{loginDate},</if> <if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if> <if test="remark != null">remark = #{remark},</if> + <if test="idCard != null and idCard != ''">id_card = #{idCard},</if> + <if test="districtId != null and districtId != 0">district_id = #{districtId},</if> update_time = sysdate() </set> where user_id = #{userId} -- Gitblit v1.9.2