jiaosong
2023-08-14 b6c8cfb873fdb34e2a78acf8ce189f77d50c4be9
# 工资表配置表
已添加3个文件
已修改6个文件
302 ■■■■ 文件已修改
server/src/main/java/doumeemes/api/business/SalaryParamController.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/doumeemes/api/ext/SalaryParamExtController.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/doumeemes/dao/business/SalaryParamMapper.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/doumeemes/dao/business/model/SalaryParam.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/doumeemes/dao/business/vo/SalaryParamVO.java 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/doumeemes/dao/ext/dto/SalaryParamDTO.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/doumeemes/service/business/SalaryParamService.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/doumeemes/service/business/impl/SalaryParamServiceImpl.java 110 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/resources/mappers/SalaryParamMapper.xml 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/doumeemes/api/business/SalaryParamController.java
@@ -7,10 +7,11 @@
import doumeemes.core.model.PageWrap;
import doumeemes.core.model.PageData;
import doumeemes.dao.business.model.SalaryParam;
import doumeemes.dao.ext.dto.SalaryParamDTO;
import doumeemes.service.business.SalaryParamService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
@@ -33,7 +34,7 @@
    @PreventRepeat
    @ApiOperation("新建")
    @PostMapping("/create")
    @RequiresPermissions("business:salaryparam:create")
//    @RequiresPermissions("business:salaryparam:create")
    public ApiResponse create(@RequestBody SalaryParam salaryParam) {
        return ApiResponse.success(salaryParamService.create(salaryParam));
    }
