瀏覽代碼

Merge remote-tracking branch 'refs/remotes/origin/dev_jzg_lipf_v20260622'

jiakai 2 月之前
父節點
當前提交
4b1c1b9acd

+ 62 - 0
commons/src/main/java/com/jzg/commons/entity/finance/dto/InsFeeFollowOrderReconciliationSaveDTO.java

@@ -0,0 +1,62 @@
+package com.jzg.commons.entity.finance.dto;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * 对账记录新增/修改参数
+ */
+@Data
+public class InsFeeFollowOrderReconciliationSaveDTO {
+
+    /**
+     * 主键ID(修改时必传,新增不传)
+     */
+    private Long id;
+
+    /**
+     * 年份
+     */
+    private Integer year;
+
+    /**
+     * 月份
+     */
+    private Integer month;
+
+    /**
+     * 保险公司ID
+     */
+    private String companyId;
+
+    /**
+     * 分支保险公司ID
+     */
+    private String partnerCompanyId;
+
+    /**
+     * 系统编码
+     */
+    private String systemCode;
+
+    /**
+     * 对账金额
+     */
+    private BigDecimal reconciliationAmount;
+
+    /**
+     * 虚增差额
+     */
+    private BigDecimal falselyIncreasedDifference;
+
+    /**
+     * 虚增原因
+     */
+    private String falselyIncreasedReason;
+
+    /**
+     * 开票类型
+     */
+    private String invoiceType;
+}

+ 96 - 0
commons/src/main/java/com/jzg/commons/entity/finance/po/InsFeeFollowOrderReconciliation.java

@@ -0,0 +1,96 @@
+package com.jzg.commons.entity.finance.po;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * 手续费跟单费对账表 实体类
+ */
+@Data
+@TableName("ins_fee_follow_order_reconciliation")
+public class InsFeeFollowOrderReconciliation {
+
+    /**
+     * 主键ID
+     */
+    private Long id;
+
+    /**
+     * 年份
+     */
+    private Integer year;
+
+    /**
+     * 月份
+     */
+    private Integer month;
+
+    /**
+     * 保险公司ID
+     */
+    private String companyId;
+
+    /**
+     * 分支保险公司ID
+     */
+    private String partnerCompanyId;
+
+    /**
+     * 系统编码
+     */
+    private String systemCode;
+
+    /**
+     * 创建人
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private String createBy;
+
+    /**
+     * 创建时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private LocalDateTime createTime;
+
+    /**
+     * 更新人
+     */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private String updateBy;
+
+    /**
+     * 更新时间
+     */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private LocalDateTime updateTime;
+
+    /**
+     * 逻辑删除标识 0-未删除 1-已删除
+     */
+    @TableLogic
+    private Integer isDelete;
+
+    /**
+     * 对账金额
+     */
+    private BigDecimal reconciliationAmount;
+
+    /**
+     * 虚增差额
+     */
+    private BigDecimal falselyIncreasedDifference;
+
+    /**
+     * 虚增原因
+     */
+    private String falselyIncreasedReason;
+
+    /**
+     * 开票类型
+     * 1、手续费 2、跟单费 3、驾意险手续费 4、驾意险跟单费 5、平台应收-车险 6、平台应收-非车险
+     */
+    private String invoiceType;
+}

+ 41 - 0
commons/src/main/java/com/jzg/commons/entity/finance/vo/InsFeeFollowOrderReconciliationVO.java

@@ -0,0 +1,41 @@
+package com.jzg.commons.entity.finance.vo;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * 对账记录返回视图对象
+ */
+@Data
+public class InsFeeFollowOrderReconciliationVO {
+
+    private Long id;
+
+    private Integer year;
+
+    private Integer month;
+
+    private String companyId;
+
+    private String partnerCompanyId;
+
+    private String systemCode;
+
+    private String createBy;
+
+    private LocalDateTime createTime;
+
+    private String updateBy;
+
+    private LocalDateTime updateTime;
+
+    private BigDecimal reconciliationAmount;
+
+    private BigDecimal falselyIncreasedDifference;
+
+    private String falselyIncreasedReason;
+
+    private String invoiceType;
+}

