Kaynağa Gözat

推广费用清单

Qchen 2 yıl önce
ebeveyn
işleme
f9793d2307

+ 10 - 0
src/main/java/com/ydtech/modules/fnc/entity/InsAreaCompany.java

@@ -234,4 +234,14 @@ public class InsAreaCompany implements Serializable {
     @ApiModelProperty("签单时间")
     @TableField("signing_time")
     private LocalDateTime signingTime;
+
+    @TableField(value = "productid")
+    private String productid;
+
+    /**
+     * 产品名称
+     */
+    @TableField(value = "product")
+    private String product;
+
 }

+ 42 - 0
src/main/java/com/ydtech/modules/fnc/service/impl/InsFeeAuditServiceImpl.java

@@ -36,6 +36,8 @@ import com.ydtech.modules.order.service.InsFeeOrderService;
 import com.ydtech.modules.protocol.entity.po.PtlAgreement;
 import com.ydtech.modules.protocol.service.PtlAgreementService;
 import com.ydtech.modules.protocols.entity.po.InsFeeOrderNew;
+import com.ydtech.modules.protocols.entity.po.InsFeeOrderNewDistribution;
+import com.ydtech.modules.protocols.service.InsFeeOrderNewDistributionService;
 import com.ydtech.modules.protocols.service.InsFeeOrderNewService;
 import com.ydtech.utils.DateUtil;
 import com.ydtech.utils.StringUtils;
@@ -45,6 +47,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
@@ -94,6 +97,10 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
     @Autowired
     private PtlAgreementService ptlAgreementService;
 
+    @Resource
+    private InsFeeOrderNewDistributionService insFeeOrderNewDistributionService;
+
+
 
     public InsFeeAuditServiceImpl(FncInsAreaCompanyMapper insAreaCompanyMapper, InsOrdersMapper insOrdersMapper, InsDeptFeeService insDeptFeeService,EsmUserReferrerService esmUserReferrerService,SysUserService sysUserService,InsCommissionService insCommissionService,InsCompanyFeeService insCompanyFeeService,InsPlyIncomeMapper insPlyIncomeMapper) {
         this.insAreaCompanyMapper = insAreaCompanyMapper;
@@ -176,6 +183,22 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
                 sysUserAccount.setSuborderId(orderNo);  // 订单Id
                 sysUserAccountService.addOrUpdate(sysUserAccount);
 
+                if (insFeeOrderNew.getFirstLevelUserId() != null) {
+                    createInsFeeOrderNewDistribution(insFeeOrderNew, insAreaCompany, order,
+                            insFeeOrderNew.getFirstLevelUserId(), insFeeOrderNew.getFirstDetailProportion(),
+                            insFeeOrderNew.getFirstDetailPremiums(), insFeeOrderNew.getDistributionStatus());
+                }
+                if (insFeeOrderNew.getTwoLevelUserId() != null) {
+                    createInsFeeOrderNewDistribution(insFeeOrderNew, insAreaCompany, order,
+                            insFeeOrderNew.getTwoLevelUserId(), insFeeOrderNew.getSecondDetailProportion(),
+                            insFeeOrderNew.getSecondDetailPremiums(), insFeeOrderNew.getDistributionStatus());
+                }
+                if (insFeeOrderNew.getThreeLevelUserId() != null) {
+                    createInsFeeOrderNewDistribution(insFeeOrderNew, insAreaCompany, order,
+                            insFeeOrderNew.getThreeLevelUserId(), insFeeOrderNew.getThirdDetailProportion(),
+                            insFeeOrderNew.getThirdDetailPremiums(), insFeeOrderNew.getDistributionStatus());
+                }
+
 
                 String deptid = insFeeOrderNew.getDeptId();
                 // 定义一个数组来存储各级机构的管理费
@@ -239,6 +262,25 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
         }
     }
 
