shiyunteng
2026-05-25 5d080021659f60d24671d82d11c2db62b66075cd
feat:石煤机加工承揽合同模版以及统计数据测试调整
6个文件已修改
1个文件已添加
398 ■■■■■ 已修改文件
platformx-business-finance-api/src/main/java/com/by4cloud/platformx/business/dto/PaymentConfirmAddDTO.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-business-finance-api/src/main/java/com/by4cloud/platformx/business/entity/PaymentSlip.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-business-finance-api/src/main/java/com/by4cloud/platformx/business/vo/ContractDetailVo.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/PaymentConfirmServiceImpl.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/PaymentOffsetServiceImpl.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-business-finance-biz/src/main/resources/mapper/ContractMapper.xml 353 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-business-finance-biz/src/main/resources/template/ymjjgclht.docx 补丁 | 查看 | 原始文档 | blame | 历史
platformx-business-finance-api/src/main/java/com/by4cloud/platformx/business/dto/PaymentConfirmAddDTO.java
@@ -23,5 +23,7 @@
     */
    private String inOrOut;
    private String payType;
    private BigDecimal transationAmount;
}
platformx-business-finance-api/src/main/java/com/by4cloud/platformx/business/entity/PaymentSlip.java
@@ -28,6 +28,14 @@
    @Column(columnDefinition="bigint comment '客商ID'")
    private Long busGuestId;
    @Schema(description = "收款单位")
    @Column(columnDefinition="VARCHAR(64) comment '收款单位'")
    private String Payee;
    @Schema(description = "收款单位ID")
    @Column(columnDefinition="bigint comment '收款单位ID'")
    private Long PayeeCompId;
    @Schema(description = "收款日期")
    @Column(columnDefinition="datetime comment '收款日期'")
    private Date paymentTime;
