999
whywhyo
2023-05-15 b5c4def616b7509ee86c8df91e42ae8bbc3a391f
999
4个文件已修改
366 ■■■■ 已修改文件
ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/ZHonorController.java 107 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhang-content/src/main/java/com/ruoyi/domain/ZHonor.java 128 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhang-content/src/main/java/com/ruoyi/service/ZHonorService.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhang-content/src/main/java/com/ruoyi/service/impl/ZHonorServiceImpl.java 120 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/ZHonorController.java
@@ -1,9 +1,29 @@
package com.ruoyi.web.controller.zhang;
import org.springframework.web.bind.annotation.RequestMapping;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.core.text.Convert;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.ServletUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.domain.ZHonor;
import com.ruoyi.service.ZHonorService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletResponse;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import static com.ruoyi.common.core.page.TableSupport.PAGE_NUM;
import static com.ruoyi.common.core.page.TableSupport.PAGE_SIZE;
/**
 * <p>
@@ -15,7 +35,88 @@
 */
@RestController
@RequestMapping("/zHonor")
public class ZHonorController {
@Slf4j
public class ZHonorController extends BaseController {
    @Autowired
    private ZHonorService zHonorService;
    /**
     * 查询所有记录
     */
    @GetMapping("/all")
    public AjaxResult listAll(ZHonor zHonor){
        Integer pageNum = Convert.toInt(ServletUtils.getParameter(PAGE_NUM), 1);
        Integer pageSize = Convert.toInt(ServletUtils.getParameter(PAGE_SIZE), 10);
        return zHonorService.selectDataList(zHonor,pageNum,pageSize);
    }
    /**
     * 模板
     */
    @GetMapping("/model")
    public void getModel(HttpServletResponse response){
        ZHonor zHonor = new ZHonor();
        List<ZHonor> emptyList = Collections.singletonList(zHonor);
        ExcelUtil<ZHonor> util = new ExcelUtil<>(ZHonor.class);
        util.exportExcel(response, emptyList, "证件、荣誉、资质记录数据");
    }
    /**
     * 导出证件、荣誉、资质记录列表
     */
//    @PreAuthorize("@ss.hasPermi('system:property:export')")
    @Log(title = "证件、荣誉、资质记录", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, ZHonor zHonor)
    {
        List<ZHonor> list = zHonorService.selectCondition(zHonor);
        log.info("导出记录为:{}",list);
        ExcelUtil<ZHonor> util = new ExcelUtil<>(ZHonor.class);
        util.exportExcel(response, list, "证件、荣誉、资质记录数据");
    }
    /**
     * 导入证件、荣誉、资质记录列表
     */
    @Log(title = "用户管理", businessType = BusinessType.IMPORT)
    @PostMapping("/importData")
    public AjaxResult importData(@RequestParam("excelImport") MultipartFile file) throws Exception
    {
        return zHonorService.importExcel(file);
    }
    /**
     * 新增证件、荣誉、资质记录
     */
//    @PreAuthorize("@ss.hasPermi('system:property:add')")
    @Log(title = "证件、荣誉、资质记录", businessType = BusinessType.INSERT)
    @PostMapping
    public AjaxResult add(@RequestBody ZHonor zHonor)
    {
        return zHonorService.mySave(zHonor);
    }
    /**
     * 修改证件、荣誉、资质记录
     */
//    @PreAuthorize("@ss.hasPermi('system:property:edit')")
    @Log(title = "证件、荣誉、资质记录", businessType = BusinessType.UPDATE)
    @PutMapping
    public AjaxResult edit(@RequestBody ZHonor zHonor)
    {
        return toAjax(zHonorService.updateById(zHonor));
    }
//
    /**
     * 批量删除证件、荣誉、资质记录
     */
//    @PreAuthorize("@ss.hasPermi('system:property:remove')")
    @Log(title = "证件、荣誉、资质记录", businessType = BusinessType.DELETE)
    @DeleteMapping("/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids)
    {
        return toAjax(zHonorService.removeByIds(Arrays.asList(ids)));
    }
}
zhang-content/src/main/java/com/ruoyi/domain/ZHonor.java
@@ -3,8 +3,15 @@
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import lombok.Data;
import org.hibernate.validator.constraints.EAN;
import javax.print.attribute.standard.MediaSize;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Date;
/**
 * <p>
@@ -15,152 +22,79 @@
 * @since 2023-03-14
 */
@TableName("z_honor")
@Data
public class ZHonor implements Serializable {
    private static final long serialVersionUID = 1L;
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    private Long id;
    /**
     * 本人id
     */
    private Integer userId;
    private Long userId;
    /**
     * 类别,0:证件、1:荣誉、2:资质
     */
    @Excel(name = "类别(证件、荣誉、资质)",readConverterExp = "0=证件,1=荣誉,2=资质")
    private Integer type;
    /**
     * 名称
     */
    @Excel(name = "名称")
    private String name;
    /**
     * 证号/专业
     */
    @Excel(name = "证号/专业")
    private String idNo;
    /**
     * 级别
     */
    @Excel(name = "级别")
    private String grade;
    /**
     * 有效期
     */
    private LocalDateTime validityDate;
    @Excel(name = "有效期", dateFormat = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    private Date validityDate;
    /**
     * 获得时间
     */
    private LocalDateTime getDate;
    @Excel(name = "获得时间", dateFormat = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    private Date getDate;
    /**
     * 存放位置
     */
    @Excel(name = "存放位置")
    private String location;
    /**
     * 备注
     */
    @Excel(name = "备注")
    private String remark;
    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    private Date createTime;
    public Integer getId() {
        return id;
    }
    /**
     * 电子文件路径
     */
    private String url;
    public void setId(Integer id) {
        this.id = id;
    }
    public Integer getUserId() {
        return userId;
    }
    public void setUserId(Integer userId) {
        this.userId = userId;
    }
    public Integer getType() {
        return type;
    }
    public void setType(Integer type) {
        this.type = type;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getIdNo() {
        return idNo;
    }
    public void setIdNo(String idNo) {
        this.idNo = idNo;
    }
    public String getGrade() {
        return grade;
    }
    public void setGrade(String grade) {
        this.grade = grade;
    }
    public LocalDateTime getValidityDate() {
        return validityDate;
    }
    public void setValidityDate(LocalDateTime validityDate) {
        this.validityDate = validityDate;
    }
    public LocalDateTime getGetDate() {
        return getDate;
    }
    public void setGetDate(LocalDateTime getDate) {
        this.getDate = getDate;
    }
    public String getLocation() {
        return location;
    }
    public void setLocation(String location) {
        this.location = location;
    }
    public String getRemark() {
        return remark;
    }
    public void setRemark(String remark) {
        this.remark = remark;
    }
    @Override
    public String toString() {
        return "ZHonor{" +
        "id=" + id +
        ", userId=" + userId +
        ", type=" + type +
        ", name=" + name +
        ", idNo=" + idNo +
        ", grade=" + grade +
        ", validityDate=" + validityDate +
        ", getDate=" + getDate +
        ", location=" + location +
        ", remark=" + remark +
        "}";
    }
}
zhang-content/src/main/java/com/ruoyi/service/ZHonorService.java
@@ -2,7 +2,11 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.domain.ZHonor;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
/**
 * <p>
@@ -14,4 +18,11 @@
 */
public interface ZHonorService extends IService<ZHonor> {
    AjaxResult selectDataList(ZHonor zHonor,Integer pageNum,Integer pageSize);
    AjaxResult mySave(ZHonor zHonor);
    AjaxResult importExcel(MultipartFile file);
    List<ZHonor> selectCondition(ZHonor zHonor);
}
zhang-content/src/main/java/com/ruoyi/service/impl/ZHonorServiceImpl.java
@@ -1,11 +1,28 @@
package com.ruoyi.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.utils.MapUtils;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.domain.ZAbroad;
import com.ruoyi.domain.ZHonor;
import com.ruoyi.domain.ZfCollection;
import com.ruoyi.mapper.ZHonorMapper;
import com.ruoyi.service.ZHonorService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import java.util.HashMap;
import java.util.List;
import java.util.stream.Collectors;
/**
 * <p>
@@ -18,4 +35,107 @@
@Service
public class ZHonorServiceImpl extends ServiceImpl<ZHonorMapper, ZHonor> implements ZHonorService {
    @Autowired
    ZHonorServiceImpl zHonorService;
    private LambdaQueryWrapper<ZHonor> uniqueCondition(ZHonor zHonor){
        LambdaQueryWrapper<ZHonor> lqw = new LambdaQueryWrapper<>();
        lqw.eq(StringUtils.isNotEmpty(zHonor.getName()),ZHonor::getName,zHonor.getName())
                .eq(zHonor.getType()!=null,ZHonor::getType,zHonor.getType())
                .eq(StringUtils.isNotEmpty(zHonor.getIdNo()),ZHonor::getIdNo,zHonor.getIdNo())
                .eq(StringUtils.isNotEmpty(zHonor.getGrade()),ZHonor::getGrade,zHonor.getGrade())
                .eq(zHonor.getValidityDate()!=null,ZHonor::getValidityDate,zHonor.getValidityDate())
                .eq(zHonor.getGetDate()!=null,ZHonor::getGetDate,zHonor.getGetDate())
                .eq(StringUtils.isNotEmpty(zHonor.getLocation()),ZHonor::getLocation,zHonor.getLocation())
                .eq(StringUtils.isNotEmpty(zHonor.getRemark()),ZHonor::getRemark,zHonor.getRemark())
                .eq(zHonor.getUserId()!=null,ZHonor::getUserId,zHonor.getUserId());
        return lqw;
    }
    private LambdaQueryWrapper<ZHonor> buildCondition(ZHonor zHonor,Long userId){
        LambdaQueryWrapper<ZHonor> lqw = new LambdaQueryWrapper<>();
        lqw.eq(StringUtils.isNotEmpty(zHonor.getName()),ZHonor::getName,zHonor.getName())
                .eq(ZHonor::getUserId,userId)
                .like(zHonor.getType()!=null,ZHonor::getType,zHonor.getType())
                .like(StringUtils.isNotEmpty(zHonor.getIdNo()),ZHonor::getIdNo,zHonor.getIdNo())
                .like(StringUtils.isNotEmpty(zHonor.getGrade()),ZHonor::getGrade,zHonor.getGrade())
                .like(StringUtils.isNotEmpty(zHonor.getLocation()),ZHonor::getLocation,zHonor.getLocation())
                .like(StringUtils.isNotEmpty(zHonor.getRemark()),ZHonor::getRemark,zHonor.getRemark())
                .orderByDesc(ZHonor::getCreateTime);
        return lqw;
    }
    /**
     * 分页查找
     */
    @Override
    public AjaxResult selectDataList(ZHonor zHonor,Integer pageNum,Integer pageSize) {
        SysUser user = SecurityUtils.getLoginUser().getUser();
        Long userId = user.getUserId();
        LambdaQueryWrapper<ZHonor> lqw = buildCondition(zHonor, userId);
        Page<ZHonor> pageBean = new Page<>(pageNum, pageSize);
        Page<ZHonor> pageResult = page(pageBean, lqw);
        List<ZHonor> beanRecords = pageResult.getRecords();//得到查询出来的数据
        HashMap<String, Object> data = MapUtils.getResult(pageResult, beanRecords);
        return AjaxResult.success(data);
    }
    @Override
    public List<ZHonor> selectCondition(ZHonor zHonor) {
        SysUser user = SecurityUtils.getLoginUser().getUser();
        Long userId = user.getUserId();
        LambdaQueryWrapper<ZHonor> lqw = buildCondition(zHonor, userId);
        return list(lqw);
    }
    @Override
    public AjaxResult mySave(ZHonor zHonor) {
        SysUser user = SecurityUtils.getLoginUser().getUser();
        Long userId = user.getUserId();
        zHonor.setUserId(userId);
        //检查是否有重复数据插入
        LambdaQueryWrapper<ZHonor> lqw = uniqueCondition(zHonor);
        List<ZHonor> list = list(lqw);
        if(list.size()>0){
            throw new RuntimeException("请勿新增重复数据");
        }
        if (save(zHonor)) {
            return AjaxResult.success();
        }else {
            return AjaxResult.error();
        }
    }
    @Override
    @Transactional
    public AjaxResult importExcel(MultipartFile file) {
        ExcelUtil<ZHonor> util = new ExcelUtil<>(ZHonor.class);
        List<ZHonor> dataList = null;
        try {
            dataList = util.importExcel(file.getInputStream());
        } catch (Exception e) {
            throw new RuntimeException("没有按照规则导入数据");
        }
        assert dataList != null;
        for (ZHonor zHonor : dataList) {
            zHonorService.mySave(zHonor);
        }
        return AjaxResult.success();
    }
}