Explorar o código

1.保险手续费结算调整

wuhp %!s(int64=2) %!d(string=hai) anos
pai
achega
1ff14dfda8

+ 16 - 0
sql/Online.sql

@@ -161,3 +161,19 @@ CREATE TABLE `sys_user_role_kzt`  (
                                       `last_update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
                                       PRIMARY KEY (`id`) USING BTREE
 ) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '控制台用户关联角色' ROW_FORMAT = Dynamic;
+
+
+-- 保险手续费结算关联表
+DROP TABLE IF EXISTS `sys_insurance_handling_settlement_month`;
+CREATE TABLE `sys_insurance_handling_settlement_month`  (
+                                                            `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'id',
+                                                            `task_id` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '任务id',
+                                                            `settlement_documentary_fees_id` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '结算id',
+                                                            `settlement_amount` decimal(15,5) DEFAULT NULL COMMENT '结算金额',
+                                                            `total_amount` decimal(15,5) DEFAULT NULL COMMENT '开票金额',
+                                                            `remaining_amount` decimal(15,5) DEFAULT NULL COMMENT '剩余结算金额',
+                                                            `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
+                                                            `signing_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
+                                                            `creater_id` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '创建人',
+                                                            PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '保险手续费结算关联表' ROW_FORMAT = Dynamic;

+ 69 - 0
src/main/java/com/ydtech/modules/admin/controller/InsuranceHandlingSettlementMonthController.java

@@ -0,0 +1,69 @@
+package com.ydtech.modules.admin.controller;
+
+
+import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.fnc.dto.InsuranceHandlingSettlementMonthDto;
+import com.ydtech.modules.fnc.entity.InsPlyIncome;
+import com.ydtech.modules.fnc.service.InsuranceHandlingSettlementMonthService;
+import com.ydtech.modules.fnc.vo.InsPlyIncomeVo;
+import com.ydtech.modules.fnc.vo.InsuranceHandlingSettlementMonthVo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiModelProperty;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.validation.Valid;
+import java.util.List;
+
+/**
+ * <p>
+ *    保险手续费结算关联表
+ * </p>
+ *
+ * @author whp
+ * @since 2024-08-16
+ */
+@RestController
+@Api(tags = "保险手续费结算")
+@RequestMapping("SettlementHandling")
+public class InsuranceHandlingSettlementMonthController {
+
+    @Autowired
+    private InsuranceHandlingSettlementMonthService  insuranceHandlingSettlementMonthService;
+
+    /**
+     *
+     * @param insuranceHandlingSettlementMonthVo  结算传参
+     * @return  返回结算信息
+     */
+    @PostMapping("/queryList")
+    @ApiModelProperty(value = "查询")
+    public HttpResult<List<InsuranceHandlingSettlementMonthDto>> queryList(@RequestBody @Valid InsuranceHandlingSettlementMonthVo insuranceHandlingSettlementMonthVo) {
+        List<InsuranceHandlingSettlementMonthDto> result = insuranceHandlingSettlementMonthService.queryList(insuranceHandlingSettlementMonthVo);
+        return HttpResult.ok(result);
+    }
+
+    /**
+     * 结算新增
+     * @param insuranceHandlingSettlementMonthVo
+     * @return
+     */
+    @PostMapping("/insert")
+    @ApiModelProperty(value = "新增")
+    public HttpResult<InsuranceHandlingSettlementMonthDto> insertByEntity(@RequestBody InsuranceHandlingSettlementMonthVo insuranceHandlingSettlementMonthVo) {
+        return insuranceHandlingSettlementMonthService.insertByEntity(insuranceHandlingSettlementMonthVo);
+    }
+
+
+
+
+
+
+
+
+
+
+}

+ 25 - 0
src/main/java/com/ydtech/modules/fnc/dao/InsuranceHandlingSettlementMonthMapper.java

@@ -0,0 +1,25 @@
+package com.ydtech.modules.fnc.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ydtech.modules.fnc.dto.InsuranceHandlingSettlementMonthDto;
+import com.ydtech.modules.fnc.entity.InsuranceHandlingSettlementMonthEntity;
+import com.ydtech.modules.fnc.vo.InsuranceHandlingSettlementMonthVo;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * <p>
+ *    保险手续费结算关联表
+ * </p>
+ *
+ * @author whp
+ * @since 2024-08-16
+ */
+@Mapper
+public interface InsuranceHandlingSettlementMonthMapper extends BaseMapper<InsuranceHandlingSettlementMonthEntity> {
+    List<InsuranceHandlingSettlementMonthDto> queryList( @Param("vo") InsuranceHandlingSettlementMonthVo insuranceHandlingSettlementMonthVo);
+
+
+}

+ 46 - 0
src/main/java/com/ydtech/modules/fnc/dto/InsuranceHandlingSettlementMonthDto.java

@@ -0,0 +1,46 @@
+package com.ydtech.modules.fnc.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+@Data
+@ApiModel("保险手续费结算关联表返回dto")
+public class InsuranceHandlingSettlementMonthDto implements Serializable {
+    @ApiModelProperty("id")
+    private String id;
+
+    @ApiModelProperty("任务id")
+    private String taskId;
+
+    @ApiModelProperty("结算id")
+    private String settlementDocumentaryFeesId;
+
+    @ApiModelProperty("结算金额")
+    private BigDecimal settlementAmount;
+
+    @ApiModelProperty("开票金额")
+    private BigDecimal totalAmount;
+
+    @ApiModelProperty("剩余结算金额")
+    private BigDecimal remainingAmount;
+
+    @ApiModelProperty("创建时间")
+    private LocalDateTime createTime;
+
+    @ApiModelProperty("签单时间")
+    private LocalDateTime signingTime;
+
+    @ApiModelProperty("创建人")
+    private String createrId;
+
+    @ApiModelProperty("合作公司id")
+    private String partnerCompaniesId;
+
+    @ApiModelProperty("开票手续费")
+    private String invoiccommissionFeevalue;
+}

+ 65 - 0
src/main/java/com/ydtech/modules/fnc/entity/InsuranceHandlingSettlementMonthEntity.java

@@ -0,0 +1,65 @@
+package com.ydtech.modules.fnc.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ *
+ */
+@Getter
+@Setter
+@TableName("sys_insurance_handling_settlement_month")
+@ApiModel(value = "InsuranceHandlingSettlementMonthEntity对象", description = "保险手续费结算关联表")
+@NoArgsConstructor
+public class InsuranceHandlingSettlementMonthEntity implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty("id")
+    @TableField("id")
+    private String id;
+
+    @ApiModelProperty("任务id")
+    @TableField("task_id")
+    private String taskId;
+
+    @ApiModelProperty("结算id")
+    @TableField("settlement_documentary_fees_id")
+    private String settlementDocumentaryFeesId;
+
+    @ApiModelProperty("结算金额")
+    @TableField("settlement_amount")
+    private BigDecimal settlementAmount;
+
+    @ApiModelProperty("开票金额")
+    @TableField("total_amount")
+    private BigDecimal totalAmount;
+
+    @ApiModelProperty("剩余结算金额")
+    @TableField("remaining_amount")
+    private BigDecimal remainingAmount;
+
+    @ApiModelProperty("创建时间")
+    @TableField("create_time")
+    private LocalDateTime createTime;
+
+    @ApiModelProperty("创建时间")
+    @TableField("signing_time")
+    private LocalDateTime signingTime;
+
+    @ApiModelProperty("创建人")
+    @TableField("creater_id")
+    private String createrId;
+
+    @ApiModelProperty("合作公司id")
+    @TableField("partner_companies_id")
+    private String partnerCompaniesId;
+}

