Pārlūkot izejas kodu

修改开票时保险机构获取的逻辑

lipf 1 mēnesi atpakaļ
vecāks
revīzija
07c16e0f43

+ 8 - 0
tenant/organization/src/main/java/com/jzg/organization/mapper/ReceivableMapper.java

@@ -285,4 +285,12 @@ public interface ReceivableMapper extends BaseMapper<InsPlyIncome> {
     InsPlyIncomeInvoiceSettlementVo querySettledAmountByInvoiceIds(@Param("invoiceIdList") List<String> invoiceIdList);
 
     List<PlatformCompanyFeeVO> selectPlatformCompanySettlementReport(@Param("query") SettlementReportQueryVo settlementReportQueryVo);
+
+    /**
+     * 查询应收涉及到的保险机构
+     *
+     * @author lipf
+     * @date 2026/8/6 9:38
+     */
+    List<String> queryDistinctParternerCompanyId(@Param("incomeIds") List<String> incomeIds);
 }

+ 8 - 3
tenant/organization/src/main/java/com/jzg/organization/service/impl/ReceivableServiceImpl.java

@@ -1789,9 +1789,11 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
 //            String incomeId = invoicingVo.getIncomeIds().get(0);
 
             // 这里的公司应该是支公司的公司
-            invoice.setCompanyId(invoicingVo.getCompanyId());
-
-            
+            List<String> parternerCompanyId = baseMapper.queryDistinctParternerCompanyId(invoicingVo.getIncomeIds());
+            if(CollUtil.size(parternerCompanyId) >1 || CollUtil.size(parternerCompanyId) == 0){
+                throw new ServiceException("勾选的应收订单对应的保险机构不唯一");
+            }
+            invoice.setCompanyId(parternerCompanyId.get(0));
             invoice.setInvoiceType(invoicingVo.getInvoiceType());
             //  开票类型  1、手续费  2、跟单费  3、驾意险手续费 4、驾意险跟单费 5、平台应收-车险 6、平台应收-非车险
             if("1".equals(invoicingVo.getInvoiceType()) || "2".equals(invoicingVo.getInvoiceType())){
@@ -1840,6 +1842,9 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
         if(invoicingVo == null){
             throw new ServiceException("无法开票,开票参数为空");
         }
+        if(CollUtil.isEmpty(invoicingVo.getIncomeIds())){
+            throw new SystemException("只选择要开票的应收数据");
+        }
 //        if(StrUtil.isEmpty(invoicingVo.getInvoiceNo())){
 //            throw new ServiceException("发票号不能为空");
 //        }

+ 13 - 0
tenant/organization/src/main/resources/mapper/ReceivableMapper.xml

@@ -330,6 +330,9 @@
     <select id="getReceivablePage" resultType="com.jzg.commons.entity.finance.po.InsPlyIncome">
         <include refid="query"/>
         and ipi.system_code = #{receivableQueryVo.systemCode}
+        <if test="receivableQueryVo.riskCode != null and receivableQueryVo.riskCode != '' ">
+            and io.product_name = #{receivableQueryVo.riskCode}
+        </if>
         <if test="receivableQueryVo.invoiceId != null and receivableQueryVo.invoiceId != ''" >
             AND ipi.id  in (
             select ipiil.income_id  from ins_ply_income_invoice_link ipiil where ipiil.invoice_id  = #{receivableQueryVo.invoiceId} and ipiil.is_delete = 0
@@ -2211,6 +2214,16 @@
         GROUP BY ipi.company_id, io.docking_person,io.docking_person_phone
         order by settle_idsStr desc
     </select>
+    <!-- 查询应收涉及到的保险机构 lipf 2026年8月6日09:38:54 -->
+    <select id="queryDistinctParternerCompanyId" resultType="java.lang.String">
+        select distinct ipi.partner_company_id  from ins_ply_income ipi
+        <where>
+            ipi.id in
+            <foreach collection="incomeIds" separator="," close=")" open="(" item="id">
+                #{id}
+            </foreach>
+        </where>
+    </select>
 
 
 </mapper>