Преглед изворни кода

1.提现审核添加内部银行卡信息接口
2.查询所有内部银行卡接口
3.补充内部银行卡信息接口
4.调整运营人员、查询数据的接口调整,先实现后期优化

hxl13994548489 пре 2 година
родитељ
комит
4127cfe429
20 измењених фајлова са 512 додато и 67 уклоњено
  1. 7 0
      sql/Online.sql
  2. 13 0
      src/main/java/com/ydtech/modules/admin/controller/SysAmountAuditingController.java
  3. 62 0
      src/main/java/com/ydtech/modules/admin/model/dto/SysAmountAuditingDto.java
  4. 28 0
      src/main/java/com/ydtech/modules/admin/model/po/SysAmountAuditingEntity.java
  5. 1 1
      src/main/java/com/ydtech/modules/admin/model/report/opetationData/OperationsPersonnelDataDto.java
  6. 25 1
      src/main/java/com/ydtech/modules/admin/model/vo/SysAmountAuditingVo.java
  7. 8 0
      src/main/java/com/ydtech/modules/admin/service/SysAmountAuditingService.java
  8. 80 37
      src/main/java/com/ydtech/modules/admin/service/impl/OperationDataReportServiceImpl.java
  9. 41 0
      src/main/java/com/ydtech/modules/admin/service/impl/SysAmountAuditingServiceImpl.java
  10. 27 3
      src/main/java/com/ydtech/modules/admin/service/impl/SysUserLinkDeptInternalAgentServiceImpl.java
  11. 14 0
      src/main/java/com/ydtech/modules/inv/controller/InvAccountController.java
  12. 10 4
      src/main/java/com/ydtech/modules/inv/dao/InvAccountMapper.java
  13. 38 0
      src/main/java/com/ydtech/modules/inv/model/InvAccountCardVo.java
  14. 34 0
      src/main/java/com/ydtech/modules/inv/model/dto/InvAccountCardQueryDto.java
  15. 10 0
      src/main/java/com/ydtech/modules/inv/service/InvAccountService.java
  16. 18 1
      src/main/java/com/ydtech/modules/inv/service/impl/InvAccountServiceImpl.java
  17. 1 1
      src/main/java/com/ydtech/modules/order/dao/InsAreaCompanyMapper.java
  18. 17 3
      src/main/resources/mapper/modules/admin/SysAmountAuditingMapper.xml
  19. 21 0
      src/main/resources/mapper/modules/inv/InvAccountMapper.xml
  20. 57 16
      src/main/resources/mapper/modules/order/InsAreaCompanyMapper.xml

+ 7 - 0
sql/Online.sql

@@ -22,3 +22,10 @@ CREATE TABLE `sys_amount_auditing_dept_history`  (
                                                      `history_id` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '历史记录表id',
                                                      PRIMARY KEY (`id`) USING BTREE
 ) ENGINE = InnoDB AUTO_INCREMENT = 9 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '部门审核轨迹表' ROW_FORMAT = Dynamic;
+
+--  add by  hxl  2024-07-08  提现审核表添加 内部银行卡信息
+ALTER TABLE `sys_amount_auditing` ADD COLUMN `account_name`  varchar(30) DEFAULT NULL COMMENT '内部账户名称';
+ALTER TABLE `sys_amount_auditing` ADD COLUMN `bank_card_num` varchar(100) DEFAULT NULL COMMENT '内部银行卡号';
+ALTER TABLE `sys_amount_auditing` ADD COLUMN `bank_name` varchar(100) DEFAULT NULL COMMENT '内部银行卡开户行名称';
+ALTER TABLE `sys_amount_auditing` ADD COLUMN `bank_num` varchar(100) DEFAULT NULL COMMENT '内部银行卡开户行号';
+ALTER TABLE `sys_amount_auditing` ADD COLUMN `account_id` varchar(30) DEFAULT NULL COMMENT '内部账户id';

+ 13 - 0
src/main/java/com/ydtech/modules/admin/controller/SysAmountAuditingController.java

@@ -2,6 +2,7 @@ package com.ydtech.modules.admin.controller;
 
 
 import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.admin.model.dto.SysAmountAuditingDto;
 import com.ydtech.modules.admin.model.po.SysAmountAuditingEntity;
 import com.ydtech.modules.admin.model.vo.SysAmountAuditingVo;
 import com.ydtech.modules.admin.model.vo.SysAmountRejectVo;
@@ -68,4 +69,16 @@ public class SysAmountAuditingController extends BaseController {
         return HttpResult.ok("success", sumAmount);
     }
 
+
+    @PostMapping("/addInvAccountBackCardMsg")
+    @ApiOperation(value = "补充内部银行卡信息")
+    public HttpResult addInvAccountBackCardMsg(@RequestBody @Valid SysAmountAuditingDto sysAmountAuditingDto) {
+        return sysAmountAuditingService.addInvAccountBackCardMsg(sysAmountAuditingDto);
+    }
+    @GetMapping("/findById")
+    @ApiOperation(value = "根据审核id查询银行卡信息")
+    public HttpResult findById(String id) {
+        SysAmountAuditingEntity vo = sysAmountAuditingService.getById(id);
+        return HttpResult.ok("success", vo);
+    }
 }

+ 62 - 0
src/main/java/com/ydtech/modules/admin/model/dto/SysAmountAuditingDto.java