+ 31 - 0
src/main/java/com/ydtech/modules/fnc/service/InsuranceHandlingSettlementMonthService.java

@@ -0,0 +1,31 @@
+package com.ydtech.modules.fnc.service;
+
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.fnc.dto.InsuranceHandlingSettlementMonthDto;
+import com.ydtech.modules.fnc.entity.InsuranceHandlingSettlementMonthEntity;
+import com.ydtech.modules.fnc.vo.InsuranceHandlingSettlementMonthVo;
+
+import java.util.List;
+
+/**
+ * <p>
+ *    保险手续费结算关联表
+ * </p>
+ *
+ * @author whp
+ * @since 2024-08-16
+ */
+public interface InsuranceHandlingSettlementMonthService  extends IService<InsuranceHandlingSettlementMonthEntity> {
+
+    List<InsuranceHandlingSettlementMonthDto> queryList(InsuranceHandlingSettlementMonthVo insuranceHandlingSettlementMonthVo);
+
+    /**
+     * 结算新增
+     * @param insuranceHandlingSettlementMonthVo
+     * @return
+     */
+    HttpResult<InsuranceHandlingSettlementMonthDto> insertByEntity(InsuranceHandlingSettlementMonthVo insuranceHandlingSettlementMonthVo);
+
+}

+ 66 - 0
src/main/java/com/ydtech/modules/fnc/service/impl/InsuranceHandlingSettlementMonthServiceImpl.java

