소스 검색

添加各人账户的实收金额,包含总金额
添加实收金额的列表查询页面,年月日查询
添加推广费的详情页面
优化查询接口

hxl13994548489 2 년 전
부모
커밋
0f0a1d127b

+ 24 - 4
src/main/java/com/ydtech/modules/admin/controller/SysUserAccountController.java

@@ -3,6 +3,7 @@ package com.ydtech.modules.admin.controller;
 
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.modules.admin.model.po.SysUserAccount;
+import com.ydtech.modules.admin.model.vo.SubOrder;
 import com.ydtech.modules.admin.model.vo.SysUserAccountVo;
 import com.ydtech.modules.admin.service.SysUserAccountService;
 import com.ydtech.modules.base.controller.BaseController;
@@ -10,6 +11,7 @@ import com.ydtech.modules.order.entity.BasePageResult;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
@@ -46,9 +48,7 @@ public class SysUserAccountController extends BaseController {
     @GetMapping(value = "/getSysAllAmount")
     @ApiModelProperty("用户余额new")
     public HttpResult<SysUserAccountVo>  getSysAllAmount (){
-
         String   userId = BaseController.getUser().getId();
-
         SysUserAccountVo result = sysUserAccountService.getSysAllAmount(userId);
         return  HttpResult.ok("success", result);
     }
@@ -58,6 +58,26 @@ public class SysUserAccountController extends BaseController {
         SysUserAccountVo result =sysUserAccountService.getInsOrders(sysUserAccountVo);
         return  HttpResult.ok("success", result);
     }
-
-
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/6/3 15:03
+     *  @Description: 通过子订单编号查询订单的详情页面
+     */
+    @GetMapping("getSubOrderDetails")
+    @ApiOperation("获取订单详情")
+    public HttpResult<SubOrder>  getSubOrderDetails(String subOrderId,String userId){
+        if(StringUtils.isBlank(subOrderId)){
+            return HttpResult.error("订单号subOrderId不能为空");
+        }
+        if(StringUtils.isBlank(userId)){
+            return HttpResult.error("用户编码userId不能为空");
+        }
+        try{
+            SubOrder subOrder =sysUserAccountService.getSubOrderDetails(subOrderId,userId);
+            return  HttpResult.ok("success", subOrder);
+        }catch (Exception e){
+            return HttpResult.error("操作失败"+e.getMessage());
+        }
+    }
 }

+ 64 - 0
src/main/java/com/ydtech/modules/admin/model/vo/SubOrder.java

@@ -0,0 +1,64 @@
+package com.ydtech.modules.admin.model.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/6/3 15:04
+ *  @Description: 订单详情
+ */
+@Data
+@ApiModel("订单详情数据")
+public class SubOrder {
+
+    @ApiModelProperty("订单号")
+    private String subOrderId;
+
+    @ApiModelProperty("承保时间")
+    private String  signingTime;
+
+    @ApiModelProperty("车牌号")
+    private String licenseNo;
+
+    @ApiModelProperty("交强险费用")
+    private String jqpremium;
+
+    @ApiModelProperty("商业险费用")
+    private String sypremium;
+
+    @ApiModelProperty("驾意险费用")
+    private String jypremium;
+    /**
+    @ApiModelProperty("一级分销人名称")
+    private String firstLevelUserName;
+    @ApiModelProperty("一级分销比例")
+    private BigDecimal firstDetailProportion;
+    @ApiModelProperty("一级分销金额")
+    private BigDecimal firstDetailPremiums;
+
+    @ApiModelProperty("二级分销人名称")
+    private String twoLevelUserName;
+    @ApiModelProperty("二级分销比例")
+    private BigDecimal twoDetailProportion;
+    @ApiModelProperty("二级分销金额")
+    private BigDecimal twoDetailPremiums;
+    @ApiModelProperty("三级分销人名称")
+    private String threeLevelUserName;
+    @ApiModelProperty("三级分销比例")
+    private BigDecimal threeDetailProportion;
+    @ApiModelProperty("三级分销金额")
+    private BigDecimal threeDetailPremiums;
+    **/
+
+    @ApiModelProperty("用户id")
+    private String userId;
+
+    @ApiModelProperty("代理人名称")
+    private String agentName;
+
+    @ApiModelProperty("代理人级别")
+    private String agentLevel;
+}

+ 12 - 1
src/main/java/com/ydtech/modules/admin/model/vo/SysUserAccountVo.java

@@ -3,7 +3,6 @@ package com.ydtech.modules.admin.model.vo;
 
 import com.baomidou.mybatisplus.annotation.FieldFill;
 import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.ydtech.modules.protocols.entity.po.InsFeeOrderNew;
 import io.swagger.annotations.ApiModel;
