Commit 49dd5ee5 authored by libin's avatar libin

员工统计

parent cec6f5ac
......@@ -4,6 +4,9 @@ import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* @author libin
* @version 1.0
......@@ -13,10 +16,18 @@ import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class UserDetailBo {
private Integer userId;
private String userName;
private String phone;
private Integer postionId;
private String postionName;
public class UserStaffBo implements Serializable {
private static final long serialVersionUID = 1L;
private Integer userId;
private String realName;
private String nickName;
private String phone;
private Integer postionId;
private String postionName;
private Integer companyId;
private String companyName;
/**
* 佣金
*/
private BigDecimal commission;
}
package com.github.wxiaoqi.security.admin.feign;
import com.github.wxiaoqi.security.admin.bo.UserBo;
import com.github.wxiaoqi.security.admin.bo.UserStaffBo;
import com.github.wxiaoqi.security.admin.dto.UserMemberDTO;
import com.github.wxiaoqi.security.admin.entity.AppUserLogin;
import com.github.wxiaoqi.security.admin.entity.BaseUserMember;
......@@ -158,4 +159,10 @@ public interface UserFeign {
@RequestParam(value = "cono",required = false) String cono,
@RequestParam(value = "reason",required = false) String reason,
@RequestParam(value = "isSuccess") Boolean isSuccess);
@GetMapping("/app/user/list_staff")
List<UserStaffBo> findAllStaffs();
@GetMapping("/sellingwater/list_staff_sellerwater")
List<UserStaffBo> findStaffSellerWater(@RequestParam("userIds") List<Integer> userIds);
}
......@@ -2,6 +2,7 @@ package com.github.wxiaoqi.security.admin.biz;
import com.ace.cache.annotation.Cache;
import com.ace.cache.annotation.CacheClear;
import com.github.wxiaoqi.security.admin.bo.UserStaffBo;
import com.github.wxiaoqi.security.admin.dto.AccountBindDTO;
import com.github.wxiaoqi.security.admin.entity.AppUserDetail;
import com.github.wxiaoqi.security.admin.mapper.AppUserDetailMapper;
......@@ -17,10 +18,7 @@ import org.springframework.transaction.annotation.Transactional;
import tk.mybatis.mapper.entity.Example;
import java.time.Instant;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
......@@ -173,4 +171,9 @@ public class AppUserDetailBiz extends BaseBiz<AppUserDetailMapper, AppUserDetail
public List<AppUserVo> getUserByUserIds(List<Integer> ids) {
return mapper.getUserVo(ids);
}
public List<UserStaffBo> findAllStaffs() {
List<UserStaffBo> userStaffBos = mapper.selectAllStaffs();
return CollectionUtils.isEmpty(userStaffBos)? Collections.EMPTY_LIST:userStaffBos;
}
}
package com.github.wxiaoqi.security.admin.biz;
import com.github.wxiaoqi.security.admin.bo.UserIncomeBo;
import com.github.wxiaoqi.security.admin.bo.UserStaffBo;
import com.github.wxiaoqi.security.admin.dto.OrderGoodsDTO;
import com.github.wxiaoqi.security.admin.dto.OrderWaterDTO;
import com.github.wxiaoqi.security.admin.dto.UserSellingWaterAdminDTO;
......@@ -462,6 +463,11 @@ public class AppUserSellingWaterBiz extends BaseBiz<AppUserSellingWaterMapper, A
return pageDataVO;
}
public List<UserStaffBo> findStatffSellerWaterByUserIds(List<Integer> userIds) {
List<UserStaffBo> userStaffBos = mapper.statisticsStatffSellerWaterByUserIds(userIds);
return CollectionUtils.isEmpty(userStaffBos)?Collections.EMPTY_LIST:userStaffBos;
}
private enum SellerWallterStatus {
CANCEL(2, "取消订单"),
POST(1, "已入账"),
......
package com.github.wxiaoqi.security.admin.mapper;
import com.github.wxiaoqi.security.admin.bo.UserStaffBo;
import com.github.wxiaoqi.security.admin.dto.AppUserManageDTO;
import com.github.wxiaoqi.security.admin.entity.AppUserDetail;
import com.github.wxiaoqi.security.admin.vo.AppUserManageVo;
......@@ -26,4 +27,5 @@ public interface AppUserDetailMapper extends Mapper<AppUserDetail> {
List<AppUserManageVo> selectAppUser(AppUserManageDTO appUserManageDTO);
List<UserStaffBo> selectAllStaffs();
}
\ No newline at end of file
package com.github.wxiaoqi.security.admin.mapper;
import com.github.wxiaoqi.security.admin.bo.UserIncomeBo;
import com.github.wxiaoqi.security.admin.bo.UserStaffBo;
import com.github.wxiaoqi.security.admin.dto.UserSellingWaterAdminDTO;
import com.github.wxiaoqi.security.admin.dto.UserSellingWaterFindDTO;
import com.github.wxiaoqi.security.admin.entity.AppUserSellingWater;
import com.github.wxiaoqi.security.admin.vo.SellingWalletVo;
import org.apache.ibatis.annotations.Param;
import org.springframework.web.bind.annotation.RequestParam;
import tk.mybatis.mapper.common.Mapper;
import java.math.BigDecimal;
......@@ -27,4 +29,6 @@ public interface AppUserSellingWaterMapper extends Mapper<AppUserSellingWater> {
List<SellingWalletVo> selectSellerWalterByUserIdAndWating(@Param("userId") Integer userId, @Param("wating") Integer wating);
List<UserSellingWaterAdminDTO> selectSellingWaterPage(UserSellingWaterFindDTO userSellingWaterFindDTO);
List<UserStaffBo> statisticsStatffSellerWaterByUserIds(@RequestParam("userIds") List<Integer> userIds);
}
......@@ -2,6 +2,7 @@ package com.github.wxiaoqi.security.admin.rest;
import com.github.wxiaoqi.security.admin.biz.*;
import com.github.wxiaoqi.security.admin.bo.UserBo;
import com.github.wxiaoqi.security.admin.bo.UserStaffBo;
import com.github.wxiaoqi.security.admin.dto.AccountBindDTO;
import com.github.wxiaoqi.security.admin.entity.*;
import com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO;
......@@ -366,4 +367,9 @@ public class AppUserController extends CommonBaseController{
return appUserLoginBiz.findUserDetailInfo(userBos);
}
@ApiOperation("查询全部员工")
@GetMapping("/app/user/list_staff")
public List<UserStaffBo> findAllStaffs(){
return userDetailBiz.findAllStaffs();
}
}
package com.github.wxiaoqi.security.admin.rest;
import com.github.wxiaoqi.security.admin.biz.AppUserSellingWaterBiz;
import com.github.wxiaoqi.security.admin.bo.UserStaffBo;
import com.github.wxiaoqi.security.admin.dto.OrderWaterDTO;
import com.github.wxiaoqi.security.admin.vo.SellingWalletPagVo;
import com.github.wxiaoqi.security.auth.client.config.UserAuthConfig;
......@@ -8,10 +9,12 @@ import com.github.wxiaoqi.security.auth.client.jwt.UserAuthUtil;
import com.github.wxiaoqi.security.auth.common.util.jwt.IJWTInfo;
import com.github.wxiaoqi.security.common.exception.BaseException;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
/**
* @author libin
......@@ -72,4 +75,11 @@ public class UserSellingWaterController {
throw new BaseException(e);
}
}
@ApiOperation("员工佣金")
@GetMapping("/list_staff_sellerwater")
public List<UserStaffBo> findStaffSellerWater(@RequestParam("userIds") List<Integer> userIds){
return appUserSellingWaterBiz.findStatffSellerWaterByUserIds(userIds);
}
}
......@@ -234,5 +234,14 @@
order by l.id ASC
</select>
<!--查询非普通用户-->
<select id="selectAllStaffs" resultType="com.github.wxiaoqi.security.admin.bo.UserStaffBo">
select aud.realname as `realName`,aud.nickname as `nickName`,aul.username as `phone`,aupt.position_id as `postionId`,aupt.company_id as `companyId`,aupt.company_name as `companyName`
from `app_user_detail` as `aud` left join `app_user_login` as `aul`
on aul.id=aud.userid left join `app_user_position_temp` as `aupt`
on aupt.user_id=aul.id left join `app_user_position` as `aup`
on aup.id=aupt.position_id
</select>
</mapper>
\ No newline at end of file
......@@ -26,10 +26,10 @@ FROM
<select id="selectTotalIncomeByUserId" resultType="java.math.BigDecimal">
SELECT
( auswu.upIncome - auswd.dowIncome ) AS `income`
( IFNULL(auswu.upIncome,0) - IFNULL(auswd.dowIncome,0) ) AS `income`
FROM
( SELECT IFNULL(SUM( commission ),0) AS upIncome FROM `app_user_selling_water` WHERE STATUS = 0 AND `user_id` = #{userId} ) AS `auswu`,
( SELECT IFNULL(SUM( commission ),0) AS `dowIncome` FROM `app_user_selling_water` WHERE STATUS = 1 AND `user_id` = #{userId} ) AS `auswd`;
( SELECT IFNULL(SUM( commission ),0) AS upIncome FROM `app_user_selling_water` WHERE STATUS = 0 AND waiting=1 AND `user_id` = #{userId} ) AS `auswu`,
( SELECT IFNULL(SUM( commission ),0) AS `dowIncome` FROM `app_user_selling_water` WHERE STATUS = 1 AND waiting=1 AND `user_id` = #{userId} ) AS `auswd`;
</select>
<select id="selectSellerWalterByUserIdAndWating" resultType="com.github.wxiaoqi.security.admin.vo.SellingWalletVo">
......@@ -150,4 +150,23 @@ FROM
</if>) AS audd ON audd.userid = ausw.user_id
ORDER BY ausw.crt_time DESC
</select>
<select id="statisticsStatffSellerWaterByUserIds"
resultType="com.github.wxiaoqi.security.admin.bo.UserStaffBo">
SELECT
`auswu`.user_id, ( IFNULL(auswu.upIncome,0) - IFNULL(auswd.dowIncome,0) ) AS `commission`
FROM
( SELECT `user_id` as `userId`, IFNULL(SUM( commission ),0) AS upIncome FROM `app_user_selling_water` where STATUS = 0 and waiting=1 <if test="userIds!=null and userIds.size!=0">
AND `user_id` IN <foreach collection="userIds" item="userId" open="(" close=")" separator=",">
#{userId}
</foreach>
</if> group by user_id) AS `auswu`
left join
( SELECT `user_id`,IFNULL(SUM( commission ),0) AS `dowIncome` FROM `app_user_selling_water` where STATUS = 1 and waiting=1 <if test="userIds!=null and userIds.size!=0">
AND `user_id` IN <foreach collection="userIds" item="userId" open="(" close=")" separator=",">
#{userId}
</foreach>
</if> group by user_id) AS `auswd`
on auswd.user_id=auswu.user_id
</select>
</mapper>
\ No newline at end of file
......@@ -23,5 +23,5 @@ public class StaffStatisticsFindDTO extends PageParam {
private Date endDate;
private String companyName;
private Integer userPostionId;
private List<String> companyIds;
private List<Integer> companyIds;
}
package com.xxfc.platform.order.biz;
import cn.hutool.core.util.ObjectUtil;
import com.github.wxiaoqi.security.admin.bo.UserDetailBo;
import com.github.wxiaoqi.security.admin.bo.UserStaffBo;
import com.github.wxiaoqi.security.admin.feign.UserFeign;
import com.github.wxiaoqi.security.admin.vo.AppUserVo;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.google.common.collect.Lists;
import com.xxfc.platform.order.entity.StaffStatistics;
import com.xxfc.platform.order.mapper.StaffStatisticsMapper;
import com.xxfc.platform.order.pojo.dto.StaffStatisticsFindDTO;
import com.xxfc.platform.order.pojo.bo.StaffStatisticsTotalBo;
import com.xxfc.platform.order.pojo.dto.StaffStatisticsFindDTO;
import com.xxfc.platform.order.pojo.vo.StaffStatisticsVo;
import com.xxfc.platform.vehicle.feign.VehicleFeign;
import lombok.RequiredArgsConstructor;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -38,6 +38,10 @@ public class StaffStatisticsBiz extends BaseBiz<StaffStatisticsMapper, StaffStat
private final UserFeign userFeign;
private final BaseOrderBiz baseOrderBiz;
private final OrderAccountBiz orderAccountBiz;
public StaffStatisticsTotalBo staffStatisticsWithTotal(StaffStatisticsFindDTO staffStatisticsFindDTO) {
return mapper.statistics(staffStatisticsFindDTO);
}
......@@ -57,6 +61,7 @@ public class StaffStatisticsBiz extends BaseBiz<StaffStatisticsMapper, StaffStat
}
List<Integer> userIds = data.stream().map(StaffStatistics::getUserId).collect(Collectors.toList());
//根据员工id查询员工信息
ObjectRestResponse<List<AppUserVo>> result = userFeign.getByUserIds(userIds);
List<AppUserVo> users = result.getData();
Map<Integer,AppUserVo> userVoMap = CollectionUtils.isEmpty(users) ? Collections.EMPTY_MAP : users.stream().filter(x->Objects.nonNull(x.getUserid())).collect(Collectors.toMap(AppUserVo::getUserid, Function.identity()));
......@@ -97,4 +102,19 @@ public class StaffStatisticsBiz extends BaseBiz<StaffStatisticsMapper, StaffStat
pageDataVO.setTotalCount(statisticsVoPageDataVO.getTotalCount());
return pageDataVO;
}
public void staffStatisticsJob(Date startDate,Date endDate,Map<Integer,String> companyMap){
//1.查询全部员工信息
List<UserStaffBo> userStaffBos = userFeign.findAllStaffs();
//2.根据员工id调用用户服务查询员工的佣金
if (CollectionUtils.isEmpty(userStaffBos)){
return;
}
Map<Integer, UserStaffBo> staffMap = userStaffBos.stream().collect(Collectors.toMap(UserStaffBo::getUserId, Function.identity()));
List<UserStaffBo> staffCommisstions = userFeign.findStaffSellerWater(Lists.newArrayList(staffMap.keySet()));
Map<Integer, BigDecimal> staffCommissionMap = CollectionUtils.isEmpty(staffCommisstions)?Collections.EMPTY_MAP:staffCommisstions.stream().collect(Collectors.toMap(UserStaffBo::getUserId, UserStaffBo::getCommission));
//2.根据员工id去订单基础表查询
//2.根据员工id去订单账目表查询
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment