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(); } }