@@ -111,6 +110,14 @@ public class SysUserAccountVo {
     @ApiModelProperty(value = "预收推广费")
     private BigDecimal willPromotion;
 
+    //  add by  hxl  2024-06-03   添加实收的手续费佣金、预收非跟单佣金、预收推广费
+    @ApiModelProperty(value = "实收手续费佣金")
+    private BigDecimal receivedWillHalding;
+    @ApiModelProperty(value = "实收非跟单佣金")
+    private BigDecimal receivedWillDocumentary;
+    @ApiModelProperty(value = "实收推广费")
+    private BigDecimal receivedWillPromotion;
+
 
     @ApiModelProperty(value = "提现中手续费佣金")
     private BigDecimal withdrawalHalding;
@@ -133,5 +140,9 @@ public class SysUserAccountVo {
     private List<InsFeeOrderNew> insFeeOrderNewList;
     @ApiModelProperty("金额类型")
     private String  amountType;
+    //添加预收和实收前台逻辑的判断  add by hxl   2024-06-03
+    @ApiModelProperty("预收和实收的判断区分 预收是1  实收是2")
+    private String  auditingStatus;
+
 
 }

+ 8 - 3
src/main/java/com/ydtech/modules/admin/service/SysUserAccountService.java

@@ -3,11 +3,10 @@ package com.ydtech.modules.admin.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.modules.admin.model.po.SysUserAccount;
+import com.ydtech.modules.admin.model.vo.SubOrder;
 import com.ydtech.modules.admin.model.vo.SysUserAccountVo;
 import com.ydtech.modules.order.entity.BasePageResult;
 
-import java.util.List;
-
 /**
 * @author Administrator
 * @description 针对表【sys_user_account(用户账户表)】的数据库操作Service
@@ -27,5 +26,11 @@ public interface SysUserAccountService extends IService<SysUserAccount> {
     SysUserAccountVo getSysAllAmount(String userId);
 
     SysUserAccountVo getInsOrders(SysUserAccountVo sysUserAccountVo);
-
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/6/3 15:16
+     *  @Description: 查询子订单的详情页面
+     */
+    SubOrder getSubOrderDetails(String subOrderId,String userId);
 }

+ 133 - 23
src/main/java/com/ydtech/modules/admin/service/impl/SysUserAccountServiceImpl.java

@@ -1,24 +1,25 @@
 package com.ydtech.modules.admin.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 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.modules.admin.constants.MoneyAttrConstants;
 import com.ydtech.modules.admin.constants.WithdrawTypeConstants;
 import com.ydtech.modules.admin.dao.SysUserAccountMapper;
+import com.ydtech.modules.admin.model.SysUser;
 import com.ydtech.modules.admin.model.po.SysAmountAuditingEntity;
 import com.ydtech.modules.admin.model.po.SysUserAccount;
 import com.ydtech.modules.admin.model.po.SysUserAccountHistory;
 import com.ydtech.modules.admin.model.po.SysUserBankCard;
+import com.ydtech.modules.admin.model.vo.SubOrder;
 import com.ydtech.modules.admin.model.vo.SysUserAccountVo;
-import com.ydtech.modules.admin.service.SysAmountAuditingService;
-import com.ydtech.modules.admin.service.SysUserAccountHistoryService;
-import com.ydtech.modules.admin.service.SysUserAccountService;
-import com.ydtech.modules.admin.service.SysUserBankCardService;
+import com.ydtech.modules.admin.service.*;
 import com.ydtech.modules.base.controller.BaseController;
 import com.ydtech.modules.esm.service.EsmUserReferrerService;
 import com.ydtech.modules.message.constants.MessageTypeConstants;
 import com.ydtech.modules.message.service.MessageSecretaryService;
+import com.ydtech.modules.order.dao.InsAreaCompanyMapper;
 import com.ydtech.modules.order.dao.InsOrdersMapper;
 import com.ydtech.modules.order.entity.BasePageResult;
 import com.ydtech.modules.order.entity.InsOrders;
@@ -71,6 +72,11 @@ public class SysUserAccountServiceImpl extends ServiceImpl<SysUserAccountMapper,
     @Autowired
     private MessageSecretaryService messageSecretaryService;
 
+    @Autowired
+    private InsAreaCompanyMapper insAreaCompanyMapper;
+
+    @Autowired
+    private SysUserService sysUserService;
 
     @Override
     @Transactional
@@ -281,30 +287,50 @@ public class SysUserAccountServiceImpl extends ServiceImpl<SysUserAccountMapper,
         if (ObjectUtils.isEmpty(sysUserAccount)) {
             return sysUserAccountVo;
         }
-
         BeanUtils.copyProperties(sysUserAccount, sysUserAccountVo);
-
         BigDecimal willHalding = BigDecimal.ZERO;        //预收手续费佣金
         BigDecimal willDocumentary = BigDecimal.ZERO;   //预收 非跟单佣金
         BigDecimal willPromotion = BigDecimal.ZERO;   //预收 推广
