فهرست منبع

流程详情页面增加收款开票tag

wucl 1 سال پیش
والد
کامیت
70bb07017c

+ 12 - 0
biz-base/src/main/java/com/dayou/controller/FinanceInvoiceController.java

@@ -1,5 +1,6 @@
 package com.dayou.controller;
 
+import com.dayou.dto.MajorProductionSimpleDTO;
 import com.dayou.vo.FinanceInvoiceVo;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -104,5 +105,16 @@ public class FinanceInvoiceController extends BaseController {
         return RestResponse.data(ret);
     }
 
+    /**
+     * 收款开票信息
+     * @param simpleDTO
+     * @return
+     */
+    @PostMapping("/productions")
+    public RestResponse<List<FinanceInvoiceVo>> getInvoiceAmountInfo(@RequestBody MajorProductionSimpleDTO simpleDTO){
+        List<FinanceInvoiceVo> ret = financeInvoiceService.getInvoiceAmountInfo(simpleDTO);
+        return RestResponse.data(ret);
+    }
+
 }
 

+ 7 - 0
dao/src/main/java/com/dayou/mapper/FinanceInvoiceMapper.java

@@ -1,11 +1,14 @@
 package com.dayou.mapper;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.dayou.dto.MajorProductionSimpleDTO;
 import com.dayou.entity.FinanceInvoice;
 import com.dayou.dao.CustomBaseMapper;
 import com.dayou.vo.FinanceInvoiceVo;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