+ 1 - 0
gateway/src/main/resources/application-dev.yml

@@ -104,6 +104,7 @@ spring:
                   - /newCarJudgeRules/**
                   - /sysDistributionSetting/**
                   - /organization/**
+                  - /followReconciliation/**
 
         - id: summary_route
           uri: http://localhost:9898/

+ 1 - 0
gateway/src/main/resources/application-prod.yml

@@ -96,6 +96,7 @@ spring:
                   - /sysDistributionSetting/**
                   - /organization/wechat/**
                   - /signIn/**
+                  - /followReconciliation/**
 
         - id: summary_route
           uri: http://172.24.144.227:9898/

+ 1 - 0
gateway/src/main/resources/application-test.yml

@@ -98,6 +98,7 @@ spring:
                   - /account/**
                   - /accountCard/**
                   - /amountAuditing/**
+                  - /followReconciliation/**
 
         - id: summary_route
           uri: http://192.168.5.250:9898/

+ 60 - 0
tenant/organization/src/main/java/com/jzg/organization/controller/InsFeeFollowOrderReconciliationController.java

@@ -0,0 +1,60 @@
+package com.jzg.organization.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.jzg.commons.aop.OperatorTrajectory;
+import com.jzg.commons.constants.OperationTypeEnum;
+import com.jzg.commons.core.base.BaseController;
+import com.jzg.commons.core.page.HttpResult;
+import com.jzg.commons.entity.dto.AgreementAddParam;
+import com.jzg.commons.entity.finance.dto.InsFeeFollowOrderReconciliationSaveDTO;
+import com.jzg.commons.entity.finance.po.InsFeeFollowOrderReconciliation;
+import com.jzg.organization.mapper.PtlAgreementMapper;
+import com.jzg.organization.service.InsFeeFollowOrderReconciliationService;
+import io.swagger.v3.oas.annotations.Operation;
+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;
+
+
+/**
+ * 手续费跟单费对账 前端控制器
+ */
+@RestController
+@RequestMapping("/followReconciliation")
+public class InsFeeFollowOrderReconciliationController {
+
+    @Autowired
+    private InsFeeFollowOrderReconciliationService reconciliationService;
+    @Autowired
+    private BaseController baseController;
+
+
+    /**
+     * 跟单对账金额修改
+     * @param saveDTO
+     * @return
+     */
+    @PostMapping("/saveOrUpdate")
+    public HttpResult<String> saveOrUpdate(@RequestBody InsFeeFollowOrderReconciliationSaveDTO saveDTO) {
+        QueryWrapper<InsFeeFollowOrderReconciliation> insFeeFollowOrderReconciliationQueryWrapper = new QueryWrapper<>();
+        insFeeFollowOrderReconciliationQueryWrapper.eq("year", saveDTO.getYear())
+                .eq("month", saveDTO.getMonth())
+                .eq("partner_company_id", saveDTO.getPartnerCompanyId())
+                .eq("system_code", baseController.getSystemCode())
+                .last("LIMIT 1"); // 取一条即可,或者根据业务取最新的
+        InsFeeFollowOrderReconciliation insFeeFollowOrderReconciliation = reconciliationService.getOne(insFeeFollowOrderReconciliationQueryWrapper);
+
+        if (null != insFeeFollowOrderReconciliation){
+            insFeeFollowOrderReconciliation.setReconciliationAmount(saveDTO.getReconciliationAmount());
+            insFeeFollowOrderReconciliation.setFalselyIncreasedDifference(saveDTO.getFalselyIncreasedDifference());
+            insFeeFollowOrderReconciliation.setFalselyIncreasedReason(saveDTO.getFalselyIncreasedReason());
+            reconciliationService.updateById(insFeeFollowOrderReconciliation);
+        }else{
+            reconciliationService.saveReconciliation(saveDTO);
+        }
+        return HttpResult.ok("修改成功");
+    }
+
+}