+        BigDecimal receivedWillHalding = BigDecimal.ZERO;        //实收手续费佣金
+        BigDecimal receivedWillDocumentary = BigDecimal.ZERO;   //实收非跟单佣金
+        BigDecimal receivedWillPromotion = BigDecimal.ZERO;   //实收推广费
         StringBuffer stringBuffer = new StringBuffer();
-
-        willPromotion = this.willPromotion(willPromotion, userId);  // 佣金
+        // 预收手续费佣金
+        willPromotion = this.willPromotionAll(willPromotion, userId,"1");
+        // 实收手续费佣金
+        receivedWillPromotion = this.willPromotionAll(willPromotion, userId,"2");
         // add by   hxl  修改sql 添加承保状态和不在审核表中的条件   begin ===============
-        //List<InsFeeOrderNew> willList = insFeeOrderNewService.getByUserId(userId);
-        List<InsFeeOrderNew> willList = insFeeOrderNewService.getByUserIdAndOrderStatusAndNoCheck(userId);
+        List<InsFeeOrderNew> willList = insFeeOrderNewService.getByUserIdAndOrderStatusAndNoCheckType(userId,"1");
+        List<InsFeeOrderNew> willListnew = insFeeOrderNewService.getByUserIdAndOrderStatusAndNoCheckType(userId,"2");
         //  add by  hxl   end ==========================
         if (!CollectionUtils.isEmpty(willList)) {
             for (InsFeeOrderNew item : willList) {
-                String quoteno = item.getInsOrderNo();
-                stringBuffer.append(quoteno).append(",");
                 if (ObjectUtils.isNotEmpty(item)) {
-                    this.willAmount(item, willHalding, willDocumentary, sysUserAccountVo);  // 推广 非跟单
+                    //1.预收手续费佣金  2. 预收非跟单佣金
+                    willHalding = willHalding.add(this.willAmountNew(item,1));
+                    willDocumentary = willDocumentary.add(this.willAmountNew(item,2));
                 }
             }
+        }
 
+        if (!CollectionUtils.isEmpty(willListnew)) {
+            for (InsFeeOrderNew item : willListnew) {
+                if (ObjectUtils.isNotEmpty(item)) {
+                    //1.实收手续费佣金  2. 实收非跟单佣金
+                    receivedWillHalding = willHalding.add(this.willAmountNew(item,1));
+                    receivedWillDocumentary = willDocumentary.add(this.willAmountNew(item,2));
+                }
+            }
         }
-//        提现现中
+        //预收手续费佣金
+        sysUserAccountVo.setWillHalding(willPromotion);
+        //预收非跟单佣金
+        sysUserAccountVo.setWillDocumentary(willDocumentary);
+        //实收手续费佣金
+        sysUserAccountVo.setReceivedWillHalding(receivedWillHalding);
+        //实收非跟单佣金
+        sysUserAccountVo.setReceivedWillDocumentary(receivedWillDocumentary);
+        //提现现中
         HashMap<String, Object> params = new HashMap<>();
         params.put("auditingStatus", "2");  // 待审核
         params.put("userId", userId);
@@ -315,12 +341,10 @@ public class SysUserAccountServiceImpl extends ServiceImpl<SysUserAccountMapper,
         params.put("userId", userId);
         List<SysAmountAuditingEntity> sysAmountAuditingApproved = sysAmountAuditingService.getProgressIng(params);
         this.judgeSysAmountAuditing(sysAmountAuditingApproved, sysUserAccountVo);
+        //预收手续费佣金
         sysUserAccountVo.setWillPromotion(willPromotion);
-        String ids = stringBuffer.toString();
-        if (ids.endsWith(",")) {
-            ids = ids.substring(0, ids.length() - 1);  // 去掉末尾的逗号
-        }
-        sysUserAccountVo.setIds(ids);
+        //实收手续费佣金
+        sysUserAccountVo.setReceivedWillPromotion(receivedWillPromotion);
         return sysUserAccountVo;
     }
 
@@ -329,14 +353,20 @@ public class SysUserAccountServiceImpl extends ServiceImpl<SysUserAccountMapper,
         ArrayList<InsFeeOrderNew> resultList = new ArrayList<>();
         HashMap<String, Object> params = new HashMap<>();
         params.put("userId", BaseController.getUser().getId());
+        //日期
         params.put("timeFiltering", sysUserAccountVo.getTimeFiltering());