@@ -70,14 +71,14 @@
    @ApiOperation("分页查询")
    @PostMapping("/page")
    @RequiresPermissions("business:salaryparam:query")
    public ApiResponse<PageData<SalaryParam>> findPage (@RequestBody PageWrap<SalaryParam> pageWrap) {
    public ApiResponse<PageData<SalaryParam>> findPage (@RequestBody PageWrap<SalaryParamDTO> pageWrap) {
        return ApiResponse.success(salaryParamService.findPage(pageWrap));
    }
    @ApiOperation("导出Excel")
    @PostMapping("/exportExcel")
    @RequiresPermissions("business:salaryparam:exportExcel")
    public void exportExcel (@RequestBody PageWrap<SalaryParam> pageWrap, HttpServletResponse response) {
    public void exportExcel (@RequestBody PageWrap<SalaryParamDTO> pageWrap, HttpServletResponse response) {
        ExcelExporter.build(SalaryParam.class).export(salaryParamService.findPage(pageWrap).getRecords(), "设置类-绩效工资配置表", response);
    }
server/src/main/java/doumeemes/api/ext/SalaryParamExtController.java
@@ -7,6 +7,7 @@
import doumeemes.core.model.PageData;
import doumeemes.core.model.PageWrap;
import doumeemes.dao.business.model.SalaryParam;
import doumeemes.dao.ext.dto.SalaryParamDTO;
import doumeemes.service.business.SalaryParamService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -33,7 +34,7 @@
    @PreventRepeat
    @ApiOperation("新建")
    @PostMapping("/create")
    @RequiresPermissions("business:salaryparam:create")
//    @RequiresPermissions("business:salaryparam:create")
    public ApiResponse create(@RequestBody SalaryParam salaryParam) {
        return ApiResponse.success(salaryParamService.create(salaryParam));
    }
@@ -70,14 +71,14 @@
    @ApiOperation("分页查询")
    @PostMapping("/page")
    @RequiresPermissions("business:salaryparam:query")
    public ApiResponse<PageData<SalaryParam>> findPage (@RequestBody PageWrap<SalaryParam> pageWrap) {
    public ApiResponse<PageData<SalaryParam>> findPage (@RequestBody PageWrap<SalaryParamDTO> pageWrap) {
        return ApiResponse.success(salaryParamService.findPage(pageWrap));
    }
    @ApiOperation("导出Excel")
    @PostMapping("/exportExcel")
    @RequiresPermissions("business:salaryparam:exportExcel")
    public void exportExcel (@RequestBody PageWrap<SalaryParam> pageWrap, HttpServletResponse response) {
    public void exportExcel (@RequestBody PageWrap<SalaryParamDTO> pageWrap, HttpServletResponse response) {
        ExcelExporter.build(SalaryParam.class).export(salaryParamService.findPage(pageWrap).getRecords(), "设置类-绩效工资配置表", response);
    }
server/src/main/java/doumeemes/dao/business/SalaryParamMapper.java
@@ -1,7 +1,9 @@
package doumeemes.dao.business;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import doumeemes.dao.business.model.SalaryParam;
import doumeemes.dao.ext.dto.SalaryParamDTO;
/**
 * @author æ±Ÿè¹„蹄
@@ -9,4 +11,7 @@
 */
public interface SalaryParamMapper extends BaseMapper<SalaryParam> {
    IPage<SalaryParam> selectPage(IPage<SalaryParam> page, SalaryParamDTO model);
}
server/src/main/java/doumeemes/dao/business/model/SalaryParam.java
@@ -8,6 +8,9 @@
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import javax.validation.constraints.NotEmpty;
import java.math.BigDecimal;
import java.util.Date;
/**
@@ -20,57 +23,59 @@
@TableName("`salary_param`")
public class SalaryParam {
    @ApiModelProperty(value = "主键", example = "1")
    @ApiModelProperty(value = "主键")
    @ExcelColumn(name="主键")
    @TableId(value = "id",type = IdType.AUTO)
    private Integer id;
    @ApiModelProperty(value = "是否已删除 0未删除 1已删除", example = "1")
    @ApiModelProperty(value = "是否已删除 0未删除 1已删除")
    @ExcelColumn(name="是否已删除 0未删除 1已删除")
    private Byte deleted;
    @ApiModelProperty(value = "创建人编码", example = "1")
    @ApiModelProperty(value = "创建人编码")
    @ExcelColumn(name="创建人编码")
    private Integer createUser;
    @ApiModelProperty(value = "创建时间")
    @ExcelColumn(name="创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date createTime;
    @ApiModelProperty(value = "更新人编码", example = "1")
    @ApiModelProperty(value = "更新人编码")
    @ExcelColumn(name="更新人编码")
    private Integer updateUser;
    @ApiModelProperty(value = "更新时间")
    @ExcelColumn(name="更新时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date updateTime;
    @ApiModelProperty(value = "备注")
    @ExcelColumn(name="备注")
    private String remark;
    @ApiModelProperty(value = "主组织编码(关联department表根组织)", example = "1")
    @ApiModelProperty(value = "主组织编码(关联department表根组织)")
    @ExcelColumn(name="主组织编码(关联department表根组织)")
    private Integer rootDepartId;
    @ApiModelProperty(value = "工厂编码(关联department表)", example = "1")
    @ApiModelProperty(value = "工厂编码(关联department表)")
    @ExcelColumn(name="工厂编码(关联department表)")
    @NotEmpty(message = "工厂编码不能为空")
    private Integer departId;
    @ApiModelProperty(value = "工序编码(关联procedure表)", example = "1")
    @ApiModelProperty(value = "工序编码(关联procedure表)")
    @ExcelColumn(name="工序编码(关联procedure表)")
    @NotEmpty(message = "工序编码不能为空")
    private Integer procedureId;
    @ApiModelProperty(value = "bom编码(关联bom表)", example = "1")
    @ApiModelProperty(value = "bom编码(关联bom表)")
    @ExcelColumn(name="bom编码(关联bom表)")
    private Integer bomId;
    @NotEmpty(message = "物料编码不能为空")
    private Integer materialId;
    @ApiModelProperty(value = "工资单价(元)", example = "1")
    @ApiModelProperty(value = "工资单价(元)")
    @ExcelColumn(name="工资单价(元)")
    private Integer salary;
    private BigDecimal salary;
    @ApiModelProperty(value = "标准数量", example = "1")
    @ApiModelProperty(value = "标准数量")
    @ExcelColumn(name="标准数量")
    private Integer num;
@@ -78,11 +83,11 @@
    @ExcelColumn(name="标准时长(秒)")
    private String times;
    @ApiModelProperty(value = "不良品是否计入 0否 1是", example = "1")
    @ApiModelProperty(value = "不良品是否计入 0否 1是")
    @ExcelColumn(name="不良品是否计入 0否 1是")
    private Integer unqualified;
    @ApiModelProperty(value = "计价方式 0计件 1计时", example = "1")
    @ApiModelProperty(value = "计价方式 0计件 1计时")
    @ExcelColumn(name="计价方式 0计件 1计时")
    private Integer type;
server/src/main/java/doumeemes/dao/business/vo/SalaryParamVO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,71 @@
package doumeemes.dao.business.vo;
import cn.afterturn.easypoi.excel.annotation.Excel;
import doumeemes.core.annotation.excel.ExcelColumn;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotEmpty;
import java.math.BigDecimal;
@Data
@ApiModel("")
public class SalaryParamVO {
    @ApiModelProperty(value = "主键")
    private Integer id;
    @ApiModelProperty(value = "主组织编码(关联department表根组织)")
    @ExcelColumn(name="主组织编码(关联department表根组织)")
    private Integer rootDepartId;
    @ApiModelProperty(value = "工厂编码(关联department表)")
    @ExcelColumn(name="工厂编码(关联department表)")
    @NotEmpty(message = "工厂编码不能为空")
    private Integer departId;
    @ApiModelProperty(value = "工序编码(关联procedure表)")
    @ExcelColumn(name="工序编码(关联procedure表)")
    @NotEmpty(message = "工序编码不能为空")
    private Integer procedureId;
    @ApiModelProperty(value = "工序编码(关联procedure表)")
    @ExcelColumn(name="工序编码(关联procedure表)")
    @NotEmpty(message = "工序编码不能为空")
    private Integer procedureCode;
    @ApiModelProperty(value = "工序编码(关联procedure表)")
    @ExcelColumn(name="工序编码(关联procedure表)")
    private String procedureName;
    @ApiModelProperty(value = "产品名称" )
    @Excel(name="产品名称",orderNum ="3")
    private String materialName;
    @ApiModelProperty(value = "产品编码" )
    @Excel(name="产品编码",orderNum ="4")
    private String materialCode;
    @ApiModelProperty(value = "物料编码(关联material_distribute表)", example = "1")
    private Integer materialId;
    @ApiModelProperty(value = "工资单价(元)")
    @ExcelColumn(name="工资单价(元)")
    private BigDecimal salary;
    @ApiModelProperty(value = "标准数量")
    @ExcelColumn(name="标准数量")
    private Integer num;
    @ApiModelProperty(value = "标准时长(秒)")
    @ExcelColumn(name="标准时长(秒)")
    private String times;
    @ApiModelProperty(value = "不良品是否计入 0否 1是")
    @ExcelColumn(name="不良品是否计入 0否 1是")
    private Integer unqualified;
    @ApiModelProperty(value = "计价方式 0计件 1计时")
    @ExcelColumn(name="计价方式 0计件 1计时")
    private Integer type;
}
server/src/main/java/doumeemes/dao/ext/dto/SalaryParamDTO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
package doumeemes.dao.ext.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * @author æ±Ÿè¹„蹄
 * @date 2022/04/20 10:56
 */
@Data
@ApiModel("绩效工资配置")
public class SalaryParamDTO {
    @ApiModelProperty(value = "物料名称或编码")
    private String keyWord;
    @ApiModelProperty(value = "工序名称")
    private String procedureName;
    @ApiModelProperty(value = "计价方式")
    private String type;
}
server/src/main/java/doumeemes/service/business/SalaryParamService.java
@@ -3,6 +3,8 @@
import doumeemes.core.model.PageData;
import doumeemes.core.model.PageWrap;
import doumeemes.dao.business.model.SalaryParam;
import doumeemes.dao.ext.dto.SalaryParamDTO;
import java.util.List;
/**
@@ -14,7 +16,7 @@
    /**
     * åˆ›å»º
     *
     *
     * @param salaryParam å®žä½“对象
     * @return Integer
     */
@@ -48,6 +50,14 @@
     */
    void updateById(SalaryParam salaryParam);
    /**
     * ä¸»é”®æ›´æ–°
     *
     * @param salaryParam å®žä½“对象
     */
    void update(SalaryParam salaryParam);
    /**
     * æ‰¹é‡ä¸»é”®æ›´æ–°
     *
@@ -78,14 +88,14 @@
     * @return List<SalaryParam>
     */
    List<SalaryParam> findList(SalaryParam salaryParam);
    /**
     * åˆ†é¡µæŸ¥è¯¢
     *
     * @param pageWrap åˆ†é¡µå¯¹è±¡
     * @return PageData<SalaryParam>
     */
    PageData<SalaryParam> findPage(PageWrap<SalaryParam> pageWrap);
    PageData<SalaryParam> findPage(PageWrap<SalaryParamDTO> pageWrap);
    /**
     * æ¡ä»¶ç»Ÿè®¡
server/src/main/java/doumeemes/service/business/impl/SalaryParamServiceImpl.java
@@ -1,19 +1,24 @@
package doumeemes.service.business.impl;
import doumeemes.core.model.LoginUserInfo;
import doumeemes.core.model.PageData;
import doumeemes.core.model.PageWrap;
import doumeemes.core.utils.Constants;
import doumeemes.core.utils.Utils;
import doumeemes.dao.business.SalaryParamMapper;
import doumeemes.dao.business.model.SalaryParam;
import doumeemes.dao.ext.dto.SalaryParamDTO;
import doumeemes.service.business.SalaryParamService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.shiro.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.Date;
import java.util.List;
/**
@@ -29,7 +34,25 @@
    @Override
    public Integer create(SalaryParam salaryParam) {
        salaryParamMapper.insert(salaryParam);
        LoginUserInfo principal = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
        SalaryParam insert = new SalaryParam();
        insert.setDeleted((byte) Constants.ZERO);
        insert.setCreateUser(principal.getId());
        insert.setCreateTime(new Date());
        insert.setUpdateUser(principal.getId());
        insert.setUpdateTime(new Date());
        insert.setRemark(salaryParam.getRemark());
        insert.setRootDepartId(salaryParam.getRootDepartId());
        insert.setDepartId(salaryParam.getDepartId());
        insert.setProcedureId(salaryParam.getProcedureId());
        insert.setMaterialId(salaryParam.getMaterialId());
        insert.setSalary(salaryParam.getSalary());
        insert.setNum(salaryParam.getNum());
        insert.setTimes(salaryParam.getTimes());
        insert.setUnqualified(salaryParam.getUnqualified());
        insert.setType(salaryParam.getType());
        salaryParamMapper.insert(insert);
        return salaryParam.getId();
    }
@@ -58,6 +81,25 @@
    }
    @Override
    public void update(SalaryParam salaryParam) {
        LoginUserInfo principal = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
        UpdateWrapper<SalaryParam> wrapper = new UpdateWrapper<>();
        wrapper.lambda()
                .eq(SalaryParam::getId,salaryParam.getId())
                .set(SalaryParam::getUpdateTime,new Date())
                .set(SalaryParam::getUpdateUser,principal.getId())
                .set(SalaryParam::getType,salaryParam.getType())
                .set(SalaryParam::getDepartId,salaryParam.getDepartId())
                .set(SalaryParam::getMaterialId,salaryParam.getMaterialId())
                .set(SalaryParam::getProcedureId,salaryParam.getProcedureId())
                .set(SalaryParam::getSalary,salaryParam.getSalary())
                .set(SalaryParam::getNum,salaryParam.getNum())
                .set(SalaryParam::getTimes,salaryParam.getTimes())
                .set(SalaryParam::getUnqualified,salaryParam.getUnqualified());
        salaryParamMapper.update(null,wrapper);
    }
    @Override
    public void updateByIdInBatch(List<SalaryParam> salaryParams) {
        if (CollectionUtils.isEmpty(salaryParams)) {
            return;
@@ -83,70 +125,12 @@
        QueryWrapper<SalaryParam> wrapper = new QueryWrapper<>(salaryParam);
        return salaryParamMapper.selectList(wrapper);
    }
    @Override
    public PageData<SalaryParam> findPage(PageWrap<SalaryParam> pageWrap) {
    public PageData<SalaryParam> findPage(PageWrap<SalaryParamDTO> pageWrap) {
        IPage<SalaryParam> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
        QueryWrapper<SalaryParam> queryWrapper = new QueryWrapper<>();
        Utils.MP.blankToNull(pageWrap.getModel());
        if (pageWrap.getModel().getId() != null) {
            queryWrapper.lambda().eq(SalaryParam::getId, pageWrap.getModel().getId());
        }
        if (pageWrap.getModel().getDeleted() != null) {
            queryWrapper.lambda().eq(SalaryParam::getDeleted, pageWrap.getModel().getDeleted());
        }
        if (pageWrap.getModel().getCreateUser() != null) {
            queryWrapper.lambda().eq(SalaryParam::getCreateUser, pageWrap.getModel().getCreateUser());
        }
        if (pageWrap.getModel().getCreateTime() != null) {
            queryWrapper.lambda().ge(SalaryParam::getCreateTime, Utils.Date.getStart(pageWrap.getModel().getCreateTime()));
            queryWrapper.lambda().le(SalaryParam::getCreateTime, Utils.Date.getEnd(pageWrap.getModel().getCreateTime()));
        }
        if (pageWrap.getModel().getUpdateUser() != null) {
            queryWrapper.lambda().eq(SalaryParam::getUpdateUser, pageWrap.getModel().getUpdateUser());
        }
        if (pageWrap.getModel().getUpdateTime() != null) {
            queryWrapper.lambda().ge(SalaryParam::getUpdateTime, Utils.Date.getStart(pageWrap.getModel().getUpdateTime()));
            queryWrapper.lambda().le(SalaryParam::getUpdateTime, Utils.Date.getEnd(pageWrap.getModel().getUpdateTime()));
        }
        if (pageWrap.getModel().getRemark() != null) {
            queryWrapper.lambda().eq(SalaryParam::getRemark, pageWrap.getModel().getRemark());
        }
        if (pageWrap.getModel().getRootDepartId() != null) {
            queryWrapper.lambda().eq(SalaryParam::getRootDepartId, pageWrap.getModel().getRootDepartId());
        }
        if (pageWrap.getModel().getDepartId() != null) {
            queryWrapper.lambda().eq(SalaryParam::getDepartId, pageWrap.getModel().getDepartId());
        }
        if (pageWrap.getModel().getProcedureId() != null) {
            queryWrapper.lambda().eq(SalaryParam::getProcedureId, pageWrap.getModel().getProcedureId());
        }
        if (pageWrap.getModel().getBomId() != null) {
            queryWrapper.lambda().eq(SalaryParam::getBomId, pageWrap.getModel().getBomId());
        }
        if (pageWrap.getModel().getSalary() != null) {
            queryWrapper.lambda().eq(SalaryParam::getSalary, pageWrap.getModel().getSalary());
        }
        if (pageWrap.getModel().getNum() != null) {
            queryWrapper.lambda().eq(SalaryParam::getNum, pageWrap.getModel().getNum());
        }
        if (pageWrap.getModel().getTimes() != null) {
            queryWrapper.lambda().eq(SalaryParam::getTimes, pageWrap.getModel().getTimes());
        }
        if (pageWrap.getModel().getUnqualified() != null) {
            queryWrapper.lambda().eq(SalaryParam::getUnqualified, pageWrap.getModel().getUnqualified());
        }
        if (pageWrap.getModel().getType() != null) {
            queryWrapper.lambda().eq(SalaryParam::getType, pageWrap.getModel().getType());
        }
        for(PageWrap.SortData sortData: pageWrap.getSorts()) {
            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
                queryWrapper.orderByDesc(sortData.getProperty());
            } else {
                queryWrapper.orderByAsc(sortData.getProperty());
            }
        }
        return PageData.from(salaryParamMapper.selectPage(page, queryWrapper));
        SalaryParamDTO model = pageWrap.getModel();
        return PageData.from(salaryParamMapper.selectPage(page, model));
    }
    @Override
server/src/main/resources/mappers/SalaryParamMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
<?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="doumeemes.dao.business.SalaryParamMapper">
    <select id="selectPage" resultType="doumeemes.dao.business.model.SalaryParam">
        SELECT
            sp.*,
            m.`NAME` as materialName,
            p.`NAME` as proceduresName
        from
            salary_param sp
                LEFT JOIN procedures p on p.ID = sp.PROCEDURE_ID
                LEFT JOIN material m on m.ID = bom.MATERIAL_ID
        <where>
            <if test="keyWord != null and keyWord != ''">
            p`NAME` like concat('%',#{keyWord},'%')
            or p.`CODE` = #{keyWord}</if>
            <if test="procedureName != null and procedureName = ''"> and p.`NAME` like concat('%',#{procedureName},'%')</if>
            <if test="type != null"> and sp.`TYPE` = #{type}</if>
        </where>
    </select>
</mapper>