+    private void createInsFeeOrderNewDistribution(InsFeeOrderNew insFeeOrderNew, InsAreaCompany insAreaCompany, InsOrders insOrders, String userId, BigDecimal commissionRate, BigDecimal commissionAmount, String commissionLevel) {
+        InsFeeOrderNewDistribution insFeeOrderNewDistribution = new InsFeeOrderNewDistribution();
+        insFeeOrderNewDistribution.setId(IdGenerate.nextId());
+        insFeeOrderNewDistribution.setOrderNo(insFeeOrderNew.getInsOrderNo());
+        insFeeOrderNewDistribution.setJqPolicyNo(insAreaCompany.getJqpolicyno());
+        insFeeOrderNewDistribution.setSyPolicyNo(insAreaCompany.getSypolicyno());
+        insFeeOrderNewDistribution.setLicenseNo(insOrders.getLicenseno());
+        insFeeOrderNewDistribution.setProductId(insAreaCompany.getProductid());
+        insFeeOrderNewDistribution.setProduct(insAreaCompany.getProduct());
+        insFeeOrderNewDistribution.setSignTime(insAreaCompany.getSigningTime());
+        insFeeOrderNewDistribution.setInsCompany(insAreaCompany.getInscompany());
+        insFeeOrderNewDistribution.setUserId(userId);
+        insFeeOrderNewDistribution.setCommissionRate(commissionRate);
+        insFeeOrderNewDistribution.setCommissionAmount(commissionAmount);
+        insFeeOrderNewDistribution.setCommissionLevel(commissionLevel);
+        // 保存insFeeOrderNewDistribution
+        insFeeOrderNewDistributionService.save(insFeeOrderNewDistribution);
+    }
+
     private String getDeptFeeHistoryLog(Integer index,BigDecimal[] jqDeptPremiumsLevels,BigDecimal[] syDeptPremiumsLevels,
                                         BigDecimal[] noDeptPremiumsLevels,BigDecimal distributionFee){
         StringBuilder remarkBuilder = new StringBuilder();

+ 3 - 1
src/main/java/com/ydtech/modules/protocols/controller/InsFeeOrderNewDistributionController.java

@@ -4,6 +4,8 @@ package com.ydtech.modules.protocols.controller;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.modules.admin.model.dto.SysDeptAccountHistoryDto;
 import com.ydtech.modules.admin.service.SysDeptAccountHistoryService;
+import com.ydtech.modules.order.entity.BasePageResult;
+import com.ydtech.modules.protocols.entity.po.InsFeeOrderNewDistribution;
 import com.ydtech.modules.protocols.entity.vo.InsFeeOrderNewDistributionVo;
 import com.ydtech.modules.protocols.service.InsFeeOrderNewDistributionService;
 import io.swagger.annotations.Api;
@@ -22,7 +24,7 @@ public class InsFeeOrderNewDistributionController {
     private InsFeeOrderNewDistributionService insFeeOrderNewDistributionService;
 
     @PostMapping("/queryPage")
-    @ApiOperation(value = "机构账户表日志记录分页")
+    @ApiOperation(value = "推广费用清单分页")
     public HttpResult getSysDeptAccountHistory(@RequestBody InsFeeOrderNewDistributionVo insFeeOrderNewDistributionVo){
         return HttpResult.ok("", insFeeOrderNewDistributionService.selectList(insFeeOrderNewDistributionVo));
     }

+ 14 - 0
src/main/java/com/ydtech/modules/protocols/entity/po/InsFeeOrderNewDistribution.java

@@ -10,6 +10,7 @@ import lombok.NoArgsConstructor;
 
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
+import java.util.Date;
 
 @TableName(value = "ins_fee_order_new_distribution", autoResultMap = true)
 @Data
@@ -70,4 +71,17 @@ public class InsFeeOrderNewDistribution {
     @TableField(value = "commission_level")
     private String commissionLevel;
 
+    @ApiModelProperty(value = "创建时间")
+    @TableField(value = "create_time")
+    private Date createTime;
+
+    @TableField(exist = false)
+    private String userName;
+
+    @TableField(exist = false)
+    private String deptId;
+
+    @TableField(exist = false)
+    private String deptName;
+
 }

+ 13 - 0
src/main/java/com/ydtech/modules/protocols/entity/vo/InsFeeOrderNewDistributionVo.java

@@ -63,6 +63,19 @@ public class InsFeeOrderNewDistributionVo {
     @TableField(value = "commission_level")
     private String commissionLevel;
 
+    @TableField(exist = false)
+    private String userName;
+
+    @TableField(exist = false)
+    private String deptId;
+
+    @TableField(exist = false)
+    private String deptName;
+
+    private String signTimeStart;
+
+    private String signTimeEnd;
+
     private int pageNum;
 
     private int pageSize;

+ 57 - 2
src/main/resources/mapper/modules/protocols/InsFeeOrderNewDistributionMapper.xml

@@ -12,14 +12,69 @@
         <result column="sign_time" jdbcType="TIMESTAMP" property="signTime"/>
         <result column="ins_company" jdbcType="VARCHAR" property="insCompany"/>
         <result column="user_id" jdbcType="VARCHAR" property="userId"/>
+        <result column="deptId" jdbcType="VARCHAR" property="deptId"/>
+        <result column="deptName" jdbcType="VARCHAR" property="deptName"/>
         <result column="commission_rate" jdbcType="DECIMAL" property="commissionRate"/>
         <result column="commission_amount" jdbcType="DECIMAL" property="commissionAmount"/>
         <result column="commission_level" jdbcType="DECIMAL" property="commissionLevel"/>
+        <result property="signTimeStart" column="signTimeStart" jdbcType="VARCHAR"/>
+        <result property="signTimeEnd" column="signTimeEnd" jdbcType="VARCHAR"/>
     </resultMap>
 
     <select id="getList" resultMap="BaseResultMap">
-        select * FROM ins_fee_order_new_distribution
+        select
+            a.id,
+            a.order_no,
+            a.jq_policy_no,
+            a.sy_policy_no,
+            a.license_no,
+            a.product_id,
+            a.product,
+            a.sign_time,
+            a.ins_company,
+            a.user_id,
+            a.commission_rate,
+            a.commission_amount,
+            a.commission_level,
+            b.name as userName,
+            c.name as deptName,
+            c.id as deptId
+            FROM ins_fee_order_new_distribution a
+            left join sys_user b on a.user_id = b.id
+            left join sys_dept c on b.dept_id = c.id
             where 1=1
-
+            <if test="insFeeOrderNewDistributionVo.orderNo != null and insFeeOrderNewDistributionVo.deptId != ''">
+                    and a.order_no = #{insFeeOrderNewDistributionVo.orderNo}
+            </if>
+            <if test="insFeeOrderNewDistributionVo.deptId != null and insFeeOrderNewDistributionVo.deptId != ''">
+                    and b.dept_id like concat(#{insFeeOrderNewDistributionVo.deptId},'%')
+            </if>
+            <if test="insFeeOrderNewDistributionVo.userId != null and insFeeOrderNewDistributionVo.userId != ''">
+                    and a.user_id = #{insFeeOrderNewDistributionVo.userId}
+            </if>
+            <if test="insFeeOrderNewDistributionVo.userName != null and insFeeOrderNewDistributionVo.userName != ''">
+                    and b.name = #{insFeeOrderNewDistributionVo.userName}
+            </if>
+            <if test="insFeeOrderNewDistributionVo.licenseNo != null and insFeeOrderNewDistributionVo.licenseNo != ''">
+                    and a.license_no = #{insFeeOrderNewDistributionVo.licenseNo}
+            </if>
+            <if test="insFeeOrderNewDistributionVo.product != null and insFeeOrderNewDistributionVo.product != ''">
+                    and a.product = #{insFeeOrderNewDistributionVo.product}
+            </if>
+            <if test="insFeeOrderNewDistributionVo.jqPolicyNo != null and insFeeOrderNewDistributionVo.jqPolicyNo != ''">
+                    and a.jq_policy_no = #{insFeeOrderNewDistributionVo.jqPolicyNo}
+            </if>
+            <if test="insFeeOrderNewDistributionVo.syPolicyNo != null and insFeeOrderNewDistributionVo.syPolicyNo != ''">
+                    and a.sy_policy_no = #{insFeeOrderNewDistributionVo.syPolicyNo}
+            </if>
+            <if test="insFeeOrderNewDistributionVo.insCompany != null and insFeeOrderNewDistributionVo.insCompany != ''">
+                    and a.ins_company = #{insFeeOrderNewDistributionVo.insCompany}
+            </if>
+            <if test="insFeeOrderNewDistributionVo.signTimeStart != null and insFeeOrderNewDistributionVo.signTimeStart != ''">
+                    and a.sign_time &gt;= #{insFeeOrderNewDistributionVo.signTimeStart}
+            </if>
+            <if test="insFeeOrderNewDistributionVo.signTimeEnd != null and insFeeOrderNewDistributionVo.signTimeEnd != ''">
+                    and a.sign_time &lt;= #{insFeeOrderNewDistributionVo.signTimeEnd}
+            </if>
     </select>
 </mapper>