-
+        // 预收和实收标志   1 预收 2.实收
+        params.put("type",sysUserAccountVo.getAuditingStatus());
+        sysUserAccountVo.setInsFeeOrderNewList(null);
         if ("3".equals(sysUserAccountVo.getAmountType())) {
-            List<InsFeeOrderNew> sumWillAmountGeneralization = insFeeOrderNewService.getSumWillAmountGeneralization(params);
+            List<InsFeeOrderNew> sumWillAmountGeneralization = insFeeOrderNewService.getSumWillAmountGeneralizationNew(params);
+            //List<InsFeeOrderNew> sumWillAmountGeneralization = insFeeOrderNewService.getSumWillAmountGeneralization(params);
             sysUserAccountVo.setInsFeeOrderNewList(sumWillAmountGeneralization);
         } else {
-            List<InsFeeOrderNew> resultInsFeeOrderNew = insFeeOrderNewService.getSumWillAmount(params);
-            if (!resultInsFeeOrderNew.isEmpty()) {
+
+            //List<InsFeeOrderNew> resultInsFeeOrderNew = insFeeOrderNewService.getSumWillAmount(params);
+            List<InsFeeOrderNew> resultInsFeeOrderNew = insFeeOrderNewService.getSumWillAmountNew(params);
+            if (resultInsFeeOrderNew!=null && resultInsFeeOrderNew.size()>0) {
                 for (InsFeeOrderNew item : resultInsFeeOrderNew) {
                     BigDecimal willPromotion = BigDecimal.ZERO;
                     if ("1".equals(sysUserAccountVo.getAmountType())) {
@@ -531,6 +561,86 @@ public class SysUserAccountServiceImpl extends ServiceImpl<SysUserAccountMapper,
             sysUserAccountVo.setWillDocumentary(sysUserAccountVo.getWillDocumentary().add(jqExportOtherCostsPremiums).add(syExportOtherCostsPremiums).add(noExportOtherCostsPremiums));
         }
     }
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/6/3 11:20
+     *  @Description:  通过类型查询预收、实收的金额
+     */
+    private BigDecimal willPromotionAll(BigDecimal willPromotion, String userId,String type) {
+        InsFeeOrderNew insFeeOrderNew = new InsFeeOrderNew();
+        insFeeOrderNew.setUserId(userId);
+        InsOrders InsOrders = insAreaCompanyService.selectByInFeeOrderNewByType(insFeeOrderNew,type);
+        if (ObjectUtils.isNotEmpty(InsOrders)) {
+            BigDecimal willFirstPremiums = ObjectUtils.defaultIfNull(InsOrders.getWillFirstPremiums(), BigDecimal.ZERO);
+            // 累加保费
+            willPromotion = willPromotion.add(willFirstPremiums);
+        }
+        return willPromotion;
+    }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/6/4 11:51
+     *  @Description:  获取费用
+     */
+    private BigDecimal willAmountNew(InsFeeOrderNew insFeeOrderNew, int type) {
+        BigDecimal  val= BigDecimal.ZERO;
+        if (ObjectUtils.isNotEmpty(insFeeOrderNew)) {
+            if(type==1){
+                // 交强手续费+商业手续费+非车手续费
+                val= val.add(insFeeOrderNew.getJqExportSuperviseCostsPremiums()).add(insFeeOrderNew.getSyExportSuperviseCostsPremiums()).add(insFeeOrderNew.getNoExportSuperviseCostsPremiums());
+            }else{
+                // 交强跟单出口费用+商业跟单出口费用+非车跟单出口费用
+                val= val.add(insFeeOrderNew.getJqExportOtherCostsPremiums()).add(insFeeOrderNew.getSyExportOtherCostsPremiums()).add(insFeeOrderNew.getNoExportOtherCostsPremiums());
+            }
+        }
+        return val;
+    }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/6/3 15:16
+     *  @Description: 查询子订单的详细信息
+     */
+    @Override
+    public SubOrder getSubOrderDetails(String subOrderId, String userId) {
+        SubOrder subOrder=insAreaCompanyMapper.getSubOrderDetails(subOrderId);
+        subOrder.setAgentName("");
+        subOrder.setAgentLevel("");
+        //根据用户id查询分销等级
+        InsFeeOrderNew insFeeOrderNew = insFeeOrderNewService.getOne(new LambdaQueryWrapper<InsFeeOrderNew>()
+                .eq(InsFeeOrderNew::getInsOrderNo, subOrder.getSubOrderId()));
+        if(userId.equals(insFeeOrderNew.getFirstLevelUserId())){
+            subOrder.setAgentName(this.getUserName(insFeeOrderNew.getFirstLevelUserId()));
+            subOrder.setAgentLevel("一级分销代理");
+        }
+        if(userId.equals(insFeeOrderNew.getTwoLevelUserId())){
+            subOrder.setAgentName(this.getUserName(insFeeOrderNew.getTwoLevelUserId()));
+            subOrder.setAgentLevel("二级分销代理");
+        }
+        if(userId.equals(insFeeOrderNew.getThreeLevelUserId())){
+            subOrder.setAgentName(this.getUserName(insFeeOrderNew.getThreeLevelUserId()));
+            subOrder.setAgentLevel("三级分销代理");
+        }
+        return subOrder;
+    }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/6/3 16:34
+     *  @Description: 查询分销人名称
+     */
+    private String getUserName(String userId) {
+        if(StringUtils.isNotEmpty(userId)){
+            SysUser sysUser = sysUserService.getBaseMapper().selectById(userId);
+            if(ObjectUtils.isNotEmpty(sysUser)){
+                return sysUser.getName();
+            }
+        }
+        return "";
+    }
 }
 
 

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

@@ -2,6 +2,7 @@ package com.ydtech.modules.order.dao;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ydtech.modules.admin.model.vo.SubOrder;
 import com.ydtech.modules.order.entity.InsAreaCompany;
 import com.ydtech.modules.order.entity.InsOrders;
 import com.ydtech.modules.order.entity.dto.InsAreaCompanyQueryDto;
@@ -76,6 +77,20 @@ public interface InsAreaCompanyMapper extends BaseMapper<InsAreaCompany> {
      *  @Description: 通过子订单查询订单id
      */
     List<InsAreaCompany> selectListById(@Param("id") String id);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/6/3 11:44
+     *  @Description:  通过状态查询预收和实收的金额
+     */
+    InsOrders selectSecondPromotionByNew(HashMap<String, Object> params);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/6/3 15:25
+     *  @Description: 获取订单详情页面
+     */
+    SubOrder getSubOrderDetails(String subOrderId);
 }
 
 

+ 7 - 0
src/main/java/com/ydtech/modules/order/service/InsAreaCompanyService.java

@@ -120,4 +120,11 @@ public interface InsAreaCompanyService extends IService<InsAreaCompany> {
     *  @Description: 批量更新险种状态
     */
     HttpResult updateBatchPruductById(String subOrderId);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/6/3 11:41
+     *  @Description:  通过类型查询数据
+     */
+    InsOrders selectByInFeeOrderNewByType(InsFeeOrderNew insFeeOrderNew, String type);
 }

+ 19 - 0
src/main/java/com/ydtech/modules/order/service/impl/InsAreaCompanyServiceImpl.java

@@ -353,6 +353,25 @@ public class InsAreaCompanyServiceImpl extends ServiceImpl<InsAreaCompanyMapper,
         company.setProduct(insOrders.getProduct());
         return company;
     }
+
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/6/3 11:42
+     *  @Description: 通过状态查询预收和实收金额
+     */
+    @Override
+    public InsOrders selectByInFeeOrderNewByType(InsFeeOrderNew insFeeOrderNew, String type) {
+        HashMap<String, Object> params = new HashMap<>();
+        String userId = insFeeOrderNew.getUserId();
+        params.put("userId", userId);
+        if(StringUtils.isNotEmpty(insFeeOrderNew.getIsDetail())){
+            params.put("id",insFeeOrderNew.getId());
+        }
+        params.put("type", type);
+        return baseMapper.selectSecondPromotionByNew(params);
+    }
 }
 
 

