whywhyo
2023-10-23 fd8b8e08b4dcc86c0beba346becf94bcb73aef27
12736
6个文件已添加
10个文件已删除
758 ■■■■ 已修改文件
generate/src/main/java/com/ojq/controller/TravelCountController.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
generate/src/main/java/com/ojq/controller/TravelDetailController.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
generate/src/main/java/com/ojq/domain/TravelCount.java 105 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
generate/src/main/java/com/ojq/domain/TravelDetail.java 95 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
generate/src/main/java/com/ojq/mapper/TravelCountMapper.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
generate/src/main/java/com/ojq/mapper/TravelDetailMapper.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
generate/src/main/java/com/ojq/service/ITravelCountService.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
generate/src/main/java/com/ojq/service/ITravelDetailService.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
generate/src/main/java/com/ojq/service/impl/TravelCountServiceImpl.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
generate/src/main/java/com/ojq/service/impl/TravelDetailServiceImpl.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
generate/src/main/resources/mapper/PhyscialMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/PhyscialController.java 141 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhang-content/src/main/java/com/ruoyi/domain/Physcial.java 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhang-content/src/main/java/com/ruoyi/mapper/PhyscialMapper.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhang-content/src/main/java/com/ruoyi/service/PhyscialService.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhang-content/src/main/java/com/ruoyi/service/impl/PhyscialServiceImpl.java 145 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
generate/src/main/java/com/ojq/controller/TravelCountController.java
File was deleted
generate/src/main/java/com/ojq/controller/TravelDetailController.java
File was deleted
generate/src/main/java/com/ojq/domain/TravelCount.java
File was deleted
generate/src/main/java/com/ojq/domain/TravelDetail.java
File was deleted
generate/src/main/java/com/ojq/mapper/TravelCountMapper.java
File was deleted
generate/src/main/java/com/ojq/mapper/TravelDetailMapper.java
File was deleted
generate/src/main/java/com/ojq/service/ITravelCountService.java
File was deleted
generate/src/main/java/com/ojq/service/ITravelDetailService.java
File was deleted
generate/src/main/java/com/ojq/service/impl/TravelCountServiceImpl.java
File was deleted
generate/src/main/java/com/ojq/service/impl/TravelDetailServiceImpl.java
File was deleted
generate/src/main/resources/mapper/PhyscialMapper.xml
New file
@@ -0,0 +1,5 @@
<?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.ojq.mapper.PhyscialMapper">
</mapper>
ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/PhyscialController.java
New file
@@ -0,0 +1,141 @@
package com.ruoyi.web.controller.zhang;
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. Physcial;
import com.ruoyi.domain.Physcial;
import com.ruoyi.service. PhyscialService;
import com.ruoyi.service.PhyscialService;
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 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>
 *  前端控制器
 * </p>
 *
 * @author ojq
 * @since 2023-10-23
 */
