jiaosong
2023-08-14 3eca8e4741b06c6049fedccd5c0dea4e01b7aa5c
Merge remote-tracking branch 'origin/master'

# Conflicts:
# server/src/main/java/doumeemes/dao/business/model/SalaryParam.java
已添加2个文件
已修改12个文件
200 ■■■■■ 文件已修改
server/src/main/java/doumeemes/api/ext/WorkorderRecordExtController.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/doumeemes/biz/system/impl/SystemMenuBizImpl.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/doumeemes/dao/business/model/SalaryParam.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/doumeemes/dao/business/model/Workorder.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/doumeemes/dao/ext/WorkorderRecordExtMapper.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/doumeemes/dao/ext/dto/QuerySalaryStatisticDTO.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/doumeemes/dao/ext/dto/QueryWorkorderRecordExtDTO.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/doumeemes/dao/ext/vo/SalaryStatisticsListVO.java 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/doumeemes/dao/ext/vo/WorkorderRecordExtListVO.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/doumeemes/dao/system/model/SystemMenu.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/doumeemes/dao/system/vo/SystemMenuListVO.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/doumeemes/service/ext/WorkorderRecordExtService.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/doumeemes/service/ext/impl/WorkorderRecordExtServiceImpl.java 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/resources/mappers/WorkorderRecordExtMapper.xml 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/doumeemes/api/ext/WorkorderRecordExtController.java
@@ -14,7 +14,9 @@
import doumeemes.dao.business.model.WorkorderRecord;
import doumeemes.dao.ext.bean.EndCheckApBean;
import doumeemes.dao.ext.beanDto.QueryWStockDto;
import doumeemes.dao.ext.dto.QuerySalaryStatisticDTO;
import doumeemes.dao.ext.dto.QueryWorkorderRecordExtDTO;
import doumeemes.dao.ext.vo.SalaryStatisticsListVO;
import doumeemes.dao.ext.vo.WStockExtListForWorkorderVO;
import doumeemes.dao.ext.vo.WStockExtListVO;
import doumeemes.dao.ext.vo.WorkorderRecordExtListVO;
@@ -140,6 +142,12 @@
    public ApiResponse<PageData<WorkorderRecordExtListVO>> findPage (@RequestBody PageWrap<QueryWorkorderRecordExtDTO> pageWrap) {
        return ApiResponse.success(workorderRecordExtService.findPage(pageWrap));
    }
    @ApiOperation("工资报表统计分页查询")
    @PostMapping("/salaryStatistic")
    @RequiresPermissions("ext:workorderrecordext:query")
    public ApiResponse<PageData<SalaryStatisticsListVO>> salaryStatistic (@RequestBody PageWrap<QuerySalaryStatisticDTO> pageWrap) {
        return ApiResponse.success(workorderRecordExtService.salaryStatistic(pageWrap));
    }
    @ApiOperation("查询全部")
    @PostMapping("/all")