+ 13 - 0
tenant/organization/src/main/java/com/jzg/organization/mapper/InsFeeFollowOrderReconciliationMapper.java

@@ -0,0 +1,13 @@
+package com.jzg.organization.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jzg.commons.entity.finance.po.InsFeeFollowOrderReconciliation;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 对账表 Mapper接口
+ */
+@Mapper
+public interface InsFeeFollowOrderReconciliationMapper extends BaseMapper<InsFeeFollowOrderReconciliation> {
+
+}

+ 28 - 0
tenant/organization/src/main/java/com/jzg/organization/service/InsFeeFollowOrderReconciliationService.java

@@ -0,0 +1,28 @@
+package com.jzg.organization.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.jzg.commons.entity.finance.dto.InsFeeFollowOrderReconciliationSaveDTO;
+import com.jzg.commons.entity.finance.po.InsFeeFollowOrderReconciliation;
+import com.jzg.commons.entity.finance.vo.InsFeeFollowOrderReconciliationVO;
+
+/**
+ * 对账记录 业务接口
+ */
+public interface InsFeeFollowOrderReconciliationService extends IService<InsFeeFollowOrderReconciliation> {
+
+    /**
+     * 新增对账记录
+     */
+    boolean saveReconciliation(InsFeeFollowOrderReconciliationSaveDTO saveDTO);
+
+    /**
+     * 修改对账记录
+     */
+    boolean updateReconciliation(InsFeeFollowOrderReconciliationSaveDTO saveDTO);
+
+    /**
+     * 根据ID查询详情
+     */
+    InsFeeFollowOrderReconciliationVO getDetailById(Long id);
+}

+ 53 - 0
tenant/organization/src/main/java/com/jzg/organization/service/impl/InsFeeFollowOrderReconciliationServiceImpl.java

@@ -0,0 +1,53 @@
+package com.jzg.organization.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.jzg.commons.core.base.BaseController;
+import com.jzg.commons.entity.finance.dto.InsFeeFollowOrderReconciliationSaveDTO;
+import com.jzg.commons.entity.finance.po.InsFeeFollowOrderReconciliation;
+import com.jzg.commons.entity.finance.vo.InsFeeFollowOrderReconciliationVO;
+import com.jzg.organization.mapper.InsFeeFollowOrderReconciliationMapper;
+import com.jzg.organization.service.InsFeeFollowOrderReconciliationService;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ * 对账记录 业务实现类
+ */
+@Service
+public class InsFeeFollowOrderReconciliationServiceImpl
+        extends ServiceImpl<InsFeeFollowOrderReconciliationMapper, InsFeeFollowOrderReconciliation>
+        implements InsFeeFollowOrderReconciliationService {
+
+    @Autowired
+    private BaseController baseController;
+
+    @Override
+    public boolean saveReconciliation(InsFeeFollowOrderReconciliationSaveDTO saveDTO) {
+        InsFeeFollowOrderReconciliation entity = new InsFeeFollowOrderReconciliation();
+        entity.setSystemCode(baseController.getSystemCode());
+        BeanUtils.copyProperties(saveDTO, entity);
+        return this.save(entity);
+    }
+
+    @Override
+    public boolean updateReconciliation(InsFeeFollowOrderReconciliationSaveDTO saveDTO) {
+        if (saveDTO.getId() == null) {
+            throw new IllegalArgumentException("修改操作ID不能为空");
+        }
+        InsFeeFollowOrderReconciliation entity = new InsFeeFollowOrderReconciliation();
+        BeanUtils.copyProperties(saveDTO, entity);
+        return this.updateById(entity);
+    }
+
+    @Override
+    public InsFeeFollowOrderReconciliationVO getDetailById(Long id) {
+        InsFeeFollowOrderReconciliation entity = this.getById(id);
+        if (entity == null) {
+            return null;
+        }
+        InsFeeFollowOrderReconciliationVO vo = new InsFeeFollowOrderReconciliationVO();
+        BeanUtils.copyProperties(entity, vo);
+        return vo;
+    }
+}

+ 27 - 4
tenant/organization/src/main/java/com/jzg/organization/service/impl/ReceivableServiceImpl.java