@RestController
@RequestMapping("/physcial")
@Slf4j
public class PhyscialController extends BaseController {
    @Autowired
    private PhyscialService physcialService;
    /**
     * 查询所有记录
     */
    @GetMapping("/all")
    public AjaxResult listAll(Physcial physcial){
        Integer pageNum = Convert.toInt(ServletUtils.getParameter(PAGE_NUM), 1);
        Integer pageSize = Convert.toInt(ServletUtils.getParameter(PAGE_SIZE), 10);
        return physcialService.selectDataList(physcial,pageNum,pageSize);
    }
    /**
     * 根据id查询
     */
    @GetMapping()
    public AjaxResult listById(Long id){
        return AjaxResult.success(physcialService.getById(id));
    }
    /**
     * 模板
     */
    @PostMapping("/model")
    public void getModel(HttpServletResponse response){
        Physcial physcial = new Physcial();
        List<Physcial> emptyList = Collections.singletonList(physcial);
        ExcelUtil<Physcial> util = new ExcelUtil<>(Physcial.class);
        util.exportExcel(response, emptyList, "历年体检数据记录数据");
    }
    @Log(title = "历年体检数据记录", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response)
    {
        List<Physcial> list = physcialService.selectByCondition();
        log.info("导出记录为:{}",list);
        ExcelUtil<Physcial> util = new ExcelUtil<>(Physcial.class);
        util.exportExcel(response, list, "历年体检数据记录数据");
    }
    /**
     * 导出历年体检数据记录列表
     */
//    @PreAuthorize("@ss.hasPermi('system:property:export')")
    @Log(title = "历年体检数据记录", businessType = BusinessType.EXPORT)
    @PostMapping("/export1/{ids}")
    public void export1(HttpServletResponse response,@PathVariable Long[] ids)
    {
        List<Physcial> list = physcialService.selectByIds(ids);
        log.info("导出记录为:{}",list);
        ExcelUtil<Physcial> util = new ExcelUtil<>(Physcial.class);
        util.exportExcel(response, list, "历年体检数据记录数据");
    }
    /**
     * 导入历年体检数据记录列表
     */
    @Log(title = "用户管理", businessType = BusinessType.IMPORT)
    @PostMapping("/importData")
    public AjaxResult importData(@RequestParam("excelImport") MultipartFile file) throws Exception
    {
        return physcialService.importExcel(file);
    }
    /**
     * 新增历年体检数据记录
     */
//    @PreAuthorize("@ss.hasPermi('system:property:add')")
    @Log(title = "历年体检数据记录", businessType = BusinessType.INSERT)
    @PostMapping
    public AjaxResult add(@RequestBody Physcial physcial)
    {
        return physcialService.mySave(physcial);
    }
    /**
     * 修改历年体检数据记录
     */
//    @PreAuthorize("@ss.hasPermi('system:property:edit')")
    @Log(title = "历年体检数据记录", businessType = BusinessType.UPDATE)
    @PutMapping
    public AjaxResult edit(@RequestBody Physcial physcial)
    {
        return toAjax(physcialService.updateById(physcial));
    }
//
    /**
     * 批量删除历年体检数据记录
     */
//    @PreAuthorize("@ss.hasPermi('system:property:remove')")
    @Log(title = "历年体检数据记录", businessType = BusinessType.DELETE)
    @DeleteMapping("/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids)
    {
        return toAjax(physcialService.removeByIds(Arrays.asList(ids)));
    }
}
zhang-content/src/main/java/com/ruoyi/domain/Physcial.java
New file
@@ -0,0 +1,72 @@
package com.ruoyi.domain;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.io.Serializable;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
 * <p>
 *
 * </p>
 *
 * @author ojq
 * @since 2023-10-23
 */
@Data
@TableName("physcial")
public class Physcial implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     * 主键
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    /**
     * 年度报告
     */
    private String report;
    /**
     * 体检时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date happenTime;
    @TableField(exist = false)
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date happenStartTime;
    @TableField(exist = false)
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date happenEndTime;
    /**
     * 电子文件
     */
    private String url;
    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date createTime;
    /**
     * 用户id
     */
    private Long uid;
}
zhang-content/src/main/java/com/ruoyi/mapper/PhyscialMapper.java
New file
@@ -0,0 +1,17 @@
package com.ruoyi.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.domain.Physcial;
/**
 * <p>
 *  Mapper 接口
 * </p>
 *
 * @author ojq
 * @since 2023-10-23
 */
public interface PhyscialMapper extends BaseMapper<Physcial> {
}
zhang-content/src/main/java/com/ruoyi/service/PhyscialService.java
New file
@@ -0,0 +1,34 @@
package com.ruoyi.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.domain.Physcial;
import com.ruoyi.domain.Physcial;
import com.ruoyi.domain.Physcial;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
/**
 * <p>
 *  服务类
 * </p>
 *
 * @author ojq
 * @since 2023-10-23
 */
public interface PhyscialService extends IService<Physcial> {
    AjaxResult selectDataList(Physcial physcial, Integer pageNum, Integer pageSize);
    List<Physcial> selectByIds(Long[] ids);
    AjaxResult importExcel(MultipartFile file);
    AjaxResult mySave(Physcial physcial);
    List<Physcial> selectByCondition();
}
zhang-content/src/main/java/com/ruoyi/service/impl/PhyscialServiceImpl.java
New file
@@ -0,0 +1,145 @@
package com.ruoyi.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
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.Physcial;
import com.ruoyi.domain.Physcial;
import com.ruoyi.domain.Physcial;
import com.ruoyi.mapper.PhyscialMapper;
import com.ruoyi.service.PhyscialService;
import lombok.extern.slf4j.Slf4j;
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.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.stream.Collectors;
/**
 * <p>
 *  服务实现类
 * </p>
 *
 * @author ojq
 * @since 2023-10-23
 */
