jiaosong
2023-08-14 7fdf35a2364c8482c5056a1c932e1501518f943b
Merge branch 'master' of ssh://139.186.142.91:29418/productDev/dmMes
已添加1个文件
已修改9个文件
194 ■■■■ 文件已修改
log/eva.log 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/doumeemes/api/ext/WorkorderRecordExtController.java 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/doumeemes/core/annotation/excel/ExcelExporter.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/doumeemes/dao/ext/WorkorderRecordExtMapper.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/doumeemes/dao/ext/dto/QuerySalaryStatisticDTO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/doumeemes/dao/ext/vo/SalaryStatisticsListVO.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/doumeemes/service/ext/WorkorderRecordExtService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/doumeemes/service/ext/impl/WorkorderRecordExtServiceImpl.java 88 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/doumeemes/service/system/impl/SystemPermissionServiceImpl.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/resources/mappers/WorkorderRecordExtMapper.xml 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
log/eva.log
server/src/main/java/doumeemes/api/ext/WorkorderRecordExtController.java
@@ -15,11 +15,9 @@
import doumeemes.dao.ext.bean.EndCheckApBean;
import doumeemes.dao.ext.beanDto.QueryWStockDto;
import doumeemes.dao.ext.dto.QuerySalaryStatisticDTO;
import doumeemes.dao.ext.dto.QueryUserSalaryListDTO;
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;
import doumeemes.dao.ext.vo.*;
import doumeemes.service.business.WorkorderRecordService;
import doumeemes.service.ext.WorkorderExtService;
import doumeemes.service.ext.WorkorderRecordExtService;
@@ -142,6 +140,12 @@
    public ApiResponse<PageData<WorkorderRecordExtListVO>> findPage (@RequestBody PageWrap<QueryWorkorderRecordExtDTO> pageWrap) {
        return ApiResponse.success(workorderRecordExtService.findPage(pageWrap));
    }
    @ApiOperation("员工绩效分页查询")
    @PostMapping("/userSalary")
    @RequiresPermissions("ext:workorderrecordext:query")
    public ApiResponse<PageData<UserSalaryListVO>> userSalaryPage (@RequestBody PageWrap<QueryUserSalaryListDTO> pageWrap) {
        return ApiResponse.success(workorderRecordExtService.userSalaryPage(pageWrap));
    }
    @ApiOperation("工资报表统计分页查询")
    @PostMapping("/salaryStatistic")
    @RequiresPermissions("ext:workorderrecordext:query")
@@ -171,6 +175,16 @@
    public void exportExcel (@RequestBody PageWrap<QueryWorkorderRecordExtDTO> pageWrap, HttpServletResponse response) {
        workorderRecordExtService.exportExcel(pageWrap,response);
    }
    @ApiOperation("导出员工绩效明细")
    @PostMapping("/exportUserSalary")
    public void exportUserSalary (@RequestBody PageWrap<QueryUserSalaryListDTO> pageWrap, HttpServletResponse response) {
        workorderRecordExtService.exportUserSalary(pageWrap,response);
    }
    @ApiOperation("导出工资报表")
    @PostMapping("/exportSalaryStatistics")
    public void exportSalaryStatistics (@RequestBody PageWrap<QuerySalaryStatisticDTO> pageWrap, HttpServletResponse response) {
        workorderRecordExtService.exportSalaryStatistics(pageWrap,response);
    }
    @ApiOperation("根据ID查询")
    @GetMapping("/{id}")
server/src/main/java/doumeemes/core/annotation/excel/ExcelExporter.java
@@ -2,6 +2,8 @@
import doumeemes.core.constants.ResponseStatus;
import doumeemes.core.exception.BusinessException;
import doumeemes.dao.ext.vo.UserBaseInfoVO;
import doumeemes.dao.ext.vo.UserSalaryListVO;
import lombok.AllArgsConstructor;
import lombok.Data;
import org.apache.commons.lang3.BooleanUtils;
@@ -170,6 +172,10 @@
        return new ArrayList<>(sortedFields.values());
    }
    public static void main(String[] args) {
        ExcelExporter m = new ExcelExporter();
        ExcelExporter.build(UserSalaryListVO.class).getColumns();
    }
    /**
     * 配置数据单元格
     */