+ 21 - 0
src/main/java/com/ydtech/modules/protocols/dao/InsFeeOrderNewMapper.java

@@ -29,6 +29,27 @@ public interface InsFeeOrderNewMapper extends BaseMapper<InsFeeOrderNew> {
     List<InsFeeOrderNew> getSumWillAmount(HashMap<String, Object> params);
 
     List<InsFeeOrderNew> getSumWillAmountGeneralization(HashMap<String, Object> params);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/6/3 12:01
+     *  @Description: 查询预收和实收的金额数据
+     */
+    List<InsFeeOrderNew> getByUserIdAndOrderStatusAndNoCheckType(String userId, String type);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/6/3 14:35
+     *  @Description: 查询订单数据
+     */
+    List<InsFeeOrderNew> getSumWillAmountGeneralizationNew(HashMap<String, Object> params);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/6/3 14:42
+     *  @Description: 查询订单数据
+     */
+    List<InsFeeOrderNew> getSumWillAmountNew(HashMap<String, Object> params);
 }
 
 

+ 4 - 2
src/main/java/com/ydtech/modules/protocols/entity/po/InsFeeOrderNew.java

@@ -3,6 +3,7 @@ package com.ydtech.modules.protocols.entity.po;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.AllArgsConstructor;
 import lombok.Data;
@@ -10,7 +11,7 @@ import lombok.NoArgsConstructor;
 import org.springframework.util.ObjectUtils;
 
 import java.math.BigDecimal;