@Service
@Slf4j
public class PhyscialServiceImpl extends ServiceImpl<PhyscialMapper, Physcial> implements PhyscialService {
    @Autowired
    PhyscialServiceImpl physcialService;
    private LambdaQueryWrapper<Physcial> uniqueCondition(Physcial physcial) {
        LambdaQueryWrapper<Physcial> lqw = new LambdaQueryWrapper<>();
        lqw.eq(StringUtils.isNotEmpty(physcial.getReport()), Physcial::getReport, physcial.getReport())
                .eq(physcial.getHappenTime() != null, Physcial::getHappenTime, physcial.getHappenTime())
                .eq(physcial.getUid() != null, Physcial::getUid, physcial.getUid());
        return lqw;
    }
    private LambdaQueryWrapper<Physcial> buildCondition(Physcial physcial, Long userId) {
        LambdaQueryWrapper<Physcial> lqw = new LambdaQueryWrapper<>();
        lqw.eq(userId != null, Physcial::getUid, userId)
                .like(StringUtils.isNotEmpty(physcial.getReport()), Physcial::getReport, physcial.getReport())
                .between(physcial.getHappenStartTime() != null && physcial.getHappenEndTime() != null, Physcial::getHappenTime, physcial.getHappenStartTime(), physcial.getHappenEndTime())
                .orderByDesc(Physcial::getCreateTime);
        return lqw;
    }
    /**
     * 分页查找
     */
    @Override
    public AjaxResult selectDataList(Physcial physcial, Integer pageNum, Integer pageSize) {
        SysUser user = SecurityUtils.getLoginUser().getUser();
        Long userId = user.getUserId();
        LambdaQueryWrapper<Physcial> lqw = buildCondition(physcial, userId);
        Page<Physcial> pageBean = new Page<>(pageNum, pageSize);
        Page<Physcial> pageResult = page(pageBean, lqw);
        List<Physcial> beanRecords = pageResult.getRecords();//得到查询出来的数据
        HashMap<String, Object> data = MapUtils.getResult(pageResult, beanRecords);
        return AjaxResult.success(data);
    }
    @Override
    public List<Physcial> selectByIds(Long[] ids) {
        List<Physcial> list = new ArrayList<>();
        if (ids.length != 0)
            list = listByIds(Arrays.asList(ids));
        else
            list = list();
        return list;
    }
    @Override
    public AjaxResult mySave(Physcial physcial) {
        SysUser user = SecurityUtils.getLoginUser().getUser();
        Long userId = user.getUserId();
        physcial.setUid(userId);
        //检查是否有重复数据插入
        LambdaQueryWrapper<Physcial> lqw = uniqueCondition(physcial);
        List<Physcial> list = list(lqw);
        if (list.size() > 0) {
            throw new RuntimeException("请勿新增重复数据");
        }
        if (save(physcial)) {
            return AjaxResult.success();
        } else {
            return AjaxResult.error();
        }
    }
    @Override
    public List<Physcial> selectByCondition() {
        SysUser user = SecurityUtils.getLoginUser().getUser();
        Long userId = user.getUserId();
        Physcial physcial = new Physcial();
        LambdaQueryWrapper<Physcial> lqw = buildCondition(physcial, userId);
        return list(lqw);
    }
    @Override
    @Transactional
    public AjaxResult importExcel(MultipartFile file) {
        ExcelUtil<Physcial> util = new ExcelUtil<>(Physcial.class);
        List<Physcial> dataList = null;
        try {
            dataList = util.importExcel(file.getInputStream());
        } catch (Exception e) {
            throw new RuntimeException("没有按照规则导入数据");
        }
        assert dataList != null;
        for (Physcial physcial : dataList) {
            physcialService.mySave(physcial);
        }
        return AjaxResult.success();
    }
}