@@ -6,6 +6,7 @@ import cn.hutool.core.date.DateTime;
 import cn.hutool.core.lang.tree.Tree;
 import cn.hutool.core.lang.tree.TreeNodeConfig;
 import cn.hutool.core.lang.tree.TreeUtil;
+import cn.hutool.core.util.NumberUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.json.JSONUtil;
 import com.alibaba.excel.EasyExcel;
@@ -96,6 +97,9 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
     @Autowired
     private InsFeeFollowOrderMapper insFeeFollowOrderMapper;
 
+    @Autowired
+    private InsFeeFollowOrderReconciliationMapper insFeeFollowOrderReconciliationMapper;
+
     @Autowired
     private InsPlyFollowInvoiceLinkMapper insPlyFollowInvoiceLinkMapper;
 
@@ -3763,6 +3767,9 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
     @Transactional(rollbackFor = Exception.class)
     public InvoiceingResult followInvoicing(FollowInvoiceVo vo) {
         log.info("跟单费开票业务开始:参数=[{}]", JSONUtil.toJsonStr(vo));
+        if (!NumberUtil.isNumber(vo.getTaxPoint())){
+            throw new SystemException("请输入正确的税点");
+        }
 
         // 校验明细列表
         List<InsFeeFollowOrderVo> details = vo.getDetails();
@@ -4164,6 +4171,8 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
                                                    String partnerCompanyId,
                                                    Map<Integer, BigDecimal> monthReceivableMap,
                                                    Map<String, BigDecimal> invoicedMap) {
+
+        String systemCode = baseController.getSystemCode();
         // 获取当月应收保费,默认为0
         BigDecimal receivable = monthReceivableMap.getOrDefault(month, BigDecimal.ZERO);
         // 获取当月已开票金额,默认为0
@@ -4186,6 +4195,7 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
         queryWrapper.eq("year", year)
                 .eq("month", month)
                 .eq("partner_company_id", partnerCompanyId)
+                .eq("system_code", systemCode)
                 .last("LIMIT 1"); // 取一条即可,或者根据业务取最新的
         InsFeeFollowOrder dbOrder = insFeeFollowOrderMapper.selectOne(queryWrapper);
         if (dbOrder != null) {
@@ -4197,10 +4207,23 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
             // 现在按wwq的要求改成:未开票金额 = 对账金额 - 已开票金额
             vo.setUninvoiced(dbOrder.getReconciliationAmount().subtract(invoiced));
         } else {
-            // 数据库无记录,使用默认值或DTO里的值
-            vo.setReconciliationAmount(null);
-            vo.setFalselyIncreasedDifference(null);
-            vo.setFalselyIncreasedReason(null);
+            QueryWrapper<InsFeeFollowOrderReconciliation> insFeeFollowOrderReconciliationQueryWrapper = new QueryWrapper<>();
+            insFeeFollowOrderReconciliationQueryWrapper.eq("year", year)
+                    .eq("month", month)
+                    .eq("partner_company_id", partnerCompanyId)
+                    .eq("system_code", systemCode)
+                    .last("LIMIT 1"); // 取一条即可,或者根据业务取最新的
+            InsFeeFollowOrderReconciliation insFeeFollowOrderReconciliation = insFeeFollowOrderReconciliationMapper.selectOne(insFeeFollowOrderReconciliationQueryWrapper);
+            if (null != insFeeFollowOrderReconciliation){
+                vo.setReconciliationAmount(insFeeFollowOrderReconciliation.getReconciliationAmount());
+                vo.setFalselyIncreasedDifference(insFeeFollowOrderReconciliation.getFalselyIncreasedDifference());
+                vo.setFalselyIncreasedReason(insFeeFollowOrderReconciliation.getFalselyIncreasedReason());
+            }else{
+                // 数据库无记录,使用默认值或DTO里的值
+                vo.setReconciliationAmount(null);
+                vo.setFalselyIncreasedDifference(null);
+                vo.setFalselyIncreasedReason(null);
+            }
         }
         return vo;
     }