+
 /**
  * <p>
  * 财务开票 Mapper 接口
@@ -17,4 +20,8 @@ import org.apache.ibatis.annotations.Param;
 public interface FinanceInvoiceMapper extends CustomBaseMapper<FinanceInvoice> {
 
     Page<FinanceInvoiceVo> getPage(Page page, @Param("vo") FinanceInvoice financeInvoice, @Param("keyword") String keyword);
+
+    List<FinanceInvoiceVo> getInvoiceAmountInfo(@Param("dto") MajorProductionSimpleDTO simpleDTO);
+
+    List<FinanceInvoiceVo> getInvoiceAmountInfoEmptyProduction(@Param("dto") MajorProductionSimpleDTO simpleDTO);
 }

+ 102 - 0
dao/src/main/resources/mapper/FinanceInvoiceMapper.xml

@@ -84,4 +84,106 @@
         order by fi.created DESC
     </select>
 
+    <select id="getInvoiceAmountInfo" parameterType="com.dayou.dto.MajorProductionSimpleDTO" resultType="com.dayou.vo.FinanceInvoiceVo">
+        SELECT
+        pf.*,
+        orderFund.*,
+        invoice.*
+        FROM
+        (
+        SELECT
+        id,
+        business_type,
+        real_amount AS orderRealAmount,
+        should_amount
+        FROM
+        order_fund
+        WHERE
+        deleted = 0
+        AND business_type = 'MAJOR_BUSINESS'
+        AND business_id = #{dto.majorId}) orderFund
+        LEFT JOIN (
+        SELECT
+        order_fund_id,
+        bank_name,
+        real_amount AS invoiceAmount,
+        title AS invoiceTitle,
+        type AS invoiceType,
+        tax_no,
+        tax_amount AS invoiceTaxAmount,
+        tax_rate AS invoiceTaxRate,
+        state AS invoiceState,
+        real_make_date AS invoiceDate
+        FROM
+        finance_invoice
+        WHERE
+        state != '驳回'
+        AND state != '作废'
+        AND deleted = 0
+        ) invoice ON invoice.order_fund_id = orderFund.id
+        LEFT JOIN (
+        SELECT
+        mp.id,
+        p.real_amount AS prodRealAmount,
+        mp.standard_amount,
+        p.order_fund_id,
+        p.business_type,
+        mp.report_no as productionNo,
+        ( CASE mp.production WHEN 'STATEMENT' THEN '价值意见书' WHEN 'REPORT' THEN '报告' ELSE '复评函' END ) AS productionType
+        FROM
+        major_production mp
+        left JOIN production_fund p ON ( mp.report_no = ifnull(p.production_no,mp.report_no) AND mp.major_id = ifnull(p.business_id,mp.major_id ))
+        WHERE
+
+        mp.deleted = 0
+        AND mp.major_id = #{dto.majorId}
+        <if test="dto.productionNos!=null and dto.productionNos.size()>0">
+            and mp.report_no in (
+            <foreach collection="dto.productionNos" separator="," index="index" item="item">
+                #{item}
+            </foreach>
+            )
+        </if>
+        ) pf on ( orderFund.id = ifnull(pf.order_fund_id,orderFund.id) AND orderFund.business_type = ifnull(pf.business_type,orderFund.business_type) )
+        order by pf.id asc
+    </select>
+
+    <select id="getInvoiceAmountInfoEmptyProduction" parameterType="com.dayou.dto.MajorProductionSimpleDTO" resultType="com.dayou.vo.FinanceInvoiceVo">
+        SELECT
+            orderFund.*,
+            invoice.*
+        FROM
+            (
+                SELECT
+                    id,
+                    business_type,
+                    real_amount AS orderRealAmount,
+                    should_amount
+                FROM
+                    order_fund
+                WHERE
+                    deleted = 0
+                  AND business_type = 'MAJOR_BUSINESS'
+                  AND business_id = #{dto.majorId}) orderFund
+                LEFT JOIN (
+                SELECT
+                    order_fund_id,
+                    bank_name,
+                    real_amount AS invoiceAmount,
+                    title AS invoiceTitle,
+                    type AS invoiceType,
+                    tax_no,
+                    tax_amount AS invoiceTaxAmount,
+                    tax_rate AS invoiceTaxRate,
+                    state AS invoiceState,
+                    real_make_date AS invoiceDate
+                FROM
+                    finance_invoice
+                WHERE
+                    state != '驳回'
+		AND state != '作废'
+		AND deleted = 0
+            ) invoice ON invoice.order_fund_id = orderFund.id
+
+    </select>
 </mapper>

+ 4 - 5
dao/src/main/resources/mapper/MajorProductionMapper.xml

@@ -365,11 +365,10 @@
         LEFT JOIN user u1 ON u1.id = m.client_manager_id
         LEFT JOIN user u2 ON u2.id = m.principal_id
         LEFT JOIN department d ON d.id = m.department_id
-        LEFT JOIN ( SELECT id, major_id, report_no, NAME, repertory_state, production FROM major_production WHERE  deleted = 0 ) mp
-        ON ( mp.major_id = m.id AND mp.report_no = ifnull(wfni.business_min_id,wfni.business_sub_id) )
-        LEFT JOIN ( SELECT business_id, production_no, real_amount FROM production_fund WHERE business_type = 'MAJOR_BUSINESS' AND deleted = 0 ) pf ON (
-        pf.business_id = m.id
-        AND pf.production_no = wfni.business_min_id)
+        LEFT JOIN ( SELECT id, major_id, report_no, NAME, repertory_state, production FROM major_production WHERE deleted = 0 ) mp
+        ON ( mp.major_id = m.id AND (mp.report_no =  wfni.business_sub_id or mp.report_no = wfni.business_min_id))
+        LEFT JOIN ( SELECT business_id, production_no, real_amount FROM production_fund WHERE business_type = 'MAJOR_BUSINESS' AND deleted = 0 and real_amount is not null) pf
+        ON ( pf.business_id = m.id AND pf.production_no = mp.report_no  )
         WHERE u.deleted = 0
           and  wtr.handler_id =#{todoVO.handlerId}
           AND wnt.deleted = 0

+ 16 - 0
domain/src/main/java/com/dayou/dto/MajorProductionSimpleDTO.java

@@ -0,0 +1,16 @@
+package com.dayou.dto;
+
+import com.github.liangbaika.validate.annations.AbcValidate;
+import com.github.liangbaika.validate.enums.Check;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class MajorProductionSimpleDTO {
+
+    @AbcValidate(required = true,message = "业务id不能为空" ,fun = Check.NotNull)
+    private Long majorId;
+
+    private List<String> productionNos;
+}

+ 34 - 0
domain/src/main/java/com/dayou/vo/FinanceInvoiceVo.java

@@ -3,6 +3,8 @@ package com.dayou.vo;
 import com.dayou.entity.FinanceInvoice;
 import lombok.Data;
 
+import java.math.BigDecimal;
+
 @Data
 public class FinanceInvoiceVo extends FinanceInvoice {
 
@@ -11,4 +13,36 @@ public class FinanceInvoiceVo extends FinanceInvoice {
      */
     private String businessType;
 