@@ -0,0 +1,66 @@
+package com.ydtech.modules.fnc.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.fnc.dao.InsuranceHandlingSettlementMonthMapper;
+import com.ydtech.modules.fnc.dto.InsuranceHandlingSettlementMonthDto;
+import com.ydtech.modules.fnc.entity.InsuranceHandlingSettlementMonthEntity;
+import com.ydtech.modules.fnc.service.InsuranceHandlingSettlementMonthService;
+import com.ydtech.modules.fnc.vo.InsuranceHandlingSettlementMonthVo;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import java.util.Comparator;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * <p>
+ * 保险手续费结算关联表
+ * </p>
+ *
+ * @author whp
+ * @since 2024-08-16
+ */
+@Slf4j
+@Service
+public class InsuranceHandlingSettlementMonthServiceImpl extends ServiceImpl<InsuranceHandlingSettlementMonthMapper, InsuranceHandlingSettlementMonthEntity> implements InsuranceHandlingSettlementMonthService {
+
+    @Override
+    public List<InsuranceHandlingSettlementMonthDto> queryList(InsuranceHandlingSettlementMonthVo insuranceHandlingSettlementMonthVo) {
+        List<InsuranceHandlingSettlementMonthDto> resultList = baseMapper.queryList(insuranceHandlingSettlementMonthVo);
+
+        List<InsuranceHandlingSettlementMonthDto> latestRecords = resultList.stream()
+                // 根据taskId分组,并收集每个taskId对应的所有记录
+                .collect(Collectors.groupingBy(
+                        InsuranceHandlingSettlementMonthDto::getTaskId,
+                        Collectors.toList()
+                ))
+                // 遍历每个分组,找出每组中createTime最新的记录
+                .entrySet().stream()
+                .map(entry -> entry.getValue().stream()
+                        .max(Comparator.comparing(InsuranceHandlingSettlementMonthDto::getCreateTime))
+                        .orElse(null) // 如果没有记录,则返回null(这里根据需求决定是否处理null)
+                )
+                // 收集结果到新的List中
+                .collect(Collectors.toList());
+
+        return resultList;
+    }
+
+    /**
+     * 结算新增
+     *
+     * @param insuranceHandlingSettlementMonthVo
+     * @return
+     */
+    @Override
+    public HttpResult<InsuranceHandlingSettlementMonthDto> insertByEntity(InsuranceHandlingSettlementMonthVo insuranceHandlingSettlementMonthVo) {
+        InsuranceHandlingSettlementMonthEntity insuranceHandlingSettlementMonthEntity = new InsuranceHandlingSettlementMonthEntity();
+        BeanUtils.copyProperties(insuranceHandlingSettlementMonthVo, insuranceHandlingSettlementMonthEntity);
+        baseMapper.insert(insuranceHandlingSettlementMonthEntity);
+        return HttpResult.ok("结算成功");
+    }
+}

