Selaa lähdekoodia

合伙人,工作室详情

helixiao 1 vuosi sitten
vanhempi
commit
c32c6c97f6

+ 7 - 0
src/main/java/com/ydtech/modules/admin/controller/SysAgencyLeaderController.java

@@ -235,5 +235,12 @@ public class SysAgencyLeaderController extends BaseController {
         return HttpResult.ok("success", this.sysAgencyLeaderService.queryAgencyUserInsAreaPage(agencyUserInsAreaDto));
     }
 
+    @PostMapping("/queryUserInsAreaExcel")
+    @ApiOperation(value = "查询机构下的单个员工的子订单费用导出")
+    public HttpResult queryUserInsAreaExcel(@RequestBody AgencyUserInsAreaDto agencyUserInsAreaDto){
+        boolean b = this.sysAgencyLeaderService.queryUserInsAreaExcel(agencyUserInsAreaDto);
+        return HttpResult.ok("导出成功");
+    }
+
 
 }

+ 10 - 4
src/main/java/com/ydtech/modules/admin/controller/SysPartnerController.java

@@ -3,6 +3,7 @@ package com.ydtech.modules.admin.controller;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.modules.admin.model.SysAgencyLeader;
 import com.ydtech.modules.admin.model.SysPartner;
+import com.ydtech.modules.admin.model.dto.SysAgencyLeaderPageDto;
 import com.ydtech.modules.admin.model.dto.SysPartnerAPPPageDto;
 import com.ydtech.modules.admin.model.dto.SysPartnerDto;
 import com.ydtech.modules.admin.model.dto.SysPartnerPageDto;
