Browse Source

试验人员档案

liuyc 2 years ago
parent
commit
b6fd62ae3e

+ 179 - 0
blade-service-api/blade-business-api/src/main/java/org/springblade/business/entity/TrialLaboratoryUserArchives.java

@@ -0,0 +1,179 @@
+package org.springblade.business.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.mp.base.BaseEntity;
+
+import java.util.Date;
+
+/**
+ * 实验室人员档案实体
+ */
+@Data
+@TableName("u_trial_laboratory_user_archives")
+@EqualsAndHashCode(callSuper = true)
+public class TrialLaboratoryUserArchives extends BaseEntity {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 姓名
+     */
+    @ApiModelProperty("姓名")
+    private String name;
+
+    /**
+     * 性别
+     */
+    @ApiModelProperty("性别 1=男 2=女")
+    private Integer sex;
+
+    /**
+     * 学历
+     */
+    @ApiModelProperty("学历")
+    private Integer education;
+
+    /**
+     * 就职状态
+     */
+    @ApiModelProperty("就职状态 0=离职 1=在职")
+    private Integer status;
+
+    /**
+     * 身份证
+     */
+    @ApiModelProperty("身份证")
+    private Long idCard;
+
+    /**
+     * 出生日期
+     */
+    @ApiModelProperty("出生日期")
+    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date birthday;
+
+    /**
+     * 毕业院校
+     */
+    @ApiModelProperty("毕业院校")
+    private String graduationSchool;
+
+    /**
+     * 毕业日期
+     */
+    @ApiModelProperty("毕业日期")
+    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date graduationDate;
+
+    /**
+     * 职称
+     */
+    @ApiModelProperty("职称")
+    private String jobTitleName;
+
+    /**
+     * 部门
+     */
+    @ApiModelProperty("部门")
+    private String department;
+
+    /**
+     * 专业
+     */
+    @ApiModelProperty("专业")
+    private String major;
+
+    /**
+     * 工作职务
+     */
+    @ApiModelProperty("工作职务")
+    private String jobTitlePost;
+
+    /**
+     * 从事检测工作时间(月)
+     */
+    @ApiModelProperty("从事检测工作时间(月)")
+    private Integer workingTime;
+
+    /**
+     * 入职时间
+     */
+    @ApiModelProperty("入职时间")
+    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date entryTime;
+
+    /**
+     * 进场时间
+     */
+    @ApiModelProperty("进场时间")
+    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date mobilizationTime;
+
+    /**
+     * 退场时间
+     */
+    @ApiModelProperty("退场时间")
+    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date exitTime;
+
+    /**
+     * 劳动合同起始时间
+     */
+    @ApiModelProperty("劳动合同起始时间")
+    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date laborContractStartDate;
+
+    /**
+     * 劳动合同终止时间
+     */
+    @ApiModelProperty("劳动合同终止时间")
+    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date laborContractEndDate;
+
+    /**
+     * 证书编号
+     */
+    @ApiModelProperty("证书编号")
+    private String certificateNo;
+
+    /**
+     * 持证类型
+     */
+    @ApiModelProperty("持证类型")
+    private Integer certificateType;
+
+    /**
+     * 持证专业
+     */
+    @ApiModelProperty("持证专业")
+    private Integer certificateMajor;
+
+    /**
+     * 证书OSS地址
+     */
+    @ApiModelProperty("证书地址OssRUL")
+    private String certificateUrl;
+
+    /**
+     * 工作记录日期
+     */
+    @ApiModelProperty("工作记录日期")
+    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date workRecordDate;
+
+    /**
+     * 工作内容
+     */
+    @ApiModelProperty("工作内容")
+    private String workContent;
+
+    /**
+     * 排序
+     */
+    @ApiModelProperty("排序")
+    private Integer sort;
+
+}

+ 17 - 0
blade-service-api/blade-business-api/src/main/java/org/springblade/business/vo/TrialLaboratoryUserArchivesPageVO.java

@@ -0,0 +1,17 @@
+package org.springblade.business.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springblade.business.entity.TrialLaboratoryUserArchives;
+
+@Data
+public class TrialLaboratoryUserArchivesPageVO extends TrialLaboratoryUserArchives {
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty("查询输入框 名称")
+    private String queryValue;
+
+    @ApiModelProperty("学历回显名称")
+    private String educationName;
+
+}

+ 21 - 0
blade-service-api/blade-business-api/src/main/java/org/springblade/business/wrapper/TrialLaboratoryUserArchivesWarpper.java