server/src/main/java/doumeemes/biz/system/impl/SystemMenuBizImpl.java
@@ -114,6 +114,7 @@
        for (SystemMenu menu : menus) {
            if(Constants.equalsInteger(menu.getType(),Constants.PlatType.companyH5) && StringUtils.isNotBlank(menu.getIcon())){
                menu.setIcon(rPath+menu.getIcon());
                menu.setResourcePath(rPath);
            }
            if (menu.getParentId() == null) {
                SystemMenuListVO rootMenu = new SystemMenuListVO();
@@ -126,6 +127,7 @@
        for (SystemMenuListVO child : rootMenus) {
            if(Constants.equalsInteger(child.getType(),Constants.PlatType.companyH5) && StringUtils.isNotBlank(child.getIcon())){
                child.setIcon(rPath+child.getIcon());
                child.setResourcePath(rPath);
            }
            this.fillChildren(child, menus);
        }
server/src/main/java/doumeemes/dao/business/model/SalaryParam.java
@@ -71,9 +71,12 @@
    @NotEmpty(message = "物料编码不能为空")
    private Integer materialId;
    @ApiModelProperty(value = "工资单价(元)")
    @ApiModelProperty(value = "工资结果(元)", example = "1")
    @ExcelColumn(name="工资结果(元)")
    private Integer salary;
    @ApiModelProperty(value = "工资单价(元)", example = "1")
    @ExcelColumn(name="工资单价(元)")
    private BigDecimal salary;
    private Integer salaryPrice;
    @ApiModelProperty(value = "标准数量")
    @ExcelColumn(name="标准数量")
server/src/main/java/doumeemes/dao/business/model/Workorder.java
@@ -230,10 +230,12 @@
    @ExcelColumn(name="报工时长(秒)")
    private Integer duration;
    @ApiModelProperty(value = "工资单价(分)", example = "1")
    @ExcelColumn(name="工资单价(分)")
    @ApiModelProperty(value = "工资结果(元)", example = "1")
    @ExcelColumn(name="工资结果(元)")
    private Integer salary;
    @ApiModelProperty(value = "工资单价(元)", example = "1")
    @ExcelColumn(name="工资单价(元)")
    private Integer salaryPrice;
    @ApiModelProperty(value = "标准数量", example = "1")
    @ExcelColumn(name="标准数量")
    private Integer salaryNum;
server/src/main/java/doumeemes/dao/ext/WorkorderRecordExtMapper.java
@@ -2,6 +2,8 @@
import doumeemes.dao.business.model.WorkorderRecord;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import doumeemes.dao.ext.dto.QuerySalaryStatisticDTO;
import doumeemes.dao.ext.vo.SalaryStatisticsListVO;
import doumeemes.dao.ext.vo.WOutboundRecordExtListVO;
import doumeemes.dao.ext.vo.WStockExtListForWorkorderVO;
import doumeemes.dao.ext.vo.WorkorderRecordExtListVO;
@@ -18,6 +20,7 @@
     * @date 2022/04/20 10:56
     */
    List<WorkorderRecordExtListVO> selectListNew(QueryWorkorderRecordExtDTO dto);
    List<SalaryStatisticsListVO> salaryStatistic(QuerySalaryStatisticDTO dto);
    List<WStockExtListForWorkorderVO> choiceWorkorderRecordUseStockList(QueryWorkorderRecordExtDTO dto);
server/src/main/java/doumeemes/dao/ext/dto/QuerySalaryStatisticDTO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,33 @@
package doumeemes.dao.ext.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import doumeemes.dao.business.dto.MaterialListDTO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
import java.util.List;
/**
 * @author æ±Ÿè¹„蹄
 * @date 2022/04/20 10:56
 */
@Data
@ApiModel("工资报表统计分页查询请求参数")
public class QuerySalaryStatisticDTO {
    @ApiModelProperty(value = "生产人员编码", example = "1")
    private Integer userId;
    @ApiModelProperty(value = "根组织编码", example = "1",hidden = true)
    private Integer rootDepartId;
    @ApiModelProperty(value = "开始时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date stateDate;
    @ApiModelProperty(value = "结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date endDate;
    @ApiModelProperty(value = "数据权限部门编码集合" ,hidden = true)
    private List<Integer> departIds;
}
server/src/main/java/doumeemes/dao/ext/dto/QueryWorkorderRecordExtDTO.java
@@ -644,9 +644,10 @@
    @ApiModelProperty(value = "报工时长(秒)", example = "1")
    private Integer duration;
    @ApiModelProperty(value = "工资单价(分)", example = "1")
    @ApiModelProperty(value = "工资结果(元)", example = "1")
    private Integer salary;
    @ApiModelProperty(value = "工资单价(元)", example = "1")
    private Integer salaryPrice;
    @ApiModelProperty(value = "标准数量", example = "1")
    private Integer salaryNum;
server/src/main/java/doumeemes/dao/ext/vo/SalaryStatisticsListVO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,49 @@
package doumeemes.dao.ext.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import doumeemes.core.annotation.excel.ExcelColumn;
import doumeemes.dao.business.model.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
 * @author æ±Ÿè¹„蹄
 * @date 2022/04/20 10:56
 */
@Data
@ApiModel("工资报表统计分页数据")
public class SalaryStatisticsListVO implements Serializable{
    @ApiModelProperty(value = "生产人员编码", example = "1")
    @ExcelColumn(name="生产人员编码")
    private Integer userId;
    @ApiModelProperty(value = "生产人员姓名")
    @ExcelColumn(name="生产人员姓名")
    private String userName;
    @ApiModelProperty(value = "所属部门编码", example = "1")
    @ExcelColumn(name="所属部门编码")
    private Integer departId;
    @ApiModelProperty(value = "所属部门名称")
    @ExcelColumn(name="所属部门名称")
    private String departName;
    @ApiModelProperty(value = "计件工资(分)", example = "1")
    @ExcelColumn(name="计件工资(分)")
    private BigDecimal jijianSalary;
    @ApiModelProperty(value = "计时工资(分)", example = "1")
    @ExcelColumn(name="计时工资(分)")
    private BigDecimal jishiSalary;
    @ApiModelProperty(value = "小计工资(分)", example = "1")
    @ExcelColumn(name="小计工资(分)")
    private BigDecimal totalSalary;
    @ApiModelProperty(value = "报工总单数,不包含工资为0的", example = "1")
    @ExcelColumn(name="报工总单数")
    private Integer num;
}
server/src/main/java/doumeemes/dao/ext/vo/WorkorderRecordExtListVO.java
@@ -230,9 +230,12 @@
    @ExcelColumn(name="报工时长(秒)")
    private Integer duration;
    @ApiModelProperty(value = "工资单价(分)", example = "1")
    @ExcelColumn(name="工资单价(分)")
    @ApiModelProperty(value = "工资结果(元)", example = "1")
    @ExcelColumn(name="工资结果(元)")
    private Integer salary;
    @ApiModelProperty(value = "工资单价(元)", example = "1")
    @ExcelColumn(name="工资单价(元)")
    private Integer salaryPrice;
    @ApiModelProperty(value = "标准数量", example = "1")
    @ExcelColumn(name="标准数量")
server/src/main/java/doumeemes/dao/system/model/SystemMenu.java
@@ -75,4 +75,8 @@
    @ApiModelProperty(value = "类型 0平台 1企业PC端 2企业手机端", example = "1")
    private Integer type;
    @ApiModelProperty(value = "文件访问前缀")
    @TableField(exist = false)
    private String resourcePath;
}
server/src/main/java/doumeemes/dao/system/vo/SystemMenuListVO.java
@@ -27,4 +27,6 @@
    @ApiModelProperty(value = "更新人信息")
    private SystemUser updateUserInfo;
    @ApiModelProperty(value = "文件访问前缀")
    private String resourcePath;
}
server/src/main/java/doumeemes/service/ext/WorkorderRecordExtService.java
@@ -6,7 +6,9 @@
import doumeemes.dao.business.model.Workorder;
import doumeemes.dao.business.model.WorkorderRecord;
import doumeemes.dao.ext.bean.EndCheckApBean;
import doumeemes.dao.ext.dto.QuerySalaryStatisticDTO;
import doumeemes.dao.ext.dto.QueryWorkorderRecordExtDTO;
import doumeemes.dao.ext.vo.SalaryStatisticsListVO;
import doumeemes.dao.ext.vo.WorkorderRecordExtListVO;
import javax.servlet.http.HttpServletResponse;
@@ -45,4 +47,5 @@
   void exportExcel(PageWrap<QueryWorkorderRecordExtDTO> pageWrap ,HttpServletResponse response);
   PageData<SalaryStatisticsListVO> salaryStatistic(PageWrap<QuerySalaryStatisticDTO> pageWrap);
}
server/src/main/java/doumeemes/service/ext/impl/WorkorderRecordExtServiceImpl.java
@@ -141,6 +141,42 @@
        }
        return PageData.from(new PageInfo<>(result));
    }
    @Override
    public  PageData<SalaryStatisticsListVO> salaryStatistic(PageWrap<QuerySalaryStatisticDTO> pageWrap) {
        LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
        if(!Constants.equalsInteger(user.getType(),Constants.USERTYPE.COM)){
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "对不起,您无权限进行该操作!");
        }
        //只能查看当前根组织的数据
        pageWrap.getModel().setRootDepartId(user.getRootDepartment().getId());
        pageWrap.getModel().setRootDepartId(user.getRootDepartment().getId());
        PageHelper.startPage(pageWrap.getPage(), pageWrap.getCapacity());
        //数据权限
        List<Integer> dataPermission = user.getDepartPermissionList();
        if(dataPermission!=null){
//            pageWrap.getModel().setUserId(user.getId());
//            pageWrap.getModel().setDepartIds(dataPermission);
           /*if(dataPermission.size() == 0){
                //只能看自己的(生产人员信息)
                //  pageWrap.getModel().setProUserId(user.getId());
                //需求变更 æŸ¥çœ‹æ•°æ®æƒé™èŒƒå›´å†…的数据(走创建人或者生产人员为我数据权限范围内);
                pageWrap.getModel().setCreateUser(user.getId());
            }else{
                //否则走数据权限
                pageWrap.getModel().setDepartIds(dataPermission);
            }*/
        }
        List<SalaryStatisticsListVO> result = workorderRecordExtMapper.salaryStatistic(pageWrap.getModel());
        if(result!=null){
            List<DepartmentExtListVO> allDepartList = RedisUtil.getObject(redisTemplate,Constants.RedisKeys.COM_DEPART_LIST_KEY+user.getCompany().getId(),ArrayList.class);
            for(SalaryStatisticsListVO model : result){
                //查询生产人员姓名
                initProUser(user,model,allDepartList);
            }
        }
        return PageData.from(new PageInfo<>(result));
    }
    private void initProUser(LoginUserInfo user, WorkorderRecordExtListVO data, List<DepartmentExtListVO> allDepartList) {
        if(data.getCreateUser() ==null){
@@ -157,6 +193,21 @@
            data.setProcedureName(comp.getName()+"-"+dName);
        }
    }
    private void initProUser(LoginUserInfo user, SalaryStatisticsListVO data, List<DepartmentExtListVO> allDepartList) {
        if(data.getUserId() ==null){
            return;
        }
        CompanyUser query=new CompanyUser();
        query.setUserId(data.getUserId());
        query.setRootDepartId(user.getRootDepartment().getId());
        query.setDeleted(Constants.ZERO);
        CompanyUser comp= companyUserExtMapper.selectOne(new QueryWrapper<>(query).last(" limit 1"));
        if(comp!=null){
            DepartmentExtListVO d = departmentExtService.getModelById(user.getCompany().getId(),comp.getDepartmentId(),allDepartList);
            String dName =d==null?"":StringUtils.defaultString(d.getName(),"");
            data.setUserName(comp.getName()+"-"+dName);
        }
    }
    @Override
    public List<WorkorderRecordExtListVO> findAll(QueryWorkorderRecordExtDTO pageWrap) {
        LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
server/src/main/resources/mappers/WorkorderRecordExtMapper.xml
@@ -431,6 +431,22 @@
    </where>
    limit 1
  </select>
  <select id="salaryStatistic" parameterType="doumeemes.dao.ext.dto.QuerySalaryStatisticDTO" resultType="doumeemes.dao.ext.vo.SalaryStatisticsListVO">
    select `CREATE_USER` ,sum(CASE  WHEN salary_type=0 THEN salary ELSE 0 END ) as jijiaSalry
    ,sum(CASE  WHEN salary_type=0 THEN  0 ELSE salary  END ) as jishiSalary
    ,count(id) as num
    ,sum(salary) as totalSalary
    from `workorder_record`
    where `DELETED` =0 and `SALARY` >0
    <if test="rootDepartId != null">
      AND  `ROOT_DEPART_ID` = #{rootDepartId}
    </if>
    <if test="userId != null">
      AND  `CREATE_USER` = #{userId}
    </if>
    group by  `CREATE_USER`
  </select>
  <select id="selectListNew" parameterType="doumeemes.dao.ext.dto.QueryWorkorderRecordExtDTO" resultMap="WorkorderRecordExtListVO">
    SELECT
      `a`.`ID`,
@@ -1427,6 +1443,7 @@
    RELOBJ_TYPE,
    `DURATION`,
    `SALARY`,
    `SALARY_PRICE`,
    `SALARY_NUM`,
    `SALARY_TIMES`,
    `SALARY_UNQUALIFIED`,
@@ -1471,6 +1488,7 @@
            #{item.relobjType},
            #{item.duration},
            #{item.salary},
            #{item.salaryPrice},
            #{item.salaryNum},
            #{item.salaryTimes},
            #{item.salaryUnqualified},