@@ -159,11 +160,16 @@ public class SysPartnerController extends BaseController {
     /**
      * 根据合伙人id查询推荐的工作室管理员
      */
-    @GetMapping("/queryAgencyLeaderById/{userId}")
+    @PostMapping("/queryAgencyLeaderById")
     @ApiOperation(value = "根据合伙人id查询推荐的工作室管理员")
-    public HttpResult<List<SysAgencyLeader>> queryAgencyLeaderById(@PathVariable("userId") String userId){
-
-        return HttpResult.ok("success", this.sysPartnerService.queryAgencyLeaderById(userId));
+    public HttpResult<BasePageResult<AgencyExtractFeeVo>> queryAgencyLeaderById(@RequestBody SysAgencyLeaderPageDto sysAgencyLeaderPageDto){
+        if (sysAgencyLeaderPageDto.getPageNum() == 0) {
+            sysAgencyLeaderPageDto.setPageNum(1);
+        }
+        if (sysAgencyLeaderPageDto.getPageSize() == 0) {
+            sysAgencyLeaderPageDto.setPageSize(10);
+        }
+        return HttpResult.ok("success", this.sysPartnerService.queryAgencyLeaderById(sysAgencyLeaderPageDto));
     }
 
 

+ 4 - 0
src/main/java/com/ydtech/modules/admin/dao/SysAgencyLeaderMapper.java

@@ -4,7 +4,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ydtech.modules.admin.model.SysAgencyLeader;
+import com.ydtech.modules.admin.model.dto.AgencyUserInsAreaDto;
 import com.ydtech.modules.admin.model.dto.DeptBalanceDto;
+import com.ydtech.modules.admin.model.vo.AgencyUserInsAreaVo;
 import com.ydtech.modules.admin.model.vo.DeptBalanceVo;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
@@ -35,5 +37,7 @@ public interface SysAgencyLeaderMapper extends BaseMapper<SysAgencyLeader> {
     HashMap<String, BigDecimal> getBigDecimalNum(@Param("deptId") String deptId, @Param("createTime")  String createTime,@Param("beginTime") String beginTime,@Param("endTime") String endTime);
 
     HashMap<String, Object> getAreaCompanyByUserId(@Param("orderNoList") List<String> orderNoList);
+
+    List<AgencyUserInsAreaVo> queryUserInsAreaExcel(@Param("dto")AgencyUserInsAreaDto agencyUserInsAreaDto);
 }
 

+ 11 - 0
src/main/java/com/ydtech/modules/admin/model/vo/AgencyUserInsAreaVo.java

@@ -1,5 +1,6 @@
 package com.ydtech.modules.admin.model.vo;
 
+import com.alibaba.excel.annotation.ExcelProperty;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -12,33 +13,43 @@ import java.util.Date;
 @ApiModel(value = "个人分页查询子订单实体")
 public class AgencyUserInsAreaVo {
 
+    @ExcelProperty(value = "员工工号",index = 0)
     @ApiModelProperty(value = "员工id")
     private String userId;
 
+    @ExcelProperty(value = "员工姓名",index = 1)
     @ApiModelProperty(value = "员工姓名")
     private String userName;
 
+    @ExcelProperty(value = "车牌号",index = 2)
     @ApiModelProperty(value = "车牌号")
     private String licenseno;
 
+    @ExcelProperty(value = "子订单编号",index = 3)
     @ApiModelProperty(value = "子订单id")
     private String companyId;
 
+    @ExcelProperty(value = "交强险费用",index = 4)
     @ApiModelProperty(value = "交强险费用")
     private BigDecimal jqpremium;
 
+    @ExcelProperty(value = "商业险费用",index = 5)
     @ApiModelProperty(value = "商业险费用")
     private BigDecimal sypremium;
 
+    @ExcelProperty(value = "驾意险费用",index = 6)
     @ApiModelProperty(value = "驾意险费用")
     private BigDecimal jypremium;
 
+    @ExcelProperty(value = "总保费",index = 7)
     @ApiModelProperty(value = "总保费")
     private BigDecimal sumpremium;
 
+    @ExcelProperty(value = "订单状态",index = 8)
     @ApiModelProperty(value = "订单状态(0 报价中 1 待核保 2 已核保待缴费 3已承保 4 核保退回)")
     private String orderstatus;
 
+    @ExcelProperty(value = "创建时间",index = 9)
     @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
     @ApiModelProperty(value = "子订单创建时间")
     private Date createtime;

+ 2 - 0
src/main/java/com/ydtech/modules/admin/service/SysAgencyLeaderService.java

@@ -60,4 +60,6 @@ public interface SysAgencyLeaderService extends IService<SysAgencyLeader> {
     List<SysUser> queryAgencyUser(String deptId);
 
     IPage<AgencyUserInsAreaVo> queryAgencyUserInsAreaPage(AgencyUserInsAreaDto agencyUserInsAreaDto);
+
+    boolean queryUserInsAreaExcel(AgencyUserInsAreaDto agencyUserInsAreaDto);
 }

+ 2 - 1
src/main/java/com/ydtech/modules/admin/service/SysPartnerService.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.ydtech.modules.admin.model.SysAgencyLeader;
 import com.ydtech.modules.admin.model.SysPartner;
 import com.ydtech.modules.admin.model.SysUser;
+import com.ydtech.modules.admin.model.dto.SysAgencyLeaderPageDto;
 import com.ydtech.modules.admin.model.dto.SysPartnerAPPPageDto;
 import com.ydtech.modules.admin.model.dto.SysPartnerDto;
 import com.ydtech.modules.admin.model.dto.SysPartnerPageDto;
@@ -43,5 +44,5 @@ public interface SysPartnerService extends IService<SysPartner> {
 
     boolean edit(SysPartnerDto sysPartnerDto);
 
-    List<SysAgencyLeader> queryAgencyLeaderById(String userId);
+    BasePageResult<AgencyExtractFeeVo> queryAgencyLeaderById(SysAgencyLeaderPageDto sysAgencyLeaderPageDto);
 }

+ 11 - 0
src/main/java/com/ydtech/modules/admin/service/impl/SysAgencyLeaderServiceImpl.java

@@ -1101,5 +1101,16 @@ public class SysAgencyLeaderServiceImpl extends ServiceImpl<SysAgencyLeaderMappe
         return agencyUserInsAreaVoIPage;
     }
 
+    @Override
+    public boolean queryUserInsAreaExcel(AgencyUserInsAreaDto agencyUserInsAreaDto) {
+
+
+        List<AgencyUserInsAreaVo> agencyUserInsAreaVos = baseMapper.queryUserInsAreaExcel(agencyUserInsAreaDto);
+
+
+        return true;
+
+    }
+
 
 }

+ 75 - 8
src/main/java/com/ydtech/modules/admin/service/impl/SysPartnerServiceImpl.java

@@ -11,6 +11,7 @@ import com.ydtech.aop.exception.DescribeException;
 import com.ydtech.exception.SystemException;
 import com.ydtech.modules.admin.dao.*;
 import com.ydtech.modules.admin.model.*;
+import com.ydtech.modules.admin.model.dto.SysAgencyLeaderPageDto;
 import com.ydtech.modules.admin.model.dto.SysPartnerAPPPageDto;
 import com.ydtech.modules.admin.model.dto.SysPartnerDto;
 import com.ydtech.modules.admin.model.dto.SysPartnerPageDto;
@@ -18,6 +19,7 @@ import com.ydtech.modules.admin.model.vo.AgencyExtractFeeVo;
 import com.ydtech.modules.admin.model.vo.SysAgencyLeaderVo;
 import com.ydtech.modules.admin.model.vo.SysPartnerAPPPageVo;
 import com.ydtech.modules.admin.model.vo.SysUserPartner;
+import com.ydtech.modules.admin.service.SysAgencyLeaderService;
 import com.ydtech.modules.admin.service.SysPartnerService;
 import com.ydtech.modules.admin.service.SysUserService;
 import com.ydtech.modules.base.controller.BaseController;
@@ -73,6 +75,8 @@ public class SysPartnerServiceImpl extends ServiceImpl<SysPartnerMapper, SysPart
 
     @Resource
     private SysAgencyFeeApprovalMapper sysAgencyFeeApprovalMapper;
+    @Resource
+    private SysAgencyLeaderService sysAgencyLeaderService;
 
 
     @Override
@@ -678,20 +682,83 @@ public class SysPartnerServiceImpl extends ServiceImpl<SysPartnerMapper, SysPart
     }
 
     @Override