server/src/main/java/doumeemes/dao/ext/WorkorderRecordExtMapper.java
@@ -3,10 +3,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;
import doumeemes.dao.ext.dto.QueryUserSalaryListDTO;
import doumeemes.dao.ext.vo.*;
import doumeemes.dao.ext.dto.QueryWorkorderRecordExtDTO;
import io.lettuce.core.dynamic.annotation.Param;
@@ -38,4 +36,5 @@
    List<WorkorderRecordExtListVO> checkIsWork(@Param("ids")String ids);
    List<UserSalaryListVO> userSalaryPage(QueryUserSalaryListDTO model);
}
server/src/main/java/doumeemes/dao/ext/dto/QuerySalaryStatisticDTO.java
@@ -22,7 +22,7 @@
    private Integer rootDepartId;
    @ApiModelProperty(value = "开始时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date stateDate;
    private Date startDate;
    @ApiModelProperty(value = "结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date endDate;
server/src/main/java/doumeemes/dao/ext/vo/SalaryStatisticsListVO.java
@@ -18,21 +18,22 @@
@Data
@ApiModel("工资报表统计分页数据")
public class SalaryStatisticsListVO implements Serializable{
    @ApiModelProperty(value = "生产人员编码", example = "1")
    @ExcelColumn(name="生产人员编码")
    private Integer userId;
    @ApiModelProperty(value = "生产人员姓名")
    @ApiModelProperty(value = "生成人员信息")
    private UserBaseInfoVO userInfo;
    @ApiModelProperty(value = "生产人员姓名",hidden = true)
    @ExcelColumn(name="生产人员姓名")
    private String userName;
    @ApiModelProperty(value = "所属部门编码", example = "1")
    @ApiModelProperty(value = "所属部门编码", example = "1",hidden = true)
    @ExcelColumn(name="所属部门编码")
    private Integer departId;
    @ApiModelProperty(value = "所属部门名称")
    @ApiModelProperty(value = "所属部门名称",hidden = true)
    @ExcelColumn(name="所属部门名称")
    private String departName;
    @ApiModelProperty(value = "计件工资(分)", example = "1")
    @ExcelColumn(name="计件工资(分)")
    private BigDecimal jijianSalary;
server/src/main/java/doumeemes/service/ext/WorkorderRecordExtService.java
@@ -7,8 +7,10 @@
import doumeemes.dao.business.model.WorkorderRecord;
import doumeemes.dao.ext.bean.EndCheckApBean;
import doumeemes.dao.ext.dto.QuerySalaryStatisticDTO;
import doumeemes.dao.ext.dto.QueryUserSalaryListDTO;
import doumeemes.dao.ext.dto.QueryWorkorderRecordExtDTO;
import doumeemes.dao.ext.vo.SalaryStatisticsListVO;
import doumeemes.dao.ext.vo.UserSalaryListVO;
import doumeemes.dao.ext.vo.WorkorderRecordExtListVO;
import javax.servlet.http.HttpServletResponse;
@@ -48,4 +50,10 @@
   void exportExcel(PageWrap<QueryWorkorderRecordExtDTO> pageWrap ,HttpServletResponse response);
   PageData<SalaryStatisticsListVO> salaryStatistic(PageWrap<QuerySalaryStatisticDTO> pageWrap);
    PageData<UserSalaryListVO> userSalaryPage(PageWrap<QueryUserSalaryListDTO> pageWrap);
    void exportUserSalary(PageWrap<QueryUserSalaryListDTO> pageWrap, HttpServletResponse response);
    void exportSalaryStatistics(PageWrap<QuerySalaryStatisticDTO> pageWrap, HttpServletResponse response);
}
server/src/main/java/doumeemes/service/ext/impl/WorkorderRecordExtServiceImpl.java
@@ -149,30 +149,40 @@
        }
        //只能查看当前根组织的数据
        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);