@@ -0,0 +1,62 @@
+package com.ydtech.modules.admin.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/7/8 11:08
+ *  @Description: 补充银行卡信息
+ */
+@Data
+@ApiModel("补充银行卡信息")
+public class SysAmountAuditingDto implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * id
+     */
+    @NotBlank(message = "审核数据id不能为空")
+    @ApiModelProperty(value = "审核id")
+    private String id;
+
+    /***
+     *  内部银行卡号id
+     */
+    @NotBlank(message = "内部账户名称不能为空")
+    @ApiModelProperty(value = "内部账户名称不能为空")
+    private String accountName;
+    /***
+     *  内部银行卡号id
+     */
+    @NotBlank(message = "内部账户id不能为空")
+    @ApiModelProperty(value = "内部账户id不能为空")
+    private String accountId;
+
+    /***
+     *  内部银行卡开户行名称
+     */
+    @NotBlank(message = "内部银行卡名称不能为空")
+    @ApiModelProperty(value = "内部银行卡名称")
+    private String bankCardNum;
+
+    /***
+     *  内部银行卡开户行名称
+     */
+    @NotBlank(message = "内部银行卡开户行名称不能为空")
+    @ApiModelProperty(value = "内部银行卡开户行名称")
+    private String bankName;
+
+    /***
+     *  内部银行卡开户行号
+     */
+    @NotBlank(message = "内部银行卡开户行号不能为空")
+    @ApiModelProperty(value = "内部银行卡开户行号")
+    private String bankNum;
+
+}

+ 28 - 0
src/main/java/com/ydtech/modules/admin/model/po/SysAmountAuditingEntity.java

@@ -175,4 +175,32 @@ public class SysAmountAuditingEntity implements Serializable {
     @TableField(exist = false)
     private String realUserName;
 
+    /***
+     *   账户名称
+     */
+    @TableField(value = "account_name")
+    private String accountName;
+
+    /***
+     *  银行卡号
+     */
+    @TableField(value = "bank_card_num")
+    private String bankCardNum;
+
+    /***
+     *  开户行名称
+     */
+    @TableField(value = "bank_name")
+    private String bankName;
+
+    /***
+     *  开户行号
+     */
+    @TableField(value = "bank_num")
+    private String bankNum;
+    /***
+     *   账户名称
+     */
+    @TableField(value = "account_id")
+    private String accountId;
 }

+ 1 - 1
src/main/java/com/ydtech/modules/admin/model/report/opetationData/OperationsPersonnelDataDto.java

@@ -24,7 +24,7 @@ public class OperationsPersonnelDataDto {
     @ApiModelProperty(value = "数量")
     private int sumCount;
     /***
-     * 承保数/报价数=成交率
+     * 类型
      */
     @ApiModelProperty(value = "类型")
     private String personType;

+ 25 - 1
src/main/java/com/ydtech/modules/admin/model/vo/SysAmountAuditingVo.java

@@ -116,8 +116,32 @@ public class SysAmountAuditingVo {
     @TableField(exist = false)
     private String  leaderId;
 
+    /***
+     *   账户名称
+     */
+    @ApiModelProperty(value = "内部账户名称")
+    private String accountName;
 
+    /***
+     *  银行卡号
+     */
+    @ApiModelProperty(value = "内部银行卡号")
+    private String bankCardNum;
 
+    /***
+     *  开户行名称
+     */
+    @ApiModelProperty(value = "内部开户行名称")
+    private String bankName;
 
-
+    /***
+     *  开户行号
+     */
+    @ApiModelProperty(value = "内部开户行号")
+    private String bankNum;
+    /***
+     *   账户名称
+     */
+    @ApiModelProperty(value = "内部账户id")
+    private String accountId;
 }

+ 8 - 0
src/main/java/com/ydtech/modules/admin/service/SysAmountAuditingService.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.modules.admin.model.dto.MyCollectInAdvanceDto;
 import com.ydtech.modules.admin.model.dto.MyIncomeAndExpensesQueryDto;
+import com.ydtech.modules.admin.model.dto.SysAmountAuditingDto;
 import com.ydtech.modules.admin.model.po.SysAmountAuditingEntity;
 import com.ydtech.modules.admin.model.vo.SysAmountAuditingVo;
 import com.ydtech.modules.admin.model.vo.SysAmountRejectVo;
@@ -59,4 +60,11 @@ public interface SysAmountAuditingService extends IService<SysAmountAuditingEnti
      *  @Description: 查询提现总金额
      */
     BigDecimal querySumAmount(SysAmountAuditingVo sysAmountAuditingVo);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/7/8 11:18
+     *  @Description: 补充内部银行卡信息
+     */
+    HttpResult addInvAccountBackCardMsg(SysAmountAuditingDto sysAmountAuditingDto);
 }

+ 80 - 37
src/main/java/com/ydtech/modules/admin/service/impl/OperationDataReportServiceImpl.java

@@ -3,18 +3,25 @@ package com.ydtech.modules.admin.service.impl;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ydtech.modules.admin.dao.SysDeptInternalAgentMapper;
 import com.ydtech.modules.admin.dao.SysUserLinkAreaMapper;
+import com.ydtech.modules.admin.model.SysArea;
 import com.ydtech.modules.admin.model.SysUser;
 import com.ydtech.modules.admin.model.report.opetationData.*;