-import java.time.LocalDate;
+import java.util.Date;
 
 /**
  * @author: tz
@@ -416,7 +417,8 @@ public class InsFeeOrderNew {
 
     @ApiModelProperty(value = "签单日期")
     @TableField(exist = false)
-    private LocalDate signingTime;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date signingTime;
 
     @ApiModelProperty(value = "车牌号")
     @TableField(exist = false)

+ 21 - 1
src/main/java/com/ydtech/modules/protocols/service/InsFeeOrderNewService.java

@@ -47,5 +47,25 @@ public interface InsFeeOrderNewService extends IService<InsFeeOrderNew> {
 
 
     List<InsFeeOrderNew> getSumWillAmountGeneralization(HashMap<String, Object> params);
-
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/6/3 12:00
+     *  @Description: 通过类型查询数据
+     */
+    List<InsFeeOrderNew> getByUserIdAndOrderStatusAndNoCheckType(String userId, String number);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/6/3 14:32
+     *  @Description:  查询跟单明细的数据
+     */
+    List<InsFeeOrderNew> getSumWillAmountGeneralizationNew(HashMap<String, Object> params);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/6/3 14:41
+     *  @Description: 推广费
+     */
+    List<InsFeeOrderNew> getSumWillAmountNew(HashMap<String, Object> params);
 }

+ 20 - 0
src/main/java/com/ydtech/modules/protocols/service/impl/InsFeeOrderNewServiceImpl.java

@@ -82,4 +82,24 @@ public class InsFeeOrderNewServiceImpl extends ServiceImpl<InsFeeOrderNewMapper,
         return baseMapper.getSumWillAmountGeneralization(params);
 
     }
+
+    @Override
+    public List<InsFeeOrderNew> getByUserIdAndOrderStatusAndNoCheckType(String userId, String type) {
+        return baseMapper.getByUserIdAndOrderStatusAndNoCheckType(userId,type);
+    }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/6/3 14:32
+     *  @Description: 获取跟单费用列表
+     */
+    @Override
+    public List<InsFeeOrderNew> getSumWillAmountGeneralizationNew(HashMap<String, Object> params) {
+        return baseMapper.getSumWillAmountGeneralizationNew(params);
+    }
+
+    @Override
+    public List<InsFeeOrderNew> getSumWillAmountNew(HashMap<String, Object> params) {
+        return baseMapper.getSumWillAmountNew(params);
+    }
 }

+ 182 - 2
src/main/resources/mapper/modules/ins/InsFeeOrderNewMapper.xml

@@ -324,7 +324,187 @@
         </where>
         ) AS fee
     </select>