-    public List<SysAgencyLeader> queryAgencyLeaderById(String userId) {
+    public BasePageResult<AgencyExtractFeeVo> queryAgencyLeaderById(SysAgencyLeaderPageDto sysAgencyLeaderPageDto) {
+        List<AgencyExtractFeeVo> agencyExtractFeeList = new ArrayList<>();
         List<SysRelationPerson> sysRelationPeople = sysRelationPersonMapper.selectList(new LambdaQueryWrapper<SysRelationPerson>()
-                .eq(SysRelationPerson::getSuggestId, userId).eq(SysRelationPerson::getType, 1));
+                .eq(SysRelationPerson::getSuggestId, sysAgencyLeaderPageDto.getUserId()).eq(SysRelationPerson::getType, 1));
 
             //获取所有推荐的机构负责人id
             List<String> agencyLeaderIds = sysRelationPeople.stream().map(SysRelationPerson::getAgencyLeaderId).collect(Collectors.toList());
 
-            //获取机构负责人信息
-            List<SysAgencyLeader> sysAgencyLeaders = sysAgencyLeaderMapper.selectList(new LambdaQueryWrapper<SysAgencyLeader>()
-                    .in(SysAgencyLeader::getUserId, agencyLeaderIds)
-                    .eq(SysAgencyLeader::getDelFlag, 1)
-                    .orderByDesc(SysAgencyLeader::getId));
+        Page<SysAgencyLeader> page = new Page<>(sysAgencyLeaderPageDto.getPageNum(), sysAgencyLeaderPageDto.getPageSize());
+        LambdaQueryWrapper<SysAgencyLeader> wrapper = new LambdaQueryWrapper<>();
+        wrapper.in(SysAgencyLeader::getUserId, agencyLeaderIds);
+        wrapper.eq(SysAgencyLeader::getDelFlag, 1);
+        wrapper.orderByDesc(SysAgencyLeader::getId);
+
+        Page<SysAgencyLeader> insOrdersPage = sysAgencyLeaderService.page(page, wrapper);
+        List<SysAgencyLeader> records = insOrdersPage.getRecords();
+        if (records.size() > 0) {
+            for (SysAgencyLeader sysAgencyLeaders : records) {
+                AgencyExtractFeeVo agencyExtractFee = new AgencyExtractFeeVo();
+                //总保费
+                BigDecimal bigDecimal = BigDecimal.ZERO;
+                //已提现抽成费用
+                BigDecimal historyFee = BigDecimal.ZERO;
+                SysUser sysUser = sysUserMapper.selectById(sysAgencyLeaders.getUserId());
+                SysDept sysDept = sysDeptMapper.selectById(sysAgencyLeaders.getDeptId());
+                agencyExtractFee.setUserId(sysAgencyLeaders.getUserId());
+                agencyExtractFee.setUserName(sysUser.getName());
+                agencyExtractFee.setDeptId(sysAgencyLeaders.getDeptId());
+                agencyExtractFee.setDeptName(sysDept.getName());
+                agencyExtractFee.setProportional(sysAgencyLeaders.getProportional());
+                //筛选订单,选择时间
+                Date updateTime = sysAgencyLeaders.getUpdateTime();
+                Date createTime = sysAgencyLeaders.getCreateTime();
+                String dateStr = "";
+                if (updateTime != null) {
+                    dateStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(updateTime);
+                    agencyExtractFee.setStartTime(updateTime);
+                } else {
+                    dateStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(createTime);
+                    agencyExtractFee.setStartTime(createTime);
+                }
+                HashMap<String, BigDecimal> map = sysAgencyLeaderMapper.getBigDecimalNum(sysAgencyLeaders.getDeptId(), dateStr,null,null);
+                if (CollectionUtil.isNotEmpty(map)) {
+
+                    bigDecimal = bigDecimal.add(map.get("bigDecimal") == null ? BigDecimal.ZERO : map.get("bigDecimal"));
+                }
+                agencyExtractFee.setSumpremium(bigDecimal);
+                BigDecimal multiply = bigDecimal.multiply(new BigDecimal(agencyExtractFee.getProportional())
+                        .divide(new BigDecimal("100"))).setScale(2, RoundingMode.DOWN);
+                agencyExtractFee.setExtractFee(multiply);
+                // 填充 已提现抽成费用和可提现抽成费用
+                List<SysAgencyFeeApproval> sysAgencyFeeApprovals = sysAgencyFeeApprovalMapper.selectList(new LambdaQueryWrapper<SysAgencyFeeApproval>()
+                        .eq(SysAgencyFeeApproval::getUserId, sysAgencyLeaders.getUserId())
+                        .eq(SysAgencyFeeApproval::getStatus, 1));
+                if (sysAgencyFeeApprovals.size() > 0) {
+                    for (SysAgencyFeeApproval sysAgencyFeeApproval : sysAgencyFeeApprovals) {
+                        historyFee = historyFee.add(sysAgencyFeeApproval.getHistoryFee());
+                    }
+                }
 
-            return sysAgencyLeaders;
+                if (!bigDecimal.equals(BigDecimal.ZERO)) {
+                    //已提现
+                    agencyExtractFee.setHistoryFee(historyFee);
+                    //可提现 = 总抽成-已提现
+                    agencyExtractFee.setCashFee(multiply.subtract(historyFee));
+                } else {
+                    agencyExtractFee.setHistoryFee(BigDecimal.ZERO);
+                    agencyExtractFee.setCashFee(multiply.subtract(BigDecimal.ZERO));
+                }
+                agencyExtractFeeList.add(agencyExtractFee);
+
+            }
+
+        }
+
+        return new BasePageResult<>(sysAgencyLeaderPageDto.getPageNum(), page.getSize(), insOrdersPage.getTotal(), page.getPages(),
+                agencyExtractFeeList);
 
     }
 