@@ -0,0 +1,21 @@
+package org.springblade.business.wrapper;
+
+import org.springblade.business.entity.TrialLaboratoryUserArchives;
+import org.springblade.business.vo.TrialLaboratoryUserArchivesPageVO;
+import org.springblade.core.mp.support.BaseEntityWrapper;
+import org.springblade.core.tool.utils.BeanUtil;
+
+import java.util.Objects;
+
+public class TrialLaboratoryUserArchivesWarpper extends BaseEntityWrapper<TrialLaboratoryUserArchives, TrialLaboratoryUserArchivesPageVO> {
+
+    public static TrialLaboratoryUserArchivesWarpper build() {
+        return new TrialLaboratoryUserArchivesWarpper();
+    }
+
+    @Override
+    public TrialLaboratoryUserArchivesPageVO entityVO(TrialLaboratoryUserArchives entity) {
+        return Objects.requireNonNull(BeanUtil.copy(entity, TrialLaboratoryUserArchivesPageVO.class));
+    }
+
+}

+ 64 - 0
blade-service/blade-business/src/main/java/org/springblade/business/controller/TrialLaboratoryController.java

@@ -0,0 +1,64 @@
+package org.springblade.business.controller;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springblade.business.entity.TrialLaboratoryUserArchives;
+import org.springblade.business.service.ITrialLaboratoryUserArchivesService;
+import org.springblade.business.vo.TrialLaboratoryUserArchivesPageVO;
+import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+
+@RestController
+@RequestMapping("/laboratory")
+@AllArgsConstructor
+@Api(value = "试验实验室管理", tags = "试验实验室管理接口")
+public class TrialLaboratoryController extends BladeController {
+
+    private final ITrialLaboratoryUserArchivesService iTrialLaboratoryUserArchivesService;
+
+    @GetMapping("/user/archives/detail")
+    @ApiOperationSupport(order = 1)
+    @ApiOperation(value = "人员档案详情", notes = "传入id")
+    public R<TrialLaboratoryUserArchives> archivesDetail(@Valid @RequestParam Long id) {
+        return R.data(iTrialLaboratoryUserArchivesService.archivesDetail(id));
+    }
+
+    @PostMapping("/user/archives/submit")
+    @ApiOperationSupport(order = 2)
+    @ApiOperation(value = "人员档案新增或修改", notes = "传入TrialLaboratoryUserArchives")
+    public R<Object> archivesSubmit(@Valid @RequestBody TrialLaboratoryUserArchives obj) {
+        return R.data(iTrialLaboratoryUserArchivesService.archivesSubmit(obj));
+    }
+
+    @PostMapping("/user/archives/remove")
+    @ApiOperationSupport(order = 3)
+    @ApiOperation(value = "人员档案批量删除", notes = "传入ids")
+    public R<Object> archivesRemove(@Valid @RequestParam String ids) {
+        return R.data(iTrialLaboratoryUserArchivesService.deleteLogic(Func.toLongList(ids)));
+    }
+
+    @PostMapping("/user/archives/page")
+    @ApiOperationSupport(order = 4)
+    @ApiOperation(value = "人员档案条件分页查询", notes = "传入Query、查询输入框queryValue")
+    public R<IPage<TrialLaboratoryUserArchivesPageVO>> archivesPage(Query query, TrialLaboratoryUserArchivesPageVO pageVO) {
+        return R.data(iTrialLaboratoryUserArchivesService.archivesPage(Condition.getPage(query), pageVO));
+    }
+
+    @PostMapping("/print/null-pdf")
+    @ApiOperationSupport(order = 5)
+    @ApiOperation(value = "打印空表", notes = "传入ids")
+    public R<Object> printNullPDF(String ids) {
+        return R.data(iTrialLaboratoryUserArchivesService.printNullPDF(ids));
+    }
+
+
+}

+ 7 - 0
blade-service/blade-business/src/main/java/org/springblade/business/mapper/TrialLaboratoryUserArchivesMapper.java

@@ -0,0 +1,7 @@
+package org.springblade.business.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.springblade.business.entity.TrialLaboratoryUserArchives;
+
+public interface TrialLaboratoryUserArchivesMapper extends BaseMapper<TrialLaboratoryUserArchives> {
+}

+ 42 - 0
blade-service/blade-business/src/main/java/org/springblade/business/mapper/TrialLaboratoryUserArchivesMapper.xml

@@ -0,0 +1,42 @@
+<?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="org.springblade.business.mapper.TrialLaboratoryUserArchivesMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="ResultEntityMap" type="org.springblade.business.entity.TrialLaboratoryUserArchives">
+        <result column="id" property="id"/>
+        <result column="name" property="name"/>
+        <result column="sex" property="sex"/>
+        <result column="education" property="education"/>
+        <result column="id_card" property="idCard"/>
+        <result column="birthday" property="birthday"/>
+        <result column="graduation_school" property="graduationSchool"/>
+        <result column="graduation_date" property="graduationDate"/>
+        <result column="job_title_name" property="jobTitleName"/>
+        <result column="job_title_name" property="jobTitleName"/>
+        <result column="department" property="department"/>
+        <result column="major" property="major"/>
+        <result column="job_title_post" property="jobTitlePost"/>
+        <result column="working_time" property="workingTime"/>
+        <result column="entry_time" property="entryTime"/>
+        <result column="mobilization_time" property="mobilizationTime"/>
+        <result column="exit_time" property="exitTime"/>
+        <result column="labor_contract_start_date" property="laborContractStartDate"/>
+        <result column="labor_contract_end_date" property="laborContractEndDate"/>
+        <result column="certificate_no" property="certificateNo"/>
+        <result column="certificate_type" property="certificateType"/>
+        <result column="certificate_major" property="certificateMajor"/>
+        <result column="certificate_url" property="certificateUrl"/>
+        <result column="work_record_date" property="workRecordDate"/>
+        <result column="work_content" property="workContent"/>
+        <result column="status" property="status"/>
+        <result column="sort" property="sort"/>
+        <result column="create_user" property="createUser"/>
+        <result column="create_dept" property="createDept"/>
+        <result column="create_time" property="createTime"/>
+        <result column="update_user" property="updateUser"/>
+        <result column="update_time" property="updateTime"/>
+        <result column="is_deleted" property="isDeleted"/>
+    </resultMap>
+
+</mapper>

+ 18 - 0
blade-service/blade-business/src/main/java/org/springblade/business/service/ITrialLaboratoryUserArchivesService.java

@@ -0,0 +1,18 @@
+package org.springblade.business.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springblade.business.entity.TrialLaboratoryUserArchives;
+import org.springblade.business.vo.TrialLaboratoryUserArchivesPageVO;
+import org.springblade.core.mp.base.BaseService;
+
+public interface ITrialLaboratoryUserArchivesService extends BaseService<TrialLaboratoryUserArchives> {
+
+    TrialLaboratoryUserArchives archivesDetail(Long id);
+
+    boolean archivesSubmit(TrialLaboratoryUserArchives obj);
+
+    IPage<TrialLaboratoryUserArchivesPageVO> archivesPage(IPage<TrialLaboratoryUserArchives> page, TrialLaboratoryUserArchivesPageVO pageVO);
+
+    String printNullPDF(String ids);
+
+}

+ 71 - 0
blade-service/blade-business/src/main/java/org/springblade/business/service/impl/TrialLaboratoryUserArchivesServiceImpl.java

@@ -0,0 +1,71 @@
+package org.springblade.business.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import lombok.AllArgsConstructor;
+import org.springblade.business.entity.TrialLaboratoryUserArchives;
+import org.springblade.business.mapper.TrialLaboratoryUserArchivesMapper;
+import org.springblade.business.service.ITrialLaboratoryUserArchivesService;
+import org.springblade.business.vo.TrialLaboratoryUserArchivesPageVO;
+import org.springblade.business.wrapper.TrialLaboratoryUserArchivesWarpper;
+import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.tool.api.R;
+import org.springblade.system.entity.Dict;
+import org.springblade.system.feign.IDictClient;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service
+@AllArgsConstructor
+public class TrialLaboratoryUserArchivesServiceImpl
+        extends BaseServiceImpl<TrialLaboratoryUserArchivesMapper, TrialLaboratoryUserArchives>
+        implements ITrialLaboratoryUserArchivesService {
+
+    private final IDictClient dictClient;
+
+    @Override
+    public TrialLaboratoryUserArchives archivesDetail(Long id) {
+        return baseMapper.selectById(id);
+    }
+
+    @Override
+    public boolean archivesSubmit(TrialLaboratoryUserArchives obj) {
+        return this.saveOrUpdate(obj);
+    }
+
+    @Override
+    public IPage<TrialLaboratoryUserArchivesPageVO> archivesPage(IPage<TrialLaboratoryUserArchives> page, TrialLaboratoryUserArchivesPageVO pageVO) {
+        R<List<Dict>> trialUserEducation = dictClient.getList("trial_user_education");
+        QueryWrapper<TrialLaboratoryUserArchives> queryWrapper = Condition.getQueryWrapper(pageVO);
+        if (StringUtils.isNotEmpty(pageVO.getQueryValue())) {
+            queryWrapper.lambda().like(TrialLaboratoryUserArchives::getName, pageVO.getQueryValue());
+        }
+        IPage<TrialLaboratoryUserArchives> pages = this.page(page, queryWrapper.lambda().orderBy(true, true, TrialLaboratoryUserArchives::getCreateTime));
+        IPage<TrialLaboratoryUserArchivesPageVO> archivesPageVOIPage = TrialLaboratoryUserArchivesWarpper.build().pageVO(pages);
+        List<TrialLaboratoryUserArchivesPageVO> records = archivesPageVOIPage.getRecords();
+
+        for (TrialLaboratoryUserArchivesPageVO record : records) {
+            for (Dict datum : trialUserEducation.getData()) {
+                if (record.getEducation().equals(Integer.parseInt(datum.getDictKey()))) {
+                    record.setEducationName(datum.getDictValue());
+                }
+            }
+        }
+        return archivesPageVOIPage.setRecords(records);
+    }
+
+    @Override
+    public String printNullPDF(String ids) {
+        if (StringUtils.isNotEmpty(ids)) {
+            //选择打印 TODO
+        } else {
+            //全部打印
+        }
+        return "功能未开放";
+    }
+
+
+}