//                model.setUserName(initProUser(user,model.getUserId(),allDepartList));
                    model.setUserInfo(initProUser(user,model.getUserId(),allDepartList));
            }
        }
        return PageData.from(new PageInfo<>(result));
    }
    @Override
    public  PageData<UserSalaryListVO> userSalaryPage(PageWrap<QueryUserSalaryListDTO> 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();
        List<UserSalaryListVO> result = workorderRecordExtMapper.userSalaryPage(pageWrap.getModel());
        if(result!=null){
            List<DepartmentExtListVO> allDepartList = RedisUtil.getObject(redisTemplate,Constants.RedisKeys.COM_DEPART_LIST_KEY+user.getCompany().getId(),ArrayList.class);
            for(UserSalaryListVO model : result){
                //查询生产人员姓名
                model.setUserInfo(initProUser(user,model.getUserId(),allDepartList));
                if(Constants.formatBigdecimal4Float(model.getNum()).compareTo(new BigDecimal(0))>1){
                    model.setRate(Constants.formatBigdecimal4Float(model.getQualifiedNum()).divide(model.getNum()).multiply(new BigDecimal(100)));
                }
            }
        }
        return PageData.from(new PageInfo<>(result));
@@ -193,20 +203,28 @@
            data.setProcedureName(comp.getName()+"-"+dName);
        }
    }
    private void initProUser(LoginUserInfo user, SalaryStatisticsListVO data, List<DepartmentExtListVO> allDepartList) {
        if(data.getUserId() ==null){
            return;
    private UserBaseInfoVO initProUser(LoginUserInfo user, Integer userId, List<DepartmentExtListVO> allDepartList) {
        if(userId ==null){
            return null;
        }
        CompanyUser query=new CompanyUser();
        query.setUserId(data.getUserId());
        query.setUserId(userId);
        query.setRootDepartId(user.getRootDepartment().getId());
        query.setDeleted(Constants.ZERO);
        CompanyUser comp= companyUserExtMapper.selectOne(new QueryWrapper<>(query).last(" limit 1"));
        if(comp!=null){
            UserBaseInfoVO userinfo = new UserBaseInfoVO();
            DepartmentExtListVO d = departmentExtService.getModelById(user.getCompany().getId(),comp.getDepartmentId(),allDepartList);
            String dName =d==null?"":StringUtils.defaultString(d.getName(),"");
            data.setUserName(comp.getName()+"-"+dName);
            userinfo.setNameAndDepart (comp.getName()+"-"+dName);
            userinfo.setDepartId(d.getId());
            userinfo.setUserId(userId);
            userinfo.setUserName(comp.getName());
            userinfo.setDepartName(d.getName());
            return  userinfo;
        }
        return null;
    }
    @Override
    public List<WorkorderRecordExtListVO> findAll(QueryWorkorderRecordExtDTO pageWrap) {
@@ -1655,6 +1673,30 @@
    @Override
    public void exportUserSalary(PageWrap<QueryUserSalaryListDTO> pageWrap, HttpServletResponse response) {
        List<UserSalaryListVO> result=this.userSalaryPage(pageWrap).getRecords();
        for(UserSalaryListVO model : result) {
            if(model.getUserInfo()!=null){
                model.setUserName(model.getUserInfo().getUserName());
                model.setDepartName(model.getUserInfo().getDepartName());
            }
        }
        ExcelExporter.build(UserSalaryListVO.class).export(result, "员工绩效明细"+System.currentTimeMillis(), response);
    }
    @Override
    public void exportSalaryStatistics(PageWrap<QuerySalaryStatisticDTO> pageWrap, HttpServletResponse response){
        List<SalaryStatisticsListVO> result=this.salaryStatistic(pageWrap).getRecords();
        for(SalaryStatisticsListVO model : result) {
            if(model.getUserInfo()!=null){
                model.setUserName(model.getUserInfo().getUserName());
                model.setDepartName(model.getUserInfo().getDepartName());
            }
        }
        ExcelExporter.build(SalaryStatisticsListVO.class).export(result, "工资报表"+System.currentTimeMillis(), response);
    }
    @Override
    public void exportExcel(PageWrap<QueryWorkorderRecordExtDTO> pageWrap, HttpServletResponse response) {
        List<WorkorderRecordExtListVO> result=this.findPage(pageWrap).getRecords();
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
server/src/main/java/doumeemes/service/system/impl/SystemPermissionServiceImpl.java
@@ -116,7 +116,11 @@
        if(Constants.equalsInteger(user.getType(),Constants.USERTYPE.COM)){
            pageWrap.getModel().setType(Constants.USERTYPE.COM);
        }else{
            pageWrap.getModel().setType(Constants.USERTYPE.PLAT);
            if(pageWrap.getModel().getType()!=null){
                //走查询
            }else{
                pageWrap.getModel().setType(Constants.USERTYPE.PLAT);
            }
        }
        PageHelper.startPage(pageWrap.getPage(), pageWrap.getCapacity());
        return PageData.from(new PageInfo<>(systemPermissionMapper.selectManageList(pageWrap.getModel(), pageWrap.getOrderByClause())));
server/src/main/resources/mappers/WorkorderRecordExtMapper.xml
@@ -431,8 +431,42 @@
    </where>
    limit 1
  </select>
  <select id="userSalaryPage" parameterType="doumeemes.dao.ext.dto.QueryUserSalaryListDTO" resultType="doumeemes.dao.ext.vo.UserSalaryListVO">
    select a.WORKORDER_ID,b.`CODE` as workorderCode,c.`NAME` as materialName,c.code as materialCode
    ,d.name as unitName,a.PROCEDURE_ID,f.`NAME` as procedureName,a.CREATE_USER as userId
    ,sum(a.QUALIFIED_NUM) as qualifiedNum
    ,sum(a.UNQUALIFIED_NUM) as unQualifiedNum
    ,sum(a.num) as NUM
    from `workorder_record` a
    left join workorder b on a.WORKORDER_ID=b.id
    left join material_distribute m on b.MATERIAL_ID = m.ID
    left join material c on m.MATERIAL_ID = c.ID
    left join unit d on a.UNIT_ID = d.ID
    left join procedures f on a.PROCEDURE_ID =f.ID
    where a.DELETED = 0
    <if test="rootDepartId != null">
      AND  a.`ROOT_DEPART_ID` = #{rootDepartId}
    </if>
    <if test="procedureId != null">
      AND  a.`PROCEDURE_ID` = #{procedureId}
    </if>
    <if test="materialName != null and materialName !=''">
      AND  (c.`name` like concat('%', #{materialName},'%') or c.`code` like concat('%', #{materialName},'%'))
    </if>
    <if test="startDate != null">
      AND  a.`CREATE_TIME` >= #{startDate}
    </if>
    <if test="endDate != null">
      AND   #{endDate} >= a.`CREATE_TIME`
    </if>
    <if test="userId != null">
      AND  a.`CREATE_USER` = #{userId}
    </if>
    group by  a.`WORKORDER_ID`
    order by a.CREATE_TIME desc
  </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
    select `CREATE_USER` as userId ,sum(CASE  WHEN salary_type=0 THEN salary ELSE 0 END ) as jijianSalary
    ,sum(CASE  WHEN salary_type=0 THEN  0 ELSE salary  END ) as jishiSalary
    ,count(id) as num
    ,sum(salary) as totalSalary
@@ -444,8 +478,14 @@
    <if test="userId != null">
      AND  `CREATE_USER` = #{userId}
    </if>
    <if test="startDate != null">
      AND  a.`CREATE_TIME` >= #{startDate}
    </if>
    <if test="endDate != null">
      AND   #{endDate} >= a.`CREATE_TIME`
    </if>
    group by  `CREATE_USER`
   <!-- order by `CREATE_TIME` desc-->
  </select>
  <select id="selectListNew" parameterType="doumeemes.dao.ext.dto.QueryWorkorderRecordExtDTO" resultMap="WorkorderRecordExtListVO">
    SELECT