+ 29 - 0
src/main/resources/mapper/modules/admin/SysAgencyLeaderMapper.xml

@@ -119,6 +119,35 @@
             </if>
         </where>
     </select>
+    <select id="queryUserInsAreaExcel" resultType="com.ydtech.modules.admin.model.vo.AgencyUserInsAreaVo">
+        select
+        io.userid as userId,
+        io.username as userName,
+        io.licenseno as licenseno,
+        iac.id as companyId,
+        iac.jqpremium as jqpremium,
+        iac.sypremium as sypremium,
+        iac.jypremium as jypremium,
+        iac.createtime as createtime,
+        iac.orderstatus as orderstatus
+
+        from ins_area_company iac
+        left join ins_orders io on io.orderno = iac.orderno
+        <where>
+            iac.orderstatus=3
+            <if test="dto.userId !=null  and  dto.userId !=''">
+                and io.userid = #{dto.userId}
+            </if>
+            <if test="dto.deptId !=null  and  dto.deptId !=''">
+                and io.deptid like concat( #{dto.deptId}, '%')
+            </if>
+            <if test="dto.startTime !=null  and  dto.startTime !=''">
+                and io.createtime >= #{dto.startTime}
+            </if>
+
+        </where>
+        ORDER BY iac.createtime
+    </select>
 
 </mapper>
 

+ 1 - 1
src/main/resources/mapper/modules/order/InsAreaCompanyMapper.xml

@@ -2326,7 +2326,7 @@
                 and io.userid = #{dto.userId}
             </if>
             <if test="dto.deptId !=null  and  dto.deptId !=''">
-                and io.deptid = #{dto.deptId}
+                and io.deptid like concat( #{dto.deptId}, '%')
             </if>
             <if test="dto.startTime !=null  and  dto.startTime !=''">
                 and io.createtime >= #{dto.startTime}