+import com.ydtech.modules.admin.model.vo.SysAreaVo;
 import com.ydtech.modules.admin.service.OperationDataReportService;
+import com.ydtech.modules.admin.service.SysAreaService;
 import com.ydtech.modules.admin.service.SysUserLinkDeptInternalAgentService;
 import com.ydtech.modules.admin.service.SysUserService;
 import com.ydtech.modules.order.dao.InsAreaCompanyMapper;
 import com.ydtech.modules.order.entity.BasePageResult;
+import lombok.Data;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  *  @version
@@ -41,8 +48,9 @@ public class OperationDataReportServiceImpl implements OperationDataReportServic
     @Autowired
     private InsAreaCompanyMapper   insAreaCompanyMapper;
 
-
-
+    @Autowired
+    private SysAreaService sysAreaService;
+    
     /**
      *  @version
      *  @author: hxl
@@ -51,15 +59,17 @@ public class OperationDataReportServiceImpl implements OperationDataReportServic
      */
     @Override
     public BasePageResult<BusinessDataDto> queryBusinessDataPage(BusinessDataQueryDto businessDataQueryDto) {
-       // if(StringUtils.isBlank(businessDataQueryDto.getDeptId())){
-       //     throw new SystemException("机构id不能为空");
-       // }
+        if(StringUtils.isBlank(businessDataQueryDto.getDeptId())){
+           // throw new SystemException("机构id不能为空");
+            businessDataQueryDto.setDeptId("00");
+            businessDataQueryDto.setDeptType("1");
+        }
         Result resultData = new Result().getRestData(businessDataQueryDto.getDeptId(), businessDataQueryDto.getDeptType());
         if(resultData.userIds ==null || resultData.userIds.size()==0){
              return  new BasePageResult<BusinessDataDto>();
         }else{
             Page<BusinessDataDto> page = new Page<>(businessDataQueryDto.getPageNum(), businessDataQueryDto.getPageSize());
-            Page<BusinessDataDto> result = insAreaCompanyMapper.queryBusinessDataPage(businessDataQueryDto, page, null, resultData.flag);
+            Page<BusinessDataDto> result = insAreaCompanyMapper.queryBusinessDataPage(businessDataQueryDto, page, resultData.getUserIds(), resultData.getFlag());
             return new BasePageResult<>(businessDataQueryDto.getPageNum(), page.getSize(), result.getTotal(), page.getPages(),
                     result.getRecords());
         }
@@ -70,6 +80,7 @@ public class OperationDataReportServiceImpl implements OperationDataReportServic
      *  @Date: 2024/7/3 11:27
      *  @Description:  参数数据封装
      */
+    @Data
     private class Result {
         private  List<String> userIds;
         private  String flag;
@@ -118,19 +129,21 @@ public class OperationDataReportServiceImpl implements OperationDataReportServic
      */ 
     @Override
     public BasePageResult<QuotationCountDataDto> queryQuotationCountDataPage(QuotationCountQueryDto quotationCountQueryDto) {
-        //if(StringUtils.isBlank(quotationCountQueryDto.getDeptId())){
-        //    throw new SystemException("机构id不能为空");
-        //}
+        if(StringUtils.isBlank(quotationCountQueryDto.getDeptId())){
+            // throw new SystemException("机构id不能为空");
+            quotationCountQueryDto.setDeptId("00");
+            quotationCountQueryDto.setDeptType("1");
+        }
         Result resultData = new Result().getRestData(quotationCountQueryDto.getDeptId(),quotationCountQueryDto.getDeptType());
         if(resultData.userIds ==null || resultData.userIds.size()==0){
             return  new BasePageResult<QuotationCountDataDto>();
         }else{
             Page<QuotationCountDataDto> page = new Page<>(quotationCountQueryDto.getPageNum(), quotationCountQueryDto.getPageSize());
-            Page<QuotationCountDataDto> resultInsOrder = insAreaCompanyMapper.queryQuotationOrderCountDataPage(quotationCountQueryDto, page, null, resultData.flag);
+           // Page<QuotationCountDataDto> resultInsOrder = insAreaCompanyMapper.queryQuotationOrderCountDataPage(quotationCountQueryDto, page, resultData.getUserIds(), resultData.getFlag());
             //合并到一起
-            Page<QuotationCountDataDto> resultSubOrder = insAreaCompanyMapper.queryQuotationSubOrderCountDataPage(quotationCountQueryDto, page, null, resultData.flag);
-            return new BasePageResult<>(quotationCountQueryDto.getPageNum(), page.getSize(), resultInsOrder.getTotal(), page.getPages(),
-                    resultInsOrder.getRecords());
+            Page<QuotationCountDataDto> resultSubOrder = insAreaCompanyMapper.queryQuotationSubOrderCountDataPage(quotationCountQueryDto, page, resultData.getUserIds(), resultData.getFlag());
+            return new BasePageResult<>(quotationCountQueryDto.getPageNum(), page.getSize(), resultSubOrder.getTotal(), page.getPages(),
+                    resultSubOrder.getRecords());
 
         }
     }
@@ -145,37 +158,67 @@ public class OperationDataReportServiceImpl implements OperationDataReportServic
         //if(StringUtils.isBlank(quotationCountQueryDto.getDeptId())){
         //    throw new SystemException("机构id不能为空");
         //}
+        if(StringUtils.isBlank(quotationCountQueryDto.getDeptId())){
+            // throw new SystemException("机构id不能为空");
+            quotationCountQueryDto.setDeptId("00");
+            quotationCountQueryDto.setDeptType("1");
+        }
+        Page<QuotationCountDataDto> page = new Page<>(quotationCountQueryDto.getPageNum(), quotationCountQueryDto.getPageSize());
         List<String> userIds= sysUserLinkDeptInternalAgentService.getUserIdListByDeptId(quotationCountQueryDto.getDeptId());
-        //渠道用户数据
-        List<SysUser> qdUserList=new ArrayList<SysUser>();
-        //代理人用户数据
-        List<SysUser> dLUserList=new ArrayList<SysUser>();
-        if(userIds!=null && userIds.size()==0){
-            List<String> allUserIds=new ArrayList<String>();
-            for(String userId :userIds){
-                List<String> userIds_qd = sysUserService.getUserIdsByLeaderId(userId);
-                allUserIds.addAll(userIds_qd);
+        List<OperationsPersonnelDataDto> list =new ArrayList<>();
+        List<SysAreaVo> sysAreaVos = sysAreaService.querySysArea();
+        Map<String, String> map=new HashMap<String,String>();
+        if(sysAreaVos!=null && sysAreaVos.size()>0){
+            for (SysArea sysArea : sysAreaVos) {
+                map.put(sysArea.getAreaCode(),sysArea.getAreaCname());
             }
-            if(allUserIds!=null && allUserIds.size()>0){
-                qdUserList = sysUserService.getByIds(allUserIds);
-            }
-
         }
-        if(userIds!=null && userIds.size()==0){
-            List<String> allUserIds=new ArrayList<String>();
-            for(String userId :userIds){
-                List<String> areaCodes = sysUserLinkAreaMapper.findAreaCodeByUserId(userId);
-                if(areaCodes!=null && !areaCodes.isEmpty()){
-                    List<String>  userIds_dl =sysUserLinkAreaMapper.findAreaIdsByAgentUserId(userId,areaCodes);
-                    allUserIds.addAll(userIds_dl);
-                }
+        if(userIds!=null && userIds.size()>0){
+           List<SysUser> userList = sysUserService.getByIds(userIds);
+           for(SysUser user :userList){
+               OperationsPersonnelDataDto vo=new OperationsPersonnelDataDto();
+               vo.setUserId(user.getId());
+               vo.setUserName(user.getName());
+               String areaStr="";
+               if(user.getId().length()==4){
+                   areaStr=user.getId().substring(2,3)+"0000";
+               }else if(user.getId().length()==6){
+                   areaStr=user.getId().substring(2,3)+user.getId().substring(4,5)+"00";
+               }else if(user.getId().length()>8){
+                   areaStr=user.getId().substring(2,3)+user.getId().substring(4,5)+user.getId().substring(6,7);
+               }
+               String areaName = map.get(areaStr) == null ? "" : map.get(areaStr);
+               vo.setAreaCode(areaName);
+               vo.setSumCount(userIds.size());
+               list.add(vo);
+           }
+        }
+        List<OperationsPersonnelDataDto> subList= new ArrayList<>();
+        int totalcount = list==null?0:list.size();
+        int currentPage = quotationCountQueryDto.getPageNum();
+        int pagecount = 0;
+        int pageSize =  quotationCountQueryDto.getPageSize();
+        int m = totalcount % pageSize;
+        if(list!=null && list.size()>0){
+            if (m > 0) {
+                pagecount = totalcount / pageSize + 1;
+            } else {
+                pagecount = totalcount / pageSize;
             }
-            if(allUserIds!=null && allUserIds.size()>0){
-                dLUserList = sysUserService.getByIds(allUserIds);
+            if (m == 0) {
+                subList = list.subList((pageSize - 1) * pageSize, pageSize * (currentPage));
+            } else {
+                if (currentPage == pagecount) {
+                    subList = list.subList((currentPage - 1) * pageSize, totalcount);
+                } else {
+                    subList = list.subList((currentPage - 1) * pageSize, pageSize * (currentPage));
+                }
             }
         }
-        return null;
+        return new BasePageResult<>(quotationCountQueryDto.getPageNum(), page.getSize(), totalcount, page.getPages(),
+                subList);
     }
+
     /**
      *  @version
      *  @author: hxl

+ 41 - 0
src/main/java/com/ydtech/modules/admin/service/impl/SysAmountAuditingServiceImpl.java

@@ -12,6 +12,7 @@ import com.ydtech.modules.admin.dao.SysAmountAuditingMapper;
 import com.ydtech.modules.admin.dao.SysUserAccountHistoryMapper;
 import com.ydtech.modules.admin.model.dto.MyCollectInAdvanceDto;
 import com.ydtech.modules.admin.model.dto.MyIncomeAndExpensesQueryDto;
+import com.ydtech.modules.admin.model.dto.SysAmountAuditingDto;
 import com.ydtech.modules.admin.model.po.SysAmountAuditingEntity;
 import com.ydtech.modules.admin.model.po.SysAmountAuditingHistory;
 import com.ydtech.modules.admin.model.po.SysUserAccount;
@@ -63,6 +64,22 @@ public class SysAmountAuditingServiceImpl extends ServiceImpl<SysAmountAuditingM
         if(sysAmountAuditingVo.getId()==null || "".equals(sysAmountAuditingVo.getId())){
             throw new SystemException("提现审核记录id不能为空");
         }
+        //添加验证非空的判断
+        if(sysAmountAuditingVo.getAccountId()==null || "".equals(sysAmountAuditingVo.getAccountId())){
+            throw new SystemException("未绑定银行卡信息");
+        }
+        if(sysAmountAuditingVo.getAccountName()==null || "".equals(sysAmountAuditingVo.getAccountName())){
+            throw new SystemException("内部账户名称不能为空");
+        }
+        if(sysAmountAuditingVo.getBankCardNum()==null || "".equals(sysAmountAuditingVo.getBankCardNum())){
+            throw new SystemException("内部银行卡号不能为空");
+        }
+        if(sysAmountAuditingVo.getBankName()==null || "".equals(sysAmountAuditingVo.getBankName())){
+            throw new SystemException("内部开户行名称不能为空");
+        }
+        if(sysAmountAuditingVo.getBankNum()==null || "".equals(sysAmountAuditingVo.getBankNum())){
+            throw new SystemException("内部银行卡开户行号不能为空");
+        }
         SysAmountAuditingEntity sysAmountAuditingEntity = sysAmountAuditingService.getById(sysAmountAuditingVo.getId());
         //提现审核金额
         BigDecimal amount = sysAmountAuditingVo.getAmount();
@@ -303,4 +320,28 @@ public class SysAmountAuditingServiceImpl extends ServiceImpl<SysAmountAuditingM
     public BigDecimal querySumAmount(SysAmountAuditingVo sysAmountAuditingVo) {
         return baseMapper.querySumAmount(sysAmountAuditingVo);
     }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/7/8 11:18
+     *  @Description:  补充内部银行卡信息
+     */
+    @Override
+    public HttpResult addInvAccountBackCardMsg(SysAmountAuditingDto sysAmountAuditingDto) {
+        try{
+            //通过审核id查询对象赋值
+            SysAmountAuditingEntity sysAmountAuditingEntity = sysAmountAuditingService.getById(sysAmountAuditingDto.getId());
+            sysAmountAuditingEntity.setAccountName(sysAmountAuditingDto.getAccountName());
+            sysAmountAuditingEntity.setAccountId(sysAmountAuditingDto.getAccountId());
+            sysAmountAuditingEntity.setBankCardNum(sysAmountAuditingDto.getBankCardNum());
+            sysAmountAuditingEntity.setBankName(sysAmountAuditingDto.getBankName());
+            sysAmountAuditingEntity.setBankNum(sysAmountAuditingDto.getBankNum());
+            baseMapper.updateById(sysAmountAuditingEntity);
+            return HttpResult.ok("添加成功");
+        }catch(Exception e){
+
+        }
+
+        return  HttpResult.error("添加失败");
+    }
 }

+ 27 - 3
src/main/java/com/ydtech/modules/admin/service/impl/SysUserLinkDeptInternalAgentServiceImpl.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ydtech.exception.SystemException;
 import com.ydtech.modules.admin.dao.SysDeptInternalAgentMapper;
+import com.ydtech.modules.admin.dao.SysUserLinkAreaMapper;
 import com.ydtech.modules.admin.dao.SysUserLinkDeptInternalAgentMapper;
 import com.ydtech.modules.admin.model.dto.SysUserDto;
 import com.ydtech.modules.admin.model.dto.SysUserLinkDeptInternalAgentDto;
@@ -15,6 +16,7 @@ import com.ydtech.modules.admin.model.vo.SysUserBaseVO;
 import com.ydtech.modules.admin.model.vo.SysUserLinkDeptInternalAgentAddVo;
 import com.ydtech.modules.admin.model.vo.SysUserLinkDeptInternalAgentQueryVo;
 import com.ydtech.modules.admin.service.SysUserLinkDeptInternalAgentService;
+import com.ydtech.modules.admin.service.SysUserService;
 import com.ydtech.modules.base.controller.BaseController;
 import com.ydtech.modules.order.entity.BasePageResult;
 import org.apache.commons.lang3.StringUtils;
@@ -41,6 +43,12 @@ public class SysUserLinkDeptInternalAgentServiceImpl extends ServiceImpl<SysUser
     @Autowired
     private SysDeptInternalAgentMapper sysDeptInternalAgentMapper;
 
+    @Autowired
+    private SysUserService sysUserService;
+
+    @Autowired
+    private SysUserLinkAreaMapper sysUserLinkAreaMapper;
+
     /**
      *  @version
      *  @author: hxl
@@ -158,10 +166,26 @@ public class SysUserLinkDeptInternalAgentServiceImpl extends ServiceImpl<SysUser
         if(sysDeptInternalAgent==null){
             return new ArrayList<String>();
         }
-        return  sysUserLinkDeptInternalAgentMapper.getUserIdListByDeptPrentIds(sysDeptInternalAgent.getParentIds());
+        List<String> hxUserIds = sysUserLinkDeptInternalAgentMapper.getUserIdListByDeptPrentIds(sysDeptInternalAgent.getParentIds());
+        List<String>  returnUserIds=new ArrayList<>();
+        //查询后线人员管理的代理人和渠道
+        if(hxUserIds!=null && hxUserIds.size()>0){
+            for(String userId : hxUserIds){
+                //通过用户id查询管理的渠道集合
+                List<String> qdUserIds = sysUserService.getUserIdsByLeaderId(userId);
+                returnUserIds.addAll(qdUserIds);
+                //通过用户id查询管理的代理人
+                //查询绑定的区域的代理人信息
+                List<String> areaCodes = sysUserLinkAreaMapper.findAreaCodeByUserId(userId);
+                if (areaCodes != null && !areaCodes.isEmpty()) {
+                    List<String>   dlUserIds = sysUserLinkAreaMapper.findAreaIdsByAgentUserId(userId, areaCodes);
+                    returnUserIds.addAll(dlUserIds);
+                }
+            }
+            returnUserIds = returnUserIds.stream().distinct().collect(Collectors.toList());
+        }
+        return  returnUserIds;
     }
-
-
 }
 
 

+ 14 - 0
src/main/java/com/ydtech/modules/inv/controller/InvAccountController.java

@@ -5,9 +5,11 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.modules.inv.model.InvAccount;
 import com.ydtech.modules.inv.model.InvAccountCard;
+import com.ydtech.modules.inv.model.dto.InvAccountCardQueryDto;
 import com.ydtech.modules.inv.model.vo.InvAccountQueryVo;
 import com.ydtech.modules.inv.service.InvAccountCardService;
 import com.ydtech.modules.inv.service.InvAccountService;
+import com.ydtech.modules.order.entity.BasePageResult;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -153,4 +155,16 @@ public class InvAccountController {
     public HttpResult selectByAccountName() {
         return invAccountService.selectByAccountName();
     }
+
+
+    @ApiOperation("查询账户卡列表")
+    @PostMapping("getAccountCardListByPage")
+    public HttpResult<BasePageResult<InvAccountCard>> getAccountCardListByPage(@RequestBody InvAccountCardQueryDto invAccountCardQueryDto) {
+        try{
+            BasePageResult<InvAccountCard> result = invAccountService.queryPage(invAccountCardQueryDto);
+            return HttpResult.ok("查询数据成功", result);
+        }catch (Exception e){
+            return HttpResult.error("查询错误"+e.getMessage());
+        }
+    }
 }

+ 10 - 4
src/main/java/com/ydtech/modules/inv/dao/InvAccountMapper.java

@@ -2,10 +2,9 @@ package com.ydtech.modules.inv.dao;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 
-import com.ydtech.modules.inv.model.InvAccount;
-import com.ydtech.modules.inv.model.InvAccountIncoice;
-import com.ydtech.modules.inv.model.InvAccountIncoiceResult;
-import com.ydtech.modules.inv.model.InvAccountSumAmount;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ydtech.modules.inv.model.*;
+import com.ydtech.modules.inv.model.dto.InvAccountCardQueryDto;
 import com.ydtech.modules.inv.model.vo.InvAccountQueryVo;
 import org.apache.ibatis.annotations.Param;
 
@@ -26,6 +25,13 @@ public interface InvAccountMapper extends BaseMapper<InvAccount> {
     List<InvAccount> getSumInvoicingAmount(@Param("account") InvAccountQueryVo invAccountQueryVo);
 
     List<InvAccountSumAmount> getYearAndQuarterAmount();
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/7/8 10:45
+     *  @Description:  通过账户名和银行卡号查询账户列表
+     */
+    Page<InvAccountCard> queryPage(@Param("page") Page<InvAccountCard> page, @Param("vo") InvAccountCardQueryDto invAccountCardQueryDto);
 }
 
 

+ 38 - 0
src/main/java/com/ydtech/modules/inv/model/InvAccountCardVo.java

@@ -0,0 +1,38 @@
+package com.ydtech.modules.inv.model;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/7/8 14:34
+ *  @Description: 银行卡信息
+ */
+@Data
+public class InvAccountCardVo {/**
+ * 银行卡号
+ */
+     @ApiModelProperty(value = "银行卡号")
+    private String bankCardNum;
+
+
+
+    @ApiModelProperty(value = "账户名称")
+    private String accountName;
+
+    /**
+     * 开户行名称
+     */
+    @ApiModelProperty(value = "开户行名称")
+    private String bankName;
+
+    /**
+     * 开户行号
+     */
+    @ApiModelProperty(value = "开户行号")
+    private String bankNum;
+
+    @ApiModelProperty(value = "账户Id")
+    private String accountId;
+
+}

+ 34 - 0
src/main/java/com/ydtech/modules/inv/model/dto/InvAccountCardQueryDto.java

@@ -0,0 +1,34 @@
+package com.ydtech.modules.inv.model.dto;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/7/8 10:30
+ *  @Description: 绑定内部账户信息查询对象
+ */
+@Data
+@ApiModel("内部账户查询对象")
+public class InvAccountCardQueryDto {
+    /**
+     * 银行卡号
+     */
+    @ApiModelProperty(value = "银行卡号")
+    @TableId
+    private String bankCardNum;
+    /**
+     * 开户行名称
+     */
+    @ApiModelProperty(value = "开户行名称")
+    private String accountName;
+
+    @ApiModelProperty("页码")
+    private int pageNum;
+
+    @ApiModelProperty("页数")
+    private int pageSize;
+}

+ 10 - 0
src/main/java/com/ydtech/modules/inv/service/InvAccountService.java

@@ -4,7 +4,10 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.modules.inv.model.InvAccount;
+import com.ydtech.modules.inv.model.InvAccountCard;
+import com.ydtech.modules.inv.model.dto.InvAccountCardQueryDto;
 import com.ydtech.modules.inv.model.vo.InvAccountQueryVo;
+import com.ydtech.modules.order.entity.BasePageResult;
 
 /**
 * @author Administrator
@@ -25,4 +28,11 @@ public interface InvAccountService extends IService<InvAccount> {
     HttpResult selectAccountList(InvAccountQueryVo invAccountQueryVo);
 
     HttpResult look(InvAccountQueryVo invAccountQueryVo);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/7/8 10:42
+     *  @Description: 通过银行卡号和账户名查询内部账号
+     */
+    BasePageResult<InvAccountCard> queryPage(InvAccountCardQueryDto invAccountCardQueryDto);
 }

+ 18 - 1
src/main/java/com/ydtech/modules/inv/service/impl/InvAccountServiceImpl.java

@@ -3,12 +3,14 @@ package com.ydtech.modules.inv.service.impl;
 import com.alibaba.excel.util.ListUtils;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.core.page.PageRequest;
 import com.ydtech.exception.SystemException;
 import com.ydtech.modules.inv.dao.InvAccountMapper;
 import com.ydtech.modules.inv.model.*;
+import com.ydtech.modules.inv.model.dto.InvAccountCardQueryDto;
 import com.ydtech.modules.inv.model.dto.InvAccountOpDto;
 import com.ydtech.modules.inv.model.excel.AccountExcel;
 import com.ydtech.modules.inv.model.vo.InvAccountQueryVo;
@@ -17,7 +19,7 @@ import com.ydtech.modules.inv.service.InvAccountProfitService;
 import com.ydtech.modules.inv.service.InvAccountService;
 import com.ydtech.modules.inv.utils.EasyExcelUtils;
 import com.ydtech.modules.inv.utils.LocalDateTimeUtils;
-import io.swagger.models.auth.In;
+import com.ydtech.modules.order.entity.BasePageResult;
 import org.joda.time.LocalDateTime;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
@@ -404,6 +406,21 @@ public class InvAccountServiceImpl extends ServiceImpl<InvAccountMapper, InvAcco
         });
         return map;
     }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/7/8 10:43