+    <select id="getByUserIdAndOrderStatusAndNoCheckType"
+            resultType="com.ydtech.modules.protocols.entity.po.InsFeeOrderNew">
+        select a.*  from
+            ins_fee_order_new a  left join ins_area_company ins  on  a.ins_order_no=ins.id
+        WHERE
+            a.user_id = #{userId}
+          and  ins.orderstatus ='3'
+          and a.ins_order_no
+          <if test="type=='1'">
+             not
+          </if>
+           in
+           (select ins_order_no from ins_fee_audit)
+    </select>
+    <select id="getSumWillAmountGeneralizationNew"
+            resultType="com.ydtech.modules.protocols.entity.po.InsFeeOrderNew">
+        SELECT
+        fee.id,
+        fee.userId,
+        fee.signingTime,
+        fee.licenseno,
+        fee.jqExportSuperviseCostsPremiums,
+        fee.syExportSuperviseCostsPremiums,
+        fee.noExportSuperviseCostsPremiums,
+        fee.jqExportOtherCostsPremiums,
+        fee.syExportOtherCostsPremiums,
+        fee.noExportOtherCostsPremiums,
+        fee.willAmount
+        FROM
+        (
+        SELECT
+        a.ins_order_no as "id",
+        a.user_id as "userId",
+        iac.signing_time as "signingTime",
+        o.licenseno as "licenseno",
+        a.jq_export_supervise_costs_premiums as "jqExportSuperviseCostsPremiums",
+        a.sy_export_supervise_costs_premiums as "syExportSuperviseCostsPremiums",
+        a.no_export_supervise_costs_premiums as "noExportSuperviseCostsPremiums",
+        a.jq_export_other_costs_premiums as "jqExportOtherCostsPremiums",
+        a.sy_export_other_costs_premiums as "syExportOtherCostsPremiums",
+        a.no_export_other_costs_premiums as "noExportOtherCostsPremiums",
+        a.first_detail_premiums as "willAmount"
+        FROM
+        ins_fee_order_new a
+        LEFT JOIN ins_area_company iac ON iac.id = a.ins_order_no
+        left join  ins_orders o ON o.orderno=iac.orderno
+        <where>
+            <if test='type == "1"'>
+                NOT
+            </if>
+            EXISTS (SELECT ins_order_no FROM ins_fee_audit fee where fee.ins_order_no =a.ins_order_no)
+            and iac.orderstatus = '3'
+            <if test="userId!=null and  userId!= ''">
+                AND a.first_level_user_id = #{userId}
+            </if>
+            <if test="timeFiltering!= null  and  timeFiltering  !=''">
+                <choose>
+                    <when  test="type=='1'">
+                        AND DATE_FORMAT(iac.signing_time, '%Y-%m' ) = #{timeFiltering}
+                    </when>
+                    <otherwise>
+                        AND DATE_FORMAT(iac.signing_time, '%Y-%m-%d' ) = #{timeFiltering}
+                    </otherwise>
+                </choose>
+            </if>
+        </where>
+        UNION
+        SELECT
+        a.ins_order_no as "id",
+        a.user_id as "userId",
+        iac.signing_time as "signingTime",
+        o.licenseno as "licenseno",
+        a.jq_export_supervise_costs_premiums as "jqExportSuperviseCostsPremiums",
+        a.sy_export_supervise_costs_premiums as "syExportSuperviseCostsPremiums",
+        a.no_export_supervise_costs_premiums as "noExportSuperviseCostsPremiums",
+        a.jq_export_other_costs_premiums as "jqExportOtherCostsPremiums",
+        a.sy_export_other_costs_premiums as "syExportOtherCostsPremiums",
+        a.no_export_other_costs_premiums as "noExportOtherCostsPremiums",
+        a.third_detail_premiums as "willAmount"
+        FROM
+        ins_fee_order_new a
+        LEFT JOIN ins_area_company iac ON iac.id = a.ins_order_no
+        left join  ins_orders o ON o.orderno=iac.orderno
+        <where>
+            <if test='type == "1"'>
+                NOT
+            </if>
+            EXISTS (SELECT ins_order_no FROM ins_fee_audit fee where fee.ins_order_no =a.ins_order_no)
+            and iac.orderstatus = '3'
+            <if test="userId!=null and  userId!= ''">
+                AND a.three_level_user_id = #{userId}
+            </if>
+            <if test="timeFiltering!= null  and  timeFiltering  !=''">
+                <choose>
+                    <when  test="type=='1'">
+                        AND DATE_FORMAT(iac.signing_time, '%Y-%m' ) = #{timeFiltering}
+                    </when>
+                    <otherwise>
+                        AND DATE_FORMAT(iac.signing_time, '%Y-%m-%d' ) = #{timeFiltering}
+                    </otherwise>
+                </choose>
+            </if>
+        </where>
+        UNION
+        SELECT
+        a.ins_order_no as "id",
+        a.user_id as "userId",
+        iac.signing_time as "signingTime",
+        o.licenseno as "licenseno",
+        a.jq_export_supervise_costs_premiums as "jqExportSuperviseCostsPremiums",
+        a.sy_export_supervise_costs_premiums as "syExportSuperviseCostsPremiums",
+        a.no_export_supervise_costs_premiums as "noExportSuperviseCostsPremiums",
+        a.jq_export_other_costs_premiums as "jqExportOtherCostsPremiums",
+        a.sy_export_other_costs_premiums as "syExportOtherCostsPremiums",
+        a.no_export_other_costs_premiums as "noExportOtherCostsPremiums",
+        a.second_detail_premiums as "willAmount"
+        FROM
+        ins_fee_order_new a
+        LEFT JOIN ins_area_company iac ON iac.id = a.ins_order_no
+        left join  ins_orders o ON o.orderno=iac.orderno
+        <where>
+            <if test='type == "1"'>
+                NOT
+            </if>
+            EXISTS (SELECT ins_order_no FROM ins_fee_audit fee where fee.ins_order_no =a.ins_order_no)
+            and iac.orderstatus = '3'
+            <if test="userId!=null and  userId!= ''">
+                AND a.two_level_user_id = #{userId}
+            </if>
+            <if test="timeFiltering!= null  and  timeFiltering  !=''">
+                <choose>
+                    <when  test="type=='1'">
+                        AND DATE_FORMAT(iac.signing_time, '%Y-%m' ) = #{timeFiltering}
+                    </when>
+                    <otherwise>
+                        AND DATE_FORMAT(iac.signing_time, '%Y-%m-%d' ) = #{timeFiltering}
+                    </otherwise>
+                </choose>
+            </if>
+        </where>
+        ) AS fee
+    </select>
 
