2 天以前 809562f45f703f99f9f75618428cef59a6458799
yys
1.设备导入,人员导入
已添加1个文件
已修改7个文件
199 ■■■■■ 文件已修改
src/main/java/com/ruoyi/device/controller/DeviceLedgerController.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/device/execl/DeviceLedgerExeclDto.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/device/service/impl/DeviceLedgerServiceImpl.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/project/system/mapper/SysRoleMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/staff/controller/StaffOnJobController.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/staff/dto/StaffOnJobExcelDto.java 87 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/staff/service/impl/StaffOnJobServiceImpl.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/system/SysRoleMapper.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/device/controller/DeviceLedgerController.java
@@ -3,7 +3,9 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.device.dto.DeviceLedgerDto;
import com.ruoyi.device.execl.DeviceLedgerExeclDto;
import com.ruoyi.device.mapper.DeviceLedgerMapper;
import com.ruoyi.device.mapper.DeviceMaintenanceMapper;
import com.ruoyi.device.pojo.DeviceLedger;
@@ -11,6 +13,7 @@
import com.ruoyi.device.service.IDeviceLedgerService;
import com.ruoyi.framework.aspectj.lang.annotation.Anonymous;
import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.staff.dto.StaffOnJobExcelDto;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
@@ -79,7 +82,14 @@
         deviceLedgerService.export(response, ids);
    }
    @PostMapping("import")
    @ApiOperation("下载模板")
    @PostMapping("/downloadTemplate")
    public void downloadTemplate(HttpServletResponse response) {
        ExcelUtil<DeviceLedgerExeclDto> util = new ExcelUtil<>(DeviceLedgerExeclDto.class);
        util.importTemplateExcel(response, "设备导入模板");
    }
    @PostMapping("/import")
    @ApiOperation("导入设备台账")
    public AjaxResult importData(MultipartFile file) throws IOException {
        Boolean b = deviceLedgerService.importData(file);
src/main/java/com/ruoyi/device/execl/DeviceLedgerExeclDto.java
@@ -1,9 +1,14 @@
package com.ruoyi.device.execl;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.framework.aspectj.lang.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.Date;
@Data
public class DeviceLedgerExeclDto {
@@ -14,6 +19,18 @@
     */
    @Excel(name = "设备名称" ,sort = 1)
    private String deviceName;
    /**
     * è®¾å¤‡ç±»åž‹
     */
    @Excel(name = "设备类型",sort = 0,combo = {"生产设备","办公设备","检查设备","运输设备","其他设备"})
    private String type;
    @ApiModelProperty("计划运行时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "计划运行时间",sort = 10,dateFormat = "yyyy-MM-dd")
    private Date planRuntimeTime;
    /**
     * è§„格型号
@@ -36,8 +53,8 @@
    /**
     * æ•°é‡
     */
    @Excel(name = "数量",sort = 5)
    private BigDecimal number;
    @Excel(name = "数量",sort = 5, type = Excel.Type.EXPORT)
    private BigDecimal number = BigDecimal.ONE;
    /**
     * å«ç¨Žå•ä»·
@@ -48,7 +65,7 @@
    /**
     * å«ç¨Žæ€»ä»·
     */
    @Excel(name = "含税总价",sort = 7)
    @Excel(name = "含税总价",sort = 7, type = Excel.Type.EXPORT)
    private BigDecimal taxIncludingPriceTotal;
    /**
@@ -60,17 +77,8 @@
    /**
     * ä¸å«ç¨Žæ€»ä»·
     */
    @Excel(name = "不含税总价",sort = 9)
    @Excel(name = "不含税总价",sort = 9, type = Excel.Type.EXPORT)
    private BigDecimal unTaxIncludingPriceTotal;
//
//    /**
//     * å½•入时间
//     *
//     */
//    @Excel(name = "录入时间",sort = 10)
//    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
//    private LocalDateTime createTime;
    /**
src/main/java/com/ruoyi/device/service/impl/DeviceLedgerServiceImpl.java
@@ -4,6 +4,8 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.OrderUtils;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.bean.BeanUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
@@ -23,6 +25,8 @@
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@@ -112,6 +116,11 @@
                deviceLedger.setCreateUser(SecurityUtils.getUserId().intValue());
            }
            BeanUtils.copyProperties(c,deviceLedger);
            // é€šè¿‡å«ç¨Žå•价、数量、税率计算含税总价,不含税总价
            deviceLedger.setTaxIncludingPriceTotal(c.getTaxIncludingPriceUnit());
            deviceLedger.setNumber(BigDecimal.ONE);
            deviceLedger.setPlanRuntimeTime(DateUtils.toLocalDate(c.getPlanRuntimeTime()));
            deviceLedger.setUnTaxIncludingPriceTotal(deviceLedger.getTaxIncludingPriceTotal().divide(BigDecimal.ONE.add(c.getTaxRate()),2, RoundingMode.HALF_UP));
            deviceLedgerMapper.insert(deviceLedger);
        });
src/main/java/com/ruoyi/project/system/mapper/SysRoleMapper.java
@@ -1,6 +1,8 @@
package com.ruoyi.project.system.mapper;
import java.util.List;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.project.system.domain.SysRole;
/**
src/main/java/com/ruoyi/staff/controller/StaffOnJobController.java
@@ -1,6 +1,7 @@
package com.ruoyi.staff.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.framework.aspectj.lang.annotation.Log;
import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.domain.AjaxResult;
@@ -13,6 +14,7 @@
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import com.ruoyi.staff.dto.StaffOnJobExcelDto;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
@@ -105,6 +107,13 @@
        return AjaxResult.success(staffOnJobService.renewContract(id, staffContract));
    }
    @ApiOperation("下载模板")
    @PostMapping("/downloadTemplate")
    public void downloadTemplate(HttpServletResponse response) {
        ExcelUtil<StaffOnJobExcelDto> util = new ExcelUtil<>(StaffOnJobExcelDto.class);
        util.importTemplateExcel(response, "在职员工模板");
    }
    /**
     * åœ¨èŒå‘˜å·¥å¯¼å…¥
     */
src/main/java/com/ruoyi/staff/dto/StaffOnJobExcelDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,87 @@
package com.ruoyi.staff.dto;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.framework.aspectj.lang.annotation.Excel;
import com.ruoyi.staff.pojo.StaffEducation;
import com.ruoyi.staff.pojo.StaffEmergencyContact;
import com.ruoyi.staff.pojo.StaffWorkExperience;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;
@Data
public class StaffOnJobExcelDto {
    /**
     * çŠ¶æ€(0:离职;1:在职)
     */
    private Integer staffState = 1;
    /**
     * å‘˜å·¥ç¼–号
     */
    @Excel(name = "员工编号", cellType = Excel.ColumnType.STRING, sort = 2,prompt = "用户登录名")
    private String staffNo;
    /**
     * å‘˜å·¥å§“名
     */
    @Excel(name = "员工姓名", sort = 3,prompt = "用户昵称")
    private String staffName;
    /**
     * æ€§åˆ«
     */
    @Excel(name = "性别", sort = 4)
    private String sex;
    /**
     * éƒ¨é—¨åç§°
     */
    @Excel(name = "部门名称", sort = 5,prompt = "请前往系统查看有哪些部门可以绑定,严格按照部门名称绑定")
    private String sysDeptName;
    /**
     * è§’色
     */
    @Excel(name = "角色", sort = 6,prompt = "请前往系统查看有哪些角色可以绑定,严格按照角色名称绑定")
    private String roleName;
    /**
     * æ‰‹æœº
     */
    @Excel(name = "手机", sort = 13)
    private String phone;
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "合同开始时间")
    @Excel(name = "合同开始日期", width = 30, dateFormat = "yyyy-MM-dd", sort = 15)
    private Date contractStartTime;
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "合同结束时间")
    @Excel(name = "合同结束日期", width = 30, dateFormat = "yyyy-MM-dd", sort = 16)
    private Date contractEndTime;
    @ApiModelProperty(value = "合同期限")
    @Excel(name = "合同期限", sort = 17)
    private String contractTerm;
    @ApiModelProperty(value = "出生日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "出生日期", width = 30, dateFormat = "yyyy-MM-dd", sort = 18)
    private Date birthDate;
}
src/main/java/com/ruoyi/staff/service/impl/StaffOnJobServiceImpl.java
@@ -10,12 +10,17 @@
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.dto.WordDateDto;
import com.ruoyi.project.system.domain.SysDept;
import com.ruoyi.project.system.domain.SysPost;
import com.ruoyi.project.system.domain.SysRole;
import com.ruoyi.project.system.domain.SysUser;
import com.ruoyi.project.system.mapper.SysDeptMapper;
import com.ruoyi.project.system.mapper.SysPostMapper;
import com.ruoyi.project.system.mapper.SysRoleMapper;
import com.ruoyi.project.system.mapper.SysUserMapper;
import com.ruoyi.project.system.service.impl.SysUserServiceImpl;
import com.ruoyi.staff.dto.StaffOnJobDto;
import com.ruoyi.staff.dto.StaffOnJobExcelDto;
import com.ruoyi.staff.mapper.*;
import com.ruoyi.staff.pojo.*;
import com.ruoyi.staff.service.IStaffOnJobService;
@@ -46,6 +51,13 @@
    @Autowired
    private StaffOnJobMapper staffOnJobMapper;
    @Autowired
    private SysDeptMapper sysDeptMapper;
    @Autowired
    private SysRoleMapper sysRoleMapper;
    @Autowired
    private SysPostMapper sysPostMapper;
@@ -310,11 +322,38 @@
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public Boolean importData(MultipartFile file) {
        try {
            ExcelUtil<StaffOnJob> util = new ExcelUtil<>(StaffOnJob.class);
            List<StaffOnJob> staffOnJobs = util.importExcel(file.getInputStream());
            return saveOrUpdateBatch(staffOnJobs);
            ExcelUtil<StaffOnJobExcelDto> util = new ExcelUtil<>(StaffOnJobExcelDto.class);
            List<StaffOnJobExcelDto> staffOnJobs = util.importExcel(file.getInputStream());
            if (CollectionUtils.isEmpty(staffOnJobs)){
                return false;
            }
            // èŽ·å–æ‰€æœ‰éƒ¨é—¨æ•°æ®
            List<SysDept> sysDepts = sysDeptMapper.selectList(Wrappers.<SysDept>lambdaQuery().eq(SysDept::getDelFlag, 0));
            // èŽ·å–æ‰€æœ‰è§’è‰²æ•°æ®
            List<SysRole> sysRoles = sysRoleMapper.selectRoleAll();
            staffOnJobs.forEach(staffOnJob -> {
                StaffOnJobDto staffOnJobDto = new StaffOnJobDto();
                BeanUtils.copyProperties(staffOnJob, staffOnJobDto);
                // é€šè¿‡åç§°èŽ·å–éƒ¨é—¨id
                staffOnJobDto.setSysDeptId(// ... existing code ...
                        sysDepts.stream()
                            .filter(dept -> dept.getDeptName() != null && dept.getDeptName().equals(staffOnJob.getSysDeptName()))
                            .findFirst()
                            .map(SysDept::getDeptId)
                            .orElse(null)
                        );
                // é€šè¿‡åç§°èŽ·å–è§’è‰²id
                staffOnJobDto.setRoleId(sysRoles.stream()
                        .filter(role -> role.getRoleName() != null && role.getRoleName().equals(staffOnJob.getRoleName()))
                        .findFirst()
                        .map(SysRole::getRoleId)
                        .orElse( null));
                add(staffOnJobDto);
            });
            return true;
        } catch (Exception e) {
            e.printStackTrace();
            return false;
src/main/resources/mapper/system/SysRoleMapper.xml
@@ -62,6 +62,7 @@
    
    <select id="selectRoleAll" resultMap="SysRoleResult">
        <include refid="selectRoleVo"/>
        WHERE r.del_flag = '0'
    </select>
    
    <select id="selectRoleListByUserId" parameterType="Long" resultType="Long">