+ 47 - 0
src/main/java/com/ydtech/modules/fnc/vo/InsuranceHandlingSettlementMonthVo.java

@@ -0,0 +1,47 @@
+package com.ydtech.modules.fnc.vo;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+@Data
+@ApiModel("保险手续费结算关联表查询Vo")
+public class InsuranceHandlingSettlementMonthVo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty("id")
+    private String id;
+
+    @ApiModelProperty("任务id")
+    private String taskId;
+
+    @ApiModelProperty("结算id")
+    private String settlementDocumentaryFeesId;
+
+    @ApiModelProperty("结算金额")
+    private BigDecimal settlementAmount;
+
+    @ApiModelProperty("开票金额")
+    private BigDecimal totalAmount;
+
+    @ApiModelProperty("剩余结算金额")
+    private BigDecimal remainingAmount;
+
+    @ApiModelProperty("创建时间")
+    private LocalDateTime createTime;
+
+    @ApiModelProperty("签单时间")
+    private LocalDateTime signingTime;
+
+    @ApiModelProperty("创建人")
+    private String createrId;
+
+    @ApiModelProperty("合作公司id")
+    private String partnerCompaniesId;
+}

+ 60 - 0
src/main/resources/mapper/modules/insuranceHandlingSettlementMonth/InsuranceHandlingSettlementMonthMapper.xml

@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ydtech.modules.fnc.dao.InsuranceHandlingSettlementMonthMapper">
+
+    <sql id="insuranceHandling_com">
+                a.id  as  "id",
+                a.task_id  as  "taskId",
+                a.settlement_documentary_fees_id  as  "settlementDocumentaryFeesId",
+                a.partner_companies_id  as  "partnerCompaniesId",
+                a.settlement_amount  as  "settlementAmount",
+                a.total_amount  as  "totalAmount",
+                a.remaining_amount  as  "remainingAmount",
+                a.create_time  as  "createTime",
+                a.signing_time  as  "signingTime",
+                a.creater_id  as  "createrId"
+    </sql>
+
+    <select id="queryList" resultType="com.ydtech.modules.fnc.dto.InsuranceHandlingSettlementMonthDto">
+        select ipi.task_id as "taskId" ,
+        sum(IFNULL(ipi.commission_feevalue),0) as"invoiccommissionFeevalue"
+        from
+        ins_ply_income ipi
+        left join ptl_agreement pa on pa.id=ipi.agreement_id
+        left join (
+        select
+        <include refid="insuranceHandling_com"/>
+        from
+        sys_insurance_handling_settlement_month a
+        <where>
+            1=1
+            <if test="vo.partnerCompaniesId  !=null  and  vo.partnerCompaniesId!=''">
+                AND  a.partner_companies_id=#{vo.partnerCompaniesId}
+            </if>
+            <if test="vo.taskId  !=null  and  vo.taskId!=''">
+                AND  a.task_id=#{vo.taskId}
+            </if>
+        </where>
+        )  b on b. taskId =ipi.task_id
+        <where>
+            pa.agreement_type ='2'
+            AND ipi.task_id is  not  null
+            <if test="vo.isNotCar  !=null and vo.isNotCar !=''">
+                AND ipi.is_not_car =#{vo.isNotCar}
+            </if>
+            <if test="vo.isnotDocumentary !=null and vo.isnotDocumentary !=''">
+                AND ipi.is_not_documentary =#{vo.isnotDocumentary}
+            </if>
+            <if test="vo.taskId  !=null  and  vo.taskId!=''">
+                AND  a.task_id=#{vo.taskId}
+            </if>
+        </where>
+        group by ipi.task_id
+
+
+    </select>
+
+
+
+
+</mapper>