-
-
+    <select id="getSumWillAmountNew"  resultType="com.ydtech.modules.protocols.entity.po.InsFeeOrderNew">
+        select
+        a.ins_order_no as "id",
+        a.user_id as "userId",
+        ins.signing_time as "signingTime",
+        o.licenseno as "licenseno",
+        a.jq_export_supervise_costs_premiums as "jqExportSuperviseCostsPremiums",
+        a.sy_export_supervise_costs_premiums as "syExportSuperviseCostsPremiums",
+        a.no_export_supervise_costs_premiums as "noExportSuperviseCostsPremiums",
+        a.jq_export_other_costs_premiums as "jqExportOtherCostsPremiums",
+        a.sy_export_other_costs_premiums as "syExportOtherCostsPremiums",
+        a.no_export_other_costs_premiums as "noExportOtherCostsPremiums"
+        from
+        ins_fee_order_new a  left join ins_area_company ins  on  a.ins_order_no=ins.id
+        left join  ins_orders o ON o.orderno=ins.orderno
+        <where>
+            <if test="userId !=null  and  userId !=''">
+                a.user_id = #{userId}
+            </if>
+            and  ins.orderstatus ='3'
+            and
+            <if test='type == "1"'>
+                NOT
+            </if>
+            EXISTS (SELECT ins_order_no FROM ins_fee_audit fee where fee.ins_order_no =a.ins_order_no)
+            <if test="timeFiltering!= null  and  timeFiltering  !=''">
+                <choose>
+                    <when  test='type == "1"'>
+                        AND DATE_FORMAT(ins.signing_time, '%Y-%m' ) = #{timeFiltering}
+                    </when>
+                    <otherwise>
+                        AND DATE_FORMAT(ins.signing_time, '%Y-%m-%d' ) = #{timeFiltering}
+                    </otherwise>
+                </choose>
+            </if>
+            <if test="amountType !=null  and amountType !=''  and amountType == 3 ">
+                and  (a.first_level_user_id is not  null   or  a.two_level_user_id is not null  or  a.three_level_user_id is  not  null )
+            </if>
+        </where>
+    </select>
 </mapper>

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

@@ -486,7 +486,7 @@
            iac.*
         FROM
            ins_area_company iac
-        JOIN ins_orders AS io  ON io.orderno = iac.orderno
+         left JOIN ins_orders AS io  ON io.orderno = iac.orderno
         WHERE
         1=1
         <if test="dateStr != null and dateStr != ''">
@@ -505,4 +505,85 @@
             AND iac.id =#{id}
         </if>
     </select>
+    <select id="selectSecondPromotionByNew" resultType="com.ydtech.modules.order.entity.InsOrders">
+        SELECT
+        sum( fee.p ) as  "willFirstPremiums"
+        FROM
+        (
+        SELECT
+        sum( a.first_detail_premiums ) AS p
+        FROM
+        ins_fee_order_new a
+        LEFT JOIN ins_area_company iac ON iac.id = a.ins_order_no
+        <where>
+            <if test='type == "1"'>
+                NOT
+            </if>
+            EXISTS
+            ( SELECT ins_order_no FROM ins_fee_audit AS b WHERE b.ins_order_no = a.ins_order_no )
+            and iac.orderstatus = '3'
+            <if test="userId!=null and  userId!= ''">
+                AND a.first_level_user_id = #{userId}
+            </if>
+            <if test="id  != null  and  id!=''">
+                AND  a.id =#{id}
+            </if>
+        </where>
+        UNION
+        SELECT
+        sum( a.third_detail_premiums ) AS p
+        FROM
+        ins_fee_order_new a
+        LEFT JOIN ins_area_company iac ON iac.id = a.ins_order_no
+        <where>
+            <if test='type == "1"'>
+                NOT
+            </if>
+            EXISTS ( SELECT ins_order_no FROM ins_fee_audit AS b WHERE b.ins_order_no = a.ins_order_no )
+            and iac.orderstatus = '3'
+            <if test="userId!=null and  userId!= ''">
+                AND a.three_level_user_id = #{userId}
+            </if>
+            <if test="id  != null  and  id!=''">
+                AND  a.id =#{id}
+            </if>
+        </where>
+        UNION
+        SELECT
+        sum( a.second_detail_premiums ) AS p
+        FROM
+        ins_fee_order_new a
+        LEFT JOIN ins_area_company iac ON iac.id = a.ins_order_no
+        <where>
+            <if test='type == "1"'>
+                NOT
+            </if>
+            EXISTS ( SELECT ins_order_no FROM ins_fee_audit AS b WHERE b.ins_order_no = a.ins_order_no )
+            and iac.orderstatus = '3'
+            <if test="userId!=null and  userId!= ''">
+                AND a.two_level_user_id = #{userId}
+            </if>
+            <if test="id  != null  and  id!=''">
+                AND  a.id =#{id}
+            </if>
+        </where>
+        ) AS fee
+    </select>
+
+
+    <select id="getSubOrderDetails" resultType="com.ydtech.modules.admin.model.vo.SubOrder">
+        SELECT
+            iac.id as subOrderId,
+            iac.signing_time    as signingTime,
+            iac.jqpremium  as  jqpremium,
+            iac.sypremium  as  sypremium,
+            iac.jypremium  as  jypremium,
+            io.licenseno  as  licenseno,
+            io.userid as userId
+        FROM
+            ins_area_company iac
+            LEFT  JOIN ins_orders AS io  ON io.orderno = iac.orderno
+        WHERE
+            iac.id=#{subOrderId}
+    </select>
 </mapper>