+    /**
+     * 产品号
+     */
+    private String productionNo;
+
+    /**
+     * 产品类型
+     */
+    private String productionType;
+
+    /**
+     * 产品实收金额
+     */
+    private BigDecimal prodRealAmount;
+
+    /**
+     * 订单实收金额
+     */
+    private BigDecimal orderRealAmount;
+
+    /**
+     * 订单应收金额
+     */
+    private BigDecimal shouldAmount;
+
+    /**
+     * 标准收费
+     */
+    private BigDecimal standardAmount;
+
+
+
 }

+ 3 - 0
service/src/main/java/com/dayou/service/IFinanceInvoiceService.java

@@ -1,4 +1,5 @@
 package com.dayou.service;
+import com.dayou.dto.MajorProductionSimpleDTO;
 import com.dayou.entity.FinanceInvoice;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -34,4 +35,6 @@ public interface IFinanceInvoiceService extends IService<FinanceInvoice> {
     List<FinanceInvoice> getList(Long id);
 
         Boolean cancellation(Long id);
+
+    List<FinanceInvoiceVo> getInvoiceAmountInfo(MajorProductionSimpleDTO simpleDTO);
 }

+ 12 - 0
service/src/main/java/com/dayou/service/impl/FinanceInvoiceServiceImpl.java

@@ -1,6 +1,8 @@
 package com.dayou.service.impl;
 
+import cn.hutool.core.collection.CollectionUtil;
 import com.dayou.common.BaseEntity;
+import com.dayou.dto.MajorProductionSimpleDTO;
 import com.dayou.entity.FinanceInvoice;
 import com.dayou.enums.FinanceInvoiceState;
 import com.dayou.enums.ReportStatus;
@@ -26,6 +28,8 @@ import org.apache.poi.ss.usermodel.Row;
 import org.apache.poi.ss.usermodel.Sheet;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.springframework.web.multipart.MultipartFile;
+
+import java.util.Collections;
 import java.util.List;
 import java.util.ArrayList;
 import org.springframework.transaction.annotation.Transactional;
@@ -101,4 +105,12 @@ public class FinanceInvoiceServiceImpl extends ServiceImpl<FinanceInvoiceMapper,
 
         return this.update(new LambdaUpdateWrapper<FinanceInvoice>().set(FinanceInvoice::getState, FinanceInvoiceState.作废).eq(BaseEntity::getId,id));
     }
+
+    @Override
+    public List<FinanceInvoiceVo> getInvoiceAmountInfo(MajorProductionSimpleDTO simpleDTO) {
+        if (CollectionUtil.isEmpty(simpleDTO.getProductionNos())){
+            return financeInvoiceMapper.getInvoiceAmountInfoEmptyProduction(simpleDTO);
+        }
+        return financeInvoiceMapper.getInvoiceAmountInfo(simpleDTO);
+    }
 }

+ 3 - 1
service/src/main/java/com/dayou/service/impl/LuceneSearchServiceImpl.java

@@ -89,7 +89,9 @@ public class LuceneSearchServiceImpl implements ILuceneSearchService {
                 if (wrapper!=null){
                     List list = serviceBean.list(wrapper);
                     try {
-                        doCreatedLuceneIndex(list,docs);
+                        if (CollectionUtil.isNotEmpty(list)){
+                            doCreatedLuceneIndex(list,docs);
+                        }
                     } catch (NoSuchFieldException e) {
                         log.error("!!!create index field error");
                     }