platformx-business-finance-api/src/main/java/com/by4cloud/platformx/business/vo/ContractDetailVo.java
@@ -1,7 +1,5 @@
package com.by4cloud.platformx.business.vo;
import com.by4cloud.platformx.business.dto.ContractPaymentScheduleAddDTO;
import com.by4cloud.platformx.business.dto.ContractSubjectMatterAddDTO;
import com.by4cloud.platformx.business.entity.ContractPaymentSchedule;
import com.by4cloud.platformx.business.entity.ContractSubjectMatter;
import com.fasterxml.jackson.annotation.JsonFormat;
platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/PaymentConfirmServiceImpl.java
@@ -217,6 +217,7 @@
                ;
            }
        }else {
            List<Contract> customerContractList = contractService.list(Wrappers.<Contract>lambdaQuery().eq(Contract::getPartyAId, addDTO.getBusGuestId())
                    .eq(Contract::getPartyBId,SecurityUtils.getUser().getCompId()).orderByAsc(Contract::getCreateTime).apply(" amount != paid_amount"));
            if (ArrayUtil.isEmpty(customerContractList.toArray())) {
@@ -229,6 +230,15 @@
            if (ObjUtil.isNull(customer)) {
                return  R.failed("客商查询失败");
            }
            //新增付款单
            PaymentSlip slip = new PaymentSlip();
            slip.setBusGuestId(customer.getId());
            slip.setBusGuestName(customer.getCompanyName());
            slip.setPayeeCompId(SecurityUtils.getUser().getCompId());
            slip.setPaymentTime(addDTO.getConfirmTime());
            slip.setPaymentAmount(addDTO.getTransationAmount());
            slip.setPayType(addDTO.getPayType());
            paymentSlipMapper.insert(slip);
            BigDecimal transtionAmount = addDTO.getTransationAmount();
            //剩余付款
@@ -537,7 +547,7 @@
            return;
        }
        //保存付款单
        Boolean codeFlag = savePaymentSlip(customer,record);
        Boolean codeFlag = savePaymentSlip(customer,record,dept);
        if (codeFlag){
            log.error("付款单id:{},付款单已存在");
            return;
@@ -708,10 +718,12 @@
        }
    }
    private Boolean savePaymentSlip(BusinessCustomer customer, JSONObject record) {
    private Boolean savePaymentSlip(BusinessCustomer customer, JSONObject record,SysDept dept) {
        PaymentSlip slip = new PaymentSlip();
        slip.setBusGuestId(customer.getId());
        slip.setBusGuestName(customer.getCompanyName());
        slip.setPayee(dept.getName());
        slip.setPayeeCompId(dept.getDeptId());
        slip.setPaymentTime(ObjUtil.isNotNull(record.get("billDate"))?
                DateUtil.parse(record.getString("billDate"), DatePattern.NORM_DATETIME_FORMAT):new Date());
        slip.setPaymentAmount(ObjUtil.isNotNull(record.get("bodyItemOriTaxExcludedAmount"))?record.getBigDecimal("bodyItemOriTaxExcludedAmount"):new BigDecimal("0"));
platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/PaymentOffsetServiceImpl.java
@@ -11,6 +11,7 @@
import com.by4cloud.platformx.business.service.ContractService;
import com.by4cloud.platformx.business.service.PaymentOffsetService;
import com.by4cloud.platformx.common.core.util.R;
import com.by4cloud.platformx.common.security.util.SecurityUtils;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
@@ -33,12 +34,28 @@
    private final ContractPaymentScheduleMapper contractPaymentScheduleMapper;
    private final CurrentOverdueMapper currentOverdueMapper;
    private final HistoryOverdueMapper historyOverdueMapper;
    private final PaymentSlipMapper paymentSlipMapper;
    @Override
    public R add(PaymentOffset paymentOffset) {
        baseMapper.insert(paymentOffset);
        Contract contract = contractService.getById(paymentOffset.getContractId());
        //新增付款单
        PaymentSlip slip = new PaymentSlip();
        slip.setBusGuestId(paymentOffset.getBusGuestId());
        slip.setBusGuestName(paymentOffset.getBusGuestName());
        slip.setPayeeCompId(contract.getPartyBId());
        slip.setPayee(contract.getPartyB());
        slip.setPaymentTime(paymentOffset.getOffsetTime());
        slip.setPaymentAmount(paymentOffset.getOffsetAmount());
        slip.setPayType("3");
        paymentSlipMapper.insert(slip);
        PaymentConfirm lastConfirm = paymentConfirmMapper.selectOne(Wrappers.<PaymentConfirm>lambdaQuery().eq(PaymentConfirm::getContractId,contract.getId())
                .orderByDesc(PaymentConfirm::getCreateTime).last("limit 1"));
        BigDecimal lastTotal = new BigDecimal("0");
platformx-business-finance-biz/src/main/resources/mapper/ContractMapper.xml
@@ -186,69 +186,66 @@
        SELECT
            compName,
            SUM(CASE WHEN month_num = 1 THEN total_amount ELSE 0 END) AS 'srMonth1',
                SUM(CASE WHEN month_num = 1 AND pay_type = 0 THEN total_amount ELSE 0 END) AS 'xhMonth1',
                SUM(CASE WHEN month_num = 1 AND pay_type = 1 THEN total_amount ELSE 0 END) AS 'cdMonth1',
                SUM(CASE WHEN month_num = 1 AND pay_type = 2 THEN total_amount ELSE 0 END) AS 'qtMonth1',
                SUM(CASE WHEN month_num = 1 AND pay_type = 1 THEN total_amount ELSE 0 END) AS 'xhMonth1',
                SUM(CASE WHEN month_num = 1 AND pay_type = 2 THEN total_amount ELSE 0 END) AS 'cdMonth1',
                SUM(CASE WHEN month_num = 1 AND pay_type = 3 THEN total_amount ELSE 0 END) AS 'qtMonth1',
                SUM(CASE WHEN month_num = 2 THEN total_amount ELSE 0 END) AS 'srMonth2',
                SUM(CASE WHEN month_num = 2 AND pay_type = 0 THEN total_amount ELSE 0 END) AS 'xhMonth2',
                SUM(CASE WHEN month_num = 2 AND pay_type = 1 THEN total_amount ELSE 0 END) AS 'cdMonth2',
                SUM(CASE WHEN month_num = 2 AND pay_type = 2 THEN total_amount ELSE 0 END) AS 'qtMonth2',
                SUM(CASE WHEN month_num = 2 AND pay_type = 1 THEN total_amount ELSE 0 END) AS 'xhMonth2',
                SUM(CASE WHEN month_num = 2 AND pay_type = 2 THEN total_amount ELSE 0 END) AS 'cdMonth2',
                SUM(CASE WHEN month_num = 2 AND pay_type = 3 THEN total_amount ELSE 0 END) AS 'qtMonth2',
                SUM(CASE WHEN month_num = 3 THEN total_amount ELSE 0 END) AS 'srMonth3',
                SUM(CASE WHEN month_num = 3 AND pay_type = 0 THEN total_amount ELSE 0 END) AS 'xhMonth3',
                SUM(CASE WHEN month_num = 3 AND pay_type = 1 THEN total_amount ELSE 0 END) AS 'cdMonth3',
                SUM(CASE WHEN month_num = 3 AND pay_type = 2 THEN total_amount ELSE 0 END) AS 'qtMonth3',
                SUM(CASE WHEN month_num = 3 AND pay_type = 1 THEN total_amount ELSE 0 END) AS 'xhMonth3',
                SUM(CASE WHEN month_num = 3 AND pay_type = 2 THEN total_amount ELSE 0 END) AS 'cdMonth3',
                SUM(CASE WHEN month_num = 3 AND pay_type = 3 THEN total_amount ELSE 0 END) AS 'qtMonth3',
                SUM(CASE WHEN month_num = 4 THEN total_amount ELSE 0 END) AS 'srMonth4',
                SUM(CASE WHEN month_num = 4 AND pay_type = 0 THEN total_amount ELSE 0 END) AS 'xhMonth4',
                SUM(CASE WHEN month_num = 4 AND pay_type = 1 THEN total_amount ELSE 0 END) AS 'cdMonth4',
                SUM(CASE WHEN month_num = 4 AND pay_type = 2 THEN total_amount ELSE 0 END) AS 'qtMonth4',
                SUM(CASE WHEN month_num = 4 AND pay_type = 1 THEN total_amount ELSE 0 END) AS 'xhMonth4',
                SUM(CASE WHEN month_num = 4 AND pay_type = 2 THEN total_amount ELSE 0 END) AS 'cdMonth4',
                SUM(CASE WHEN month_num = 4 AND pay_type = 3 THEN total_amount ELSE 0 END) AS 'qtMonth4',
                SUM(CASE WHEN month_num = 5 THEN total_amount ELSE 0 END) AS 'srMonth5',
                SUM(CASE WHEN month_num = 5 AND pay_type = 0 THEN total_amount ELSE 0 END) AS 'xhMonth5',
                SUM(CASE WHEN month_num = 5 AND pay_type = 1 THEN total_amount ELSE 0 END) AS 'cdMonth5',
                SUM(CASE WHEN month_num = 5 AND pay_type = 2 THEN total_amount ELSE 0 END) AS 'qtMonth5',
                SUM(CASE WHEN month_num = 6 THEN total_amount ELSE 0 END) AS 'srMonth6',
                SUM(CASE WHEN month_num = 6 AND pay_type = 0 THEN total_amount ELSE 0 END) AS 'xhMonth6',
                SUM(CASE WHEN month_num = 6 AND pay_type = 1 THEN total_amount ELSE 0 END) AS 'cdMonth6',
                SUM(CASE WHEN month_num = 6 AND pay_type = 2 THEN total_amount ELSE 0 END) AS 'qtMonth6',
                SUM(CASE WHEN month_num = 6 AND pay_type = 1 THEN total_amount ELSE 0 END) AS 'xhMonth6',
                SUM(CASE WHEN month_num = 6 AND pay_type = 2 THEN total_amount ELSE 0 END) AS 'cdMonth6',
                SUM(CASE WHEN month_num = 6 AND pay_type = 3 THEN total_amount ELSE 0 END) AS 'qtMonth6',
                SUM(CASE WHEN month_num = 7 THEN total_amount ELSE 0 END) AS 'srMonth7',
                SUM(CASE WHEN month_num = 7 AND pay_type = 0 THEN total_amount ELSE 0 END) AS 'xhMonth7',
                SUM(CASE WHEN month_num = 7 AND pay_type = 1 THEN total_amount ELSE 0 END) AS 'cdMonth7',
                SUM(CASE WHEN month_num = 7 AND pay_type = 2 THEN total_amount ELSE 0 END) AS 'qtMonth7',
                SUM(CASE WHEN month_num = 7 AND pay_type = 1 THEN total_amount ELSE 0 END) AS 'xhMonth7',
                SUM(CASE WHEN month_num = 7 AND pay_type = 2 THEN total_amount ELSE 0 END) AS 'cdMonth7',
                SUM(CASE WHEN month_num = 7 AND pay_type = 3 THEN total_amount ELSE 0 END) AS 'qtMonth7',
                SUM(CASE WHEN month_num = 8 THEN total_amount ELSE 0 END) AS 'srMonth8',
                SUM(CASE WHEN month_num = 8 AND pay_type = 0 THEN total_amount ELSE 0 END) AS 'xhMonth8',
                SUM(CASE WHEN month_num = 8 AND pay_type = 1 THEN total_amount ELSE 0 END) AS 'cdMonth8',
                SUM(CASE WHEN month_num = 8 AND pay_type = 2 THEN total_amount ELSE 0 END) AS 'qtMonth8',
                SUM(CASE WHEN month_num = 8 AND pay_type = 1 THEN total_amount ELSE 0 END) AS 'xhMonth8',
                SUM(CASE WHEN month_num = 8 AND pay_type = 2 THEN total_amount ELSE 0 END) AS 'cdMonth8',
                SUM(CASE WHEN month_num = 8 AND pay_type = 3 THEN total_amount ELSE 0 END) AS 'qtMonth8',
                SUM(CASE WHEN month_num = 9 THEN total_amount ELSE 0 END) AS 'srMonth9',
                SUM(CASE WHEN month_num = 9 AND pay_type = 0 THEN total_amount ELSE 0 END) AS 'xhMonth9',
                SUM(CASE WHEN month_num = 9 AND pay_type = 1 THEN total_amount ELSE 0 END) AS 'cdMonth9',
                SUM(CASE WHEN month_num = 9 AND pay_type = 2 THEN total_amount ELSE 0 END) AS 'qtMonth9',
                SUM(CASE WHEN month_num = 9 AND pay_type = 1 THEN total_amount ELSE 0 END) AS 'xhMonth9',
                SUM(CASE WHEN month_num = 9 AND pay_type = 2 THEN total_amount ELSE 0 END) AS 'cdMonth9',
                SUM(CASE WHEN month_num = 9 AND pay_type = 3 THEN total_amount ELSE 0 END) AS 'qtMonth9',
                SUM(CASE WHEN month_num = 10 THEN total_amount ELSE 0 END) AS 'srMonth10',
                SUM(CASE WHEN month_num = 10 AND pay_type = 0 THEN total_amount ELSE 0 END) AS 'xhMonth10',
                SUM(CASE WHEN month_num = 10 AND pay_type = 1 THEN total_amount ELSE 0 END) AS 'cdMonth10',
                SUM(CASE WHEN month_num = 10 AND pay_type = 2 THEN total_amount ELSE 0 END) AS 'qtMonth10',
                SUM(CASE WHEN month_num = 10 AND pay_type = 1 THEN total_amount ELSE 0 END) AS 'xhMonth10',
                SUM(CASE WHEN month_num = 10 AND pay_type = 2 THEN total_amount ELSE 0 END) AS 'cdMonth10',
                SUM(CASE WHEN month_num = 10 AND pay_type = 3 THEN total_amount ELSE 0 END) AS 'qtMonth10',
                SUM(CASE WHEN month_num = 11 THEN total_amount ELSE 0 END) AS 'srMonth11',
                SUM(CASE WHEN month_num = 11 AND pay_type = 0 THEN total_amount ELSE 0 END) AS 'xhMonth11',
                SUM(CASE WHEN month_num = 11 AND pay_type = 1 THEN total_amount ELSE 0 END) AS 'cdMonth11',
                SUM(CASE WHEN month_num = 11 AND pay_type = 2 THEN total_amount ELSE 0 END) AS 'qtMonth11',
                SUM(CASE WHEN month_num = 11 AND pay_type = 1 THEN total_amount ELSE 0 END) AS 'xhMonth11',
                SUM(CASE WHEN month_num = 11 AND pay_type = 2 THEN total_amount ELSE 0 END) AS 'cdMonth11',
                SUM(CASE WHEN month_num = 11 AND pay_type = 3 THEN total_amount ELSE 0 END) AS 'qtMonth11',
                SUM(CASE WHEN month_num = 12 THEN total_amount ELSE 0 END) AS 'srMonth12',
                SUM(CASE WHEN month_num = 12 AND pay_type = 0 THEN total_amount ELSE 0 END) AS 'xhMonth12',
                SUM(CASE WHEN month_num = 12 AND pay_type = 1 THEN total_amount ELSE 0 END) AS 'cdMonth12',
                SUM(CASE WHEN month_num = 12 AND pay_type = 2 THEN total_amount ELSE 0 END) AS 'qtMonth12'
                SUM(CASE WHEN month_num = 12 AND pay_type = 1 THEN total_amount ELSE 0 END) AS 'xhMonth12',
                SUM(CASE WHEN month_num = 12 AND pay_type = 2 THEN total_amount ELSE 0 END) AS 'cdMonth12',
                SUM(CASE WHEN month_num = 12 AND pay_type = 3 THEN total_amount ELSE 0 END) AS 'qtMonth12'
        FROM (
                 SELECT
                     COALESCE(c.party_b, '未知单位') AS compName,
                     MONTH(confirm_time) AS month_num,
                     pay_type,
                     COALESCE(transation_amount, 0) AS total_amount
                 FROM payment_confirm pc,contract c
                 WHERE
                     pc.del_flag = '0'
                   And c.del_flag = '0'
                   AND pc.contract_id = c.id
                   AND confirm_time IS NOT NULL
                   AND transation_amount IS NOT NULL
                   AND YEAR(confirm_time) = #{queryDTO.year}
        AND    party_b_id IN
        SELECT
        COALESCE(pc.payee_comp_id, '未知单位') AS compName,
        MONTH(payment_time) AS month_num,
        pay_type,
        COALESCE(payment_amount, 0) AS total_amount
        FROM payment_slip pc
        WHERE
        pc.del_flag = '0'
        AND payment_time IS NOT NULL
        AND payment_amount IS NOT NULL
                   AND YEAR(payment_time) = #{queryDTO.year}
        AND    payee_comp_id IN
        <foreach collection="compIds" item="id" open="(" close=")" separator=",">
            #{id}
        </foreach>
@@ -260,10 +257,10 @@
            resultType="com.by4cloud.platformx.business.vo.ContractIncomeAnalysisCompVo">
        SELECT
            months.yf,
            COALESCE ( SUM( transation_amount ), 0 ) AS sr,
            COALESCE ( SUM( CASE WHEN pay_type = 0 THEN COALESCE ( transation_amount, 0 ) ELSE 0 END ), 0 ) AS xh,
            COALESCE ( SUM( CASE WHEN pay_type = 1 THEN COALESCE ( transation_amount, 0 ) ELSE 0 END ), 0 ) AS cd,
            COALESCE ( SUM( CASE WHEN pay_type = 2 THEN COALESCE ( transation_amount, 0 ) ELSE 0 END ), 0 ) AS qt
            COALESCE ( SUM( payment_amount ), 0 ) AS sr,
            COALESCE ( SUM( CASE WHEN pay_type = 1 THEN COALESCE ( payment_amount, 0 ) ELSE 0 END ), 0 ) AS xh,
            COALESCE ( SUM( CASE WHEN pay_type = 2 THEN COALESCE ( payment_amount, 0 ) ELSE 0 END ), 0 ) AS cd,
            COALESCE ( SUM( CASE WHEN pay_type = 3 THEN COALESCE ( payment_amount, 0 ) ELSE 0 END ), 0 ) AS qt
        FROM
            (
                SELECT
@@ -291,11 +288,11 @@
                SELECT
                    '12月'
            ) AS months
                LEFT JOIN payment_confirm pc ON months.yf = CONCAT( MONTH ( pc.confirm_time ), '月' )
                LEFT JOIN payment_slip pc ON months.yf = CONCAT( MONTH ( pc.payment_time ), '月' )
                AND pc.del_flag = '0'
                AND pc.confirm_time IS NOT NULL
                AND pc.transation_amount IS NOT NULL
                AND YEAR ( pc.confirm_time ) = #{queryDTO.year}
                AND pc.payment_time IS NOT NULL
                AND pc.payment_amount IS NOT NULL
                AND YEAR ( pc.payment_time ) = #{queryDTO.year}
                AND pc.comp_id = #{compId}
        WHERE
            1 = 1
@@ -312,29 +309,37 @@
                            SELECT
                                SUM( amount )
                            FROM
                                contract
                            contract c, business_customer bc
                            WHERE
                                party_b_id IN
                            bc.id = c.party_a_id
                            and c.del_flag = '0'
                            and bc.del_flag = '0'
                            and bc.area_id = b.area_id
                            and party_b_id IN
                            <foreach collection="compIds" item="id" open="(" close=")" separator=",">
                                #{id}
                            </foreach>
                ) * 100,
                            0
                ) AS zgbzb,
                            2
                ) AS sgbzb,
            SUM( CASE WHEN c.party_b_id = #{jxcCompId} THEN c.amount ELSE 0 END ) AS jxcze,
            ROUND(
                            SUM( CASE WHEN c.party_b_id = #{jxcCompId} THEN c.amount ELSE 0 END ) / (
                            SELECT
                                SUM( amount )
                            FROM
                                contract
                            WHERE
                                party_b_id IN
        <foreach collection="compIds" item="id" open="(" close=")" separator=",">
            #{id}
        </foreach>
                                contract c, business_customer bc
                                WHERE
                                bc.id = c.party_a_id
                                and c.del_flag = '0'
                                and bc.del_flag = '0'
                                and bc.area_id = b.area_id
                                and party_b_id IN
                                <foreach collection="compIds" item="id" open="(" close=")" separator=",">
                                    #{id}
                                </foreach>
                ) * 100,
                            0
                            2
                ) AS jxczb ,
            SUM( CASE WHEN c.party_b_id = #{smjCompId} THEN c.amount ELSE 0 END ) AS smjze,
            ROUND(
@@ -342,14 +347,18 @@
                            SELECT
                                SUM( amount )
                            FROM
                                contract
                            WHERE
                                party_b_id IN
        <foreach collection="compIds" item="id" open="(" close=")" separator=",">
            #{id}
        </foreach>
                                contract c, business_customer bc
                                WHERE
                                bc.id = c.party_a_id
                                and c.del_flag = '0'
                                and bc.del_flag = '0'
                                and bc.area_id = b.area_id
                                and party_b_id IN
                                <foreach collection="compIds" item="id" open="(" close=")" separator=",">
                                    #{id}
                                </foreach>
                ) * 100,
                            0
                            2
                ) AS smjzb ,
            SUM( CASE WHEN c.party_b_id = #{ymjCompId} THEN c.amount ELSE 0 END ) AS ymjze,
            ROUND(
@@ -357,14 +366,18 @@
                            SELECT
                                SUM( amount )
                            FROM
                                contract
                            contract c, business_customer bc
                            WHERE
                                party_b_id IN
        <foreach collection="compIds" item="id" open="(" close=")" separator=",">
            #{id}
        </foreach>
                            bc.id = c.party_a_id
                            and c.del_flag = '0'
                            and bc.del_flag = '0'
                            and bc.area_id = b.area_id
                            and party_b_id IN
                            <foreach collection="compIds" item="id" open="(" close=")" separator=",">
                                #{id}
                            </foreach>
                ) * 100,
                            0
                            2
                ) AS ymjzb ,
            SUM( CASE WHEN c.party_b_id = #{tfCompId} THEN c.amount ELSE 0 END ) AS tfze,
            ROUND(
@@ -372,14 +385,18 @@
                            SELECT
                                SUM( amount )
                            FROM
                                contract
                            WHERE
                                party_b_id IN
        contract c, business_customer bc
        WHERE
        bc.id = c.party_a_id
        and c.del_flag = '0'
        and bc.del_flag = '0'
        and bc.area_id = b.area_id
        and party_b_id IN
        <foreach collection="compIds" item="id" open="(" close=")" separator=",">
            #{id}
        </foreach>
                ) * 100,
                            0
                            2
                ) AS tfzb
        FROM
            contract c
@@ -401,29 +418,37 @@
        SELECT
        SUM( amount )
        FROM
        contract
        contract c, business_customer bc
        WHERE
        party_b_id IN
        bc.id = c.party_a_id
        and c.del_flag = '0'
        and bc.del_flag = '0'
        and bc.industry_id = b.industry_id
        and party_b_id IN
        <foreach collection="compIds" item="id" open="(" close=")" separator=",">
            #{id}
        </foreach>
        ) * 100,
        0
        ) AS zgbzb,
        2
        ) AS sgbzb,
        SUM( CASE WHEN c.party_b_id = #{jxcCompId} THEN c.amount ELSE 0 END ) AS jxcze,
        ROUND(
        SUM( CASE WHEN c.party_b_id = #{jxcCompId} THEN c.amount ELSE 0 END ) / (
        SELECT
        SUM( amount )
        FROM
        contract
        contract c, business_customer bc
        WHERE
        party_b_id IN
        bc.id = c.party_a_id
        and c.del_flag = '0'
        and bc.del_flag = '0'
        and bc.industry_id = b.industry_id
        and party_b_id IN
        <foreach collection="compIds" item="id" open="(" close=")" separator=",">
            #{id}
        </foreach>
        ) * 100,
        0
        2
        ) AS jxczb ,
        SUM( CASE WHEN c.party_b_id = #{smjCompId} THEN c.amount ELSE 0 END ) AS smjze,
        ROUND(
@@ -431,14 +456,18 @@
        SELECT
        SUM( amount )
        FROM
        contract
        contract c, business_customer bc
        WHERE
        party_b_id IN
        bc.id = c.party_a_id
        and c.del_flag = '0'
        and bc.del_flag = '0'
        and bc.industry_id = b.industry_id
        and party_b_id IN
        <foreach collection="compIds" item="id" open="(" close=")" separator=",">
            #{id}
        </foreach>
        ) * 100,
        0
        2
        ) AS smjzb ,
        SUM( CASE WHEN c.party_b_id = #{ymjCompId} THEN c.amount ELSE 0 END ) AS ymjze,
        ROUND(
@@ -446,14 +475,18 @@
        SELECT
        SUM( amount )
        FROM
        contract
        contract c, business_customer bc
        WHERE
        party_b_id IN
        bc.id = c.party_a_id
        and c.del_flag = '0'
        and bc.del_flag = '0'
        and bc.industry_id = b.industry_id
        and party_b_id IN
        <foreach collection="compIds" item="id" open="(" close=")" separator=",">
            #{id}
        </foreach>
        ) * 100,
        0
        2
        ) AS ymjzb ,
        SUM( CASE WHEN c.party_b_id = #{tfCompId} THEN c.amount ELSE 0 END ) AS tfze,
        ROUND(
@@ -461,14 +494,18 @@
        SELECT
        SUM( amount )
        FROM
        contract
        contract c, business_customer bc
        WHERE
        party_b_id IN
        bc.id = c.party_a_id
        and c.del_flag = '0'
        and bc.del_flag = '0'
        and bc.industry_id = b.industry_id
        and party_b_id IN
        <foreach collection="compIds" item="id" open="(" close=")" separator=",">
            #{id}
        </foreach>
        ) * 100,
        0
        2
        ) AS tfzb
        FROM
        contract c
@@ -490,29 +527,37 @@
        SELECT
        SUM( amount )
        FROM
        contract
        contract c, business_customer bc
        WHERE
        party_b_id IN
        bc.id = c.party_a_id
        and c.del_flag = '0'
        and bc.del_flag = '0'
        and bc.class_id = b.class_id
        and party_b_id IN
        <foreach collection="compIds" item="id" open="(" close=")" separator=",">
            #{id}
        </foreach>
        ) * 100,
        0
        ) AS zgbzb,
        2
        ) AS sgbzb,
        SUM( CASE WHEN c.party_b_id = #{jxcCompId} THEN c.amount ELSE 0 END ) AS jxcze,
        ROUND(
        SUM( CASE WHEN c.party_b_id = #{jxcCompId} THEN c.amount ELSE 0 END ) / (
        SELECT
        SUM( amount )
        FROM
        contract
        contract c, business_customer bc
        WHERE
        party_b_id IN
        bc.id = c.party_a_id
        and c.del_flag = '0'
        and bc.del_flag = '0'
        and bc.class_id = b.class_id
        and party_b_id IN
        <foreach collection="compIds" item="id" open="(" close=")" separator=",">
            #{id}
        </foreach>
        ) * 100,
        0
        2
        ) AS jxczb ,
        SUM( CASE WHEN c.party_b_id = #{smjCompId} THEN c.amount ELSE 0 END ) AS smjze,
        ROUND(
@@ -520,14 +565,18 @@
        SELECT
        SUM( amount )
        FROM
        contract
        contract c, business_customer bc
        WHERE
        party_b_id IN
        bc.id = c.party_a_id
        and c.del_flag = '0'
        and bc.del_flag = '0'
        and bc.class_id = b.class_id
        and party_b_id IN
        <foreach collection="compIds" item="id" open="(" close=")" separator=",">
            #{id}
        </foreach>
        ) * 100,
        0
        2
        ) AS smjzb ,
        SUM( CASE WHEN c.party_b_id = #{ymjCompId} THEN c.amount ELSE 0 END ) AS ymjze,
        ROUND(
@@ -535,14 +584,18 @@
        SELECT
        SUM( amount )
        FROM
        contract
        contract c, business_customer bc
        WHERE
        party_b_id IN
        bc.id = c.party_a_id
        and c.del_flag = '0'
        and bc.del_flag = '0'
        and bc.class_id = b.class_id
        and party_b_id IN
        <foreach collection="compIds" item="id" open="(" close=")" separator=",">
            #{id}
        </foreach>
        ) * 100,
        0
        2
        ) AS ymjzb ,
        SUM( CASE WHEN c.party_b_id = #{tfCompId} THEN c.amount ELSE 0 END ) AS tfze,
        ROUND(
@@ -550,14 +603,18 @@
        SELECT
        SUM( amount )
        FROM
        contract
        contract c, business_customer bc
        WHERE
        party_b_id IN
        bc.id = c.party_a_id
        and c.del_flag = '0'
        and bc.del_flag = '0'
        and bc.class_id = b.class_id
        and party_b_id IN
        <foreach collection="compIds" item="id" open="(" close=")" separator=",">
            #{id}
        </foreach>
        ) * 100,
        0
        2
        ) AS tfzb
        FROM
        contract c
@@ -580,29 +637,37 @@
        SELECT
        SUM( amount )
        FROM
        contract
        contract c, business_customer bc
        WHERE
        party_b_id IN
        bc.id = c.party_a_id
        and c.del_flag = '0'
        and bc.del_flag = '0'
        and bc.export_service_attr = b.export_service_attr
        and party_b_id IN
        <foreach collection="compIds" item="id" open="(" close=")" separator=",">
            #{id}
        </foreach>
        ) * 100,
        0
        ) AS zgbzb,
        2
        ) AS sgbzb,
        SUM( CASE WHEN c.party_b_id = #{jxcCompId} THEN c.amount ELSE 0 END ) AS jxcze,
        ROUND(
        SUM( CASE WHEN c.party_b_id = #{jxcCompId} THEN c.amount ELSE 0 END ) / (
        SELECT
        SUM( amount )
        FROM
        contract
        contract c, business_customer bc
        WHERE
        party_b_id IN
        bc.id = c.party_a_id
        and c.del_flag = '0'
        and bc.del_flag = '0'
        and bc.export_service_attr = b.export_service_attr
        and party_b_id IN
        <foreach collection="compIds" item="id" open="(" close=")" separator=",">
            #{id}
        </foreach>
        ) * 100,
        0
        2
        ) AS jxczb ,
        SUM( CASE WHEN c.party_b_id = #{smjCompId} THEN c.amount ELSE 0 END ) AS smjze,
        ROUND(
@@ -610,14 +675,18 @@
        SELECT
        SUM( amount )
        FROM
        contract
        contract c, business_customer bc
        WHERE
        party_b_id IN
        bc.id = c.party_a_id
        and c.del_flag = '0'
        and bc.del_flag = '0'
        and bc.export_service_attr = b.export_service_attr
        and party_b_id IN
        <foreach collection="compIds" item="id" open="(" close=")" separator=",">
            #{id}
        </foreach>
        ) * 100,
        0
        2
        ) AS smjzb ,
        SUM( CASE WHEN c.party_b_id = #{ymjCompId} THEN c.amount ELSE 0 END ) AS ymjze,
        ROUND(
@@ -625,14 +694,18 @@
        SELECT
        SUM( amount )
        FROM
        contract
        contract c, business_customer bc
        WHERE
        party_b_id IN
        bc.id = c.party_a_id
        and c.del_flag = '0'
        and bc.del_flag = '0'
        and bc.export_service_attr = b.export_service_attr
        and party_b_id IN
        <foreach collection="compIds" item="id" open="(" close=")" separator=",">
            #{id}
        </foreach>
        ) * 100,
        0
        2
        ) AS ymjzb ,
        SUM( CASE WHEN c.party_b_id = #{tfCompId} THEN c.amount ELSE 0 END ) AS tfze,
        ROUND(
@@ -640,14 +713,18 @@
        SELECT
        SUM( amount )
        FROM
        contract
        contract c, business_customer bc
        WHERE
        party_b_id IN
        bc.id = c.party_a_id
        and c.del_flag = '0'
        and bc.del_flag = '0'
        and bc.export_service_attr = b.export_service_attr
        and party_b_id IN
        <foreach collection="compIds" item="id" open="(" close=")" separator=",">
            #{id}
        </foreach>
        ) * 100,
        0
        2
        ) AS tfzb
        FROM
        contract c
@@ -676,8 +753,8 @@
            #{id}
        </foreach>
        ) * 100,
        0
        ) AS zgbzb,
        2
        ) AS sgbzb,
        SUM( CASE WHEN c.party_b_id = #{jxcCompId} THEN c.amount ELSE 0 END ) AS jxcze,
        ROUND(
        SUM( CASE WHEN c.party_b_id = #{jxcCompId} THEN c.amount ELSE 0 END ) / (
@@ -691,7 +768,7 @@
            #{id}
        </foreach>
        ) * 100,
        0
        2
        ) AS jxczb ,
        SUM( CASE WHEN c.party_b_id = #{smjCompId} THEN c.amount ELSE 0 END ) AS smjze,
        ROUND(
@@ -706,7 +783,7 @@
            #{id}
        </foreach>
        ) * 100,
        0
        2
        ) AS smjzb ,
        SUM( CASE WHEN c.party_b_id = #{ymjCompId} THEN c.amount ELSE 0 END ) AS ymjze,
        ROUND(
@@ -721,7 +798,7 @@
            #{id}
        </foreach>
        ) * 100,
        0
        2
        ) AS ymjzb ,
        SUM( CASE WHEN c.party_b_id = #{tfCompId} THEN c.amount ELSE 0 END ) AS tfze,
        ROUND(
@@ -736,7 +813,7 @@
            #{id}
        </foreach>
        ) * 100,
        0
        2
        ) AS tfzb
        FROM
        contract c
platformx-business-finance-biz/src/main/resources/template/ymjjgclht.docx
Binary files differ