+     *  @Description:  通过银行卡号和户名分页查询对象
+     */
+    @Override
+    public BasePageResult<InvAccountCard> queryPage(InvAccountCardQueryDto invAccountCardQueryDto) {
+        Page<InvAccountCard> page = new Page<>(invAccountCardQueryDto.getPageNum(),
+                invAccountCardQueryDto.getPageSize());
+
+        Page<InvAccountCard> result = insAccountMapper.queryPage(page, invAccountCardQueryDto);
+        return  new BasePageResult<>(invAccountCardQueryDto.getPageNum(), page.getSize(), result.getTotal(), page.getPages(),
+                result.getRecords());
+    }
 }
 
 

+ 1 - 1
src/main/java/com/ydtech/modules/order/dao/InsAreaCompanyMapper.java

@@ -157,7 +157,7 @@ public interface InsAreaCompanyMapper extends BaseMapper<InsAreaCompany> {
      *  @Date: 2024/7/3 11:34
      *  @Description: 查询报价次数小订单的数据
      */
-    Page<QuotationCountDataDto> queryQuotationSubOrderCountDataPage(@Param("vo") QuotationCountQueryDto quotationCountQueryDto, @Param("page") Page<QuotationCountDataDto> page, @Param("userIds") List<String> userIds, @Param("flag") String flag);
+    Page<QuotationCountDataDto> queryQuotationSubOrderCountDataPage(@Param("vo") QuotationCountQueryDto quotationCountQueryDto, @Param("page") Page<QuotationCountDataDto> page, @Param("userList") List<String> userIds, @Param("flag") String flag);
     /**
      *  @version
      *  @author: hxl

+ 17 - 3
src/main/resources/mapper/modules/admin/SysAmountAuditingMapper.xml

@@ -22,7 +22,11 @@
         a. amount as "amount",
         a. user_id as "userId",
         a. auditing_status as "auditingStatus",
-        a. amount_status as "amountStatus"
+        a. amount_status as "amountStatus",
+        a.account_name as "accountName",
+        a.bank_card_num  as "bankCardNum",
+        a.bank_name  as "bankName",
+        a.bank_num  as "bankNum"
         from sys_amount_auditing a
         <where>
             a.auditing_status ='2'
@@ -55,7 +59,12 @@
         su2.name as "auditingUserName",
         su.dept_id as "deptId",
         sd.name as "deptName",
-        bc.bank_account as "bankAccount"
+        bc.bank_account as "bankAccount",
+        a.account_name as "accountName",
+        a.bank_card_num  as "bankCardNum",
+        a.bank_name  as "bankName",
+        a.bank_num  as "bankNum",
+        a.account_id as "accountId"
         from sys_amount_auditing a
         left join sys_user_account_history b on a.id = b.auditiing_id
         left join sys_user su on su.id =a.user_id
@@ -119,7 +128,12 @@
         bc.bank_address as "bankAddress",
         su.leader_name  as  "leaderName",
         su.leader_id  as  "leaderId",
-        bc.real_user_name  as "realUserName"
+        bc.real_user_name  as "realUserName",
+        a.account_name as "accountName",
+        a.bank_card_num  as "bankCardNum",
+        a.bank_name  as "bankName",
+        a.bank_num  as "bankNum",
+        a.account_id as "accountId"
         from sys_amount_auditing a
         left join sys_user_account_history b on a.id = b.auditiing_id
         left join sys_user su on su.id =a.user_id

+ 21 - 0
src/main/resources/mapper/modules/inv/InvAccountMapper.xml

@@ -199,4 +199,25 @@
         ORDER BY
             account_id ASC;
     </select>
+    <select id="queryPage" resultType="com.ydtech.modules.inv.model.InvAccountCardVo">
+        select
+        a.account_name as accountName,
+        b.bank_card_num as bankCardNum,
+        b.bank_name as bankName,
+        b.bank_num  as  bankNum,
+        b.account_id  as accountId
+        from inv_account a
+        left join inv_account_card b on a.account_id = b.account_id
+        left join inv_account_incoice c on a.account_id = c.account_id and c.del_flag = '0'
+        where a.del_flag = '0'  and a.outer_flag ='0'
+        <if test="vo.accountName!= null and vo.accountName!= ''">
+            and a.account_name like concat('%',#{vo.accountName},'%')
+        </if>
+        <if test="vo.bankCardNum!= null and vo.bankCardNum!= ''">
+            and b.bank_card_num like concat('%',#{vo.bankCardNum},'%')
+        </if>
+        GROUP BY
+        a.account_id,
+        b.bank_card_num
+    </select>
 </mapper>

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

@@ -730,23 +730,64 @@
     <select id="queryQuotationOrderCountDataPage"
             resultType="com.ydtech.modules.admin.model.report.opetationData.QuotationCountDataDto">
         SELECT
-        <if test="flag  != null  and  flag!='' and flag='1'">
-            o.userid   as userId,
-            o.username as userName,
-        </if>
-        o.orderstatus
+        a.userId as userId,
+        a.userName as userName,
+        b.qutationCount AS insOrderQutationCount,
+        b.qutationInsureCount as insOrderQutationInsureCount,
+        b.closeRate AS insOrderCloseRate as insOrderCloseRate,
+        a.qutationCount as  subOrderQutationCount,
+        a.underwritingCount as  subOrderUnderwritingCount,
+        a.qutationInsureCount as subOrderQutationInsureCount,
+        a.passRate as  subOrderCloseRate,
+        a.closeRate as subOrderPassRate,
+        a.contributionRate as subOrderContributionRate
         FROM
-        ins_orders o
-        where  (o.orderstatus = 0  or o.orderstatus = 3 )
-        <if test="userList  != null  and  userList.size()>0 ">
-        and o.userid IN
-        <foreach item="item"  collection="userList" open="(" separator="," close=")">
-            #{item}
-        </foreach>
-        </if>
-        <if test="flag  != null  and  flag!='' and flag='1'">
-            group by o.userid,o.username,o.orderstatus
-        </if>
+        (
+        SELECT
+        inso.userid AS userId,
+        inso.username AS userName,
+        COUNT( CASE WHEN iac.orderstatus = 0 THEN 1 END ) AS qutationCount,
+        COUNT( CASE WHEN iac.orderstatus = 2 THEN 1 END ) AS underwritingCount,
+        COUNT( CASE WHEN iac.orderstatus = 3 THEN 1 END ) AS qutationInsureCount,
+        COUNT( CASE WHEN iac.orderstatus = 0 THEN 1 END )/ count( iac.orderstatus ) AS passRate,
+        COUNT( CASE WHEN iac.orderstatus = 3 THEN 1 END )/ count( iac.orderstatus ) AS closeRate,
+        COUNT( CASE WHEN iac.orderstatus = 3 THEN 1 END )/ COUNT( CASE WHEN iac.orderstatus = 2 THEN 1 END ) AS contributionRate
+        FROM
+        ins_area_company iac
+        LEFT JOIN ins_orders inso ON iac.orderno = inso.orderno
+        <where>
+            <if test="userList  != null  and  userList.size()>0 ">
+                and o.userid IN
+                <foreach item="item"  collection="userList" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+        </where>
+        GROUP BY
+        inso.userid,
+        inso.username
+        ) a
+        LEFT JOIN (
+        SELECT
+        inso.userid AS userId,
+        inso.username AS userName,
+        count( inso.orderstatus ) AS qutationCount,
+        count( CASE WHEN inso.orderstatus = 3 THEN 1 END ) AS qutationInsureCount,
+        COUNT( CASE WHEN inso.orderstatus = 3 THEN 1 END )/ count( inso.orderstatus ) AS closeRate
+        FROM
+        ins_orders inso
+        <where>
+            <if test="userList  != null  and  userList.size()>0 ">
+                and o.userid IN
+                <foreach item="item"  collection="userList" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+        </where>
+        GROUP BY
+        inso.userid,
+        inso.username
+        ) b ON a.userId = b.userId
     </select>
     <select id="queryCompanyPremiumDataPage"
             resultType="com.ydtech.modules.admin.model.report.company.CompanyPremiumDataDto">