gongchunyi
昨天 9a6a9d7baab7d84e396be2afa57c674e775341f1
src/main/resources/mapper/procurementrecord/ProcurementRecordMapper.xml
@@ -4,21 +4,23 @@
    <select id="listProcurementBySalesLedgerId" resultType="com.ruoyi.procurementrecord.dto.ProcurementDto">
        select
            t1.supplier_name,
            t2.product_category,
            t2.id,
            t3.id as recordId,
            t2.specification_model,
            t2.unit,
            t2.quantity,
            t2.min_stock,
            t2.quantity as quantity0,
            t2.tax_rate,
            t2.tax_inclusive_unit_price,
            t2.tax_inclusive_total_price,
            t2.tax_exclusive_total_price,
            t3.inbound_num as quantityStock
        from  purchase_ledger t1
        t1.supplier_name,
        t2.product_category,
        t2.id,
        t3.id as recordId,
        t2.specification_model,
        t2.product_model_id,
        t2.unit,
        t2.quantity,
        t2.min_stock,
        t2.warn_num,
        t2.quantity as quantity0,
        t2.tax_rate,
        t2.tax_inclusive_unit_price,
        t2.tax_inclusive_total_price,
        t2.tax_exclusive_total_price,
        t3.inbound_num as quantityStock
        from purchase_ledger t1
        left join sales_ledger_product t2 on t1.id = t2.sales_ledger_id
        left join procurement_record_storage t3 on t2.id = t3.sales_ledger_product_id
        where t1.purchase_contract_number = #{req.purchaseContractNumber}
@@ -29,128 +31,160 @@
    </select>
    <select id="listPage" resultType="com.ruoyi.procurementrecord.dto.ProcurementPageDto">
        select
        t3.supplier_name,
        t3.purchase_contract_number,
        t2.product_category,
        t3.supplier_name as supplierName,
        t3.purchase_contract_number as purchaseContractNumber,
        case when t2.product_category is null then t5.product_name
        else t2.product_category end as productCategory,
        t1.id,
        t1.sales_ledger_product_id,
        t1.create_user,
        t2.specification_model,
        t2.unit,
        t2.tax_rate,
        t2.tax_inclusive_unit_price,
        t2.tax_inclusive_total_price,
        t2.tax_exclusive_total_price,
        t1.inbound_batches,
        t1.inbound_num,
        t1.sales_ledger_product_id as salesLedgerProductId,
        t1.product_model_id as productModelId,
        t1.create_user as createUser,
        case when t2.specification_model is null then t4.model
        else t2.specification_model end as specificationModel,
        case when t2.unit is null then t4.unit
        else t2.unit end as unit,
        t2.tax_rate as taxRate,
        t2.tax_inclusive_unit_price as taxInclusiveUnitPrice,
        (t1.inbound_num * t2.tax_inclusive_unit_price) as taxInclusiveTotalPrice,
        (t1.inbound_num * t2.tax_inclusive_unit_price - t1.inbound_num * t2.tax_inclusive_unit_price * t2.tax_rate /
        100) as taxExclusiveTotalPrice,
        t1.inbound_batches as inboundBatches,
        t1.inbound_num as inboundNum,
        t1.inbound_num as inboundNum0,
        t1.create_time,
        t1.update_time,
        t1.create_by
        from  procurement_record_storage t1
                  left join sales_ledger_product t2 on t2.id = t1.sales_ledger_product_id
                  left join purchase_ledger t3 on t3.id = t2.sales_ledger_id
        t1.create_time as createTime,
        t1.update_time as updateTime,
        t1.create_by as createBy,
        t2.warn_num as warnNum,
        t1.out_stock_quantity as outStockQuantity,
        t1.shortage_description as shortageDescription
        from procurement_record_storage t1
        left join sales_ledger_product t2 on t2.id = t1.sales_ledger_product_id
        left join purchase_ledger t3 on t3.id = t2.sales_ledger_id
        left join product_model t4 on t4.id = t1.product_model_id
        left join product t5 on t5.id = t4.product_id
        <where>
            1 = 1
            <if test="req.supplierName != null and req.supplierName != ''">
                and t3.supplier_name like  concat('%',#{req.supplierName},'%')
                and t3.supplier_name like concat('%',#{req.supplierName},'%')
            </if>
            <if test="req.timeStr != null and req.timeStr != ''">
                and t1.create_time like concat('%',#{req.timeStr},'%')
            </if>
        </where>
    </select>
    <select id="list" resultType="com.ruoyi.procurementrecord.dto.ProcurementPageDto">
        select
            t3.supplier_name,
            t3.purchase_contract_number,
            t2.product_category,
            t1.id,
            t2.specification_model,
            t2.unit,
            t2.quantity,
            t2.quantity as quantity0,
            t2.tax_rate,
            t2.tax_inclusive_unit_price,
            t2.tax_inclusive_total_price,
            t2.tax_exclusive_total_price,
            t1.inbound_batches,
            t1.inbound_num,
            t1.create_time,
            t1.create_time as time,
            t1.create_by
        from  procurement_record_storage t1
                  left join sales_ledger_product t2 on t2.id = t1.sales_ledger_product_id
                  left join purchase_ledger t3 on t3.id = t2.sales_ledger_id
        select t3.supplier_name as supplierName,
               t3.purchase_contract_number as purchaseContractNumber,
               case
                   when t2.product_category is null then t5.product_name
                   else t2.product_category end    as productCategory,
               t1.id,
               case
                   when t2.specification_model is null then t4.model
                   else t2.specification_model end as specificationModel,
               case
                   when t2.unit is null then t4.unit
                   else t2.unit end                as unit,
               t2.quantity,
               t2.quantity                         as quantity0,
               t2.tax_rate                         as taxRate,
               t2.tax_inclusive_unit_price         as taxInclusiveUnitPrice,
               t2.tax_inclusive_total_price        as taxInclusiveTotalPrice,
               t2.tax_exclusive_total_price        as taxExclusiveTotalPrice,
               t1.inbound_batches                  as inboundBatches,
               t1.inbound_num                      as inboundNum,
               t1.create_time                      as createTime,
               t1.create_time                      as time,
               t1.create_by                        as createBy
        from procurement_record_storage t1
                 left join sales_ledger_product t2 on t2.id = t1.sales_ledger_product_id
                 left join purchase_ledger t3 on t3.id = t2.sales_ledger_id
                 left join product_model t4 on t4.id = t1.product_model_id
                 left join product t5 on t5.id = t4.product_id
    </select>
    <select id="listPageCopy" resultType="com.ruoyi.procurementrecord.dto.ProcurementPageDtoCopy">
        select
        t3.supplier_name,
        IFNULL(t3.supplier_name, '手动新增') as supplierName,
        t3.purchase_contract_number,
        t2.product_category,
        case when t2.product_category is null then t5.product_name
        else t2.product_category end as productCategory,
        t1.id,
        t1.sales_ledger_product_id,
        t1.create_user,
        t2.specification_model,
        t2.unit,
        case when t2.specification_model is null then t4.model
        else t2.specification_model end as specificationModel,
        case when t2.unit is null then t4.unit
        else t2.unit end as unit,
        t2.min_stock,
        t2.tax_rate,
        t2.tax_inclusive_unit_price,
        t2.tax_inclusive_total_price,
        t2.tax_exclusive_total_price,
        t1.inbound_batches,
        t1.inbound_num,
        t1.inbound_num as inboundNum0,
        sum(t1.inbound_num) as inboundNum,
        sum(t1.inbound_num) as inboundNum0,
        t1.inbound_num as totalInboundNum,
        t1.create_time,
        t1.update_time,
        t1.create_by
        from  procurement_record_storage t1
        t1.create_by,
        t2.warn_num
        from procurement_record_storage t1
        left join sales_ledger_product t2 on t2.id = t1.sales_ledger_product_id
        left join purchase_ledger t3 on t3.id = t2.sales_ledger_id
        left join product_model t4 on t4.id = t1.product_model_id
        left join product t5 on t5.id = t4.product_id
        <where>
            1 = 1
            <if test="req.supplierName != null and req.supplierName != ''">
                and t3.supplier_name like  concat('%',#{req.supplierName},'%')
            </if>
            <if test="req.reportDate != null">
                and t1.create_time >= #{req.reportDate} and t1.create_time &lt; DATE_ADD(#{req.reportDate}, INTERVAL 1 DAY)
            </if>
            <if test="req.startMonth != null">
                and t1.create_time >= #{req.startMonth}
            </if>
            <if test="req.endMonth != null">
                and t1.create_time &lt;= #{req.endMonth}
            </if>
            <if test="req.startDate != null">
                and t1.create_time >= #{req.startDate}
            </if>
            <if test="req.endDate != null">
                and t1.create_time &lt;= #{req.endDate}
                and (t3.supplier_name like concat('%',#{req.supplierName},'%')
                or (#{req.supplierName} = '手动新增' and t3.supplier_name is null))
            </if>
        </where>
        group by
        IFNULL(t3.supplier_name, '手动新增'),
        productCategory,
        specificationModel,
        t1.product_model_id,
        t2.id
        order by
        (t3.supplier_name IS NULL) DESC,
        t3.supplier_name ASC,
        productCategory ASC
    </select>
    <select id="listCopy" resultType="com.ruoyi.procurementrecord.dto.ProcurementPageDtoCopy">
        select
            t3.supplier_name,
            t3.purchase_contract_number,
            t2.product_category,
            t1.id,
            t1.sales_ledger_product_id,
            t1.create_user,
            t2.specification_model,
            t2.unit,
            t2.tax_rate,
            t2.tax_inclusive_unit_price,
            t2.tax_inclusive_total_price,
            t2.tax_exclusive_total_price,
            t1.inbound_batches,
            t1.inbound_num,
            t1.inbound_num as inboundNum0,
            t1.create_time,
            t1.update_time,
            t1.create_time as cTime,
            t1.update_time as uTime,
            t1.create_by
        from  procurement_record_storage t1
                  left join sales_ledger_product t2 on t2.id = t1.sales_ledger_product_id
                  left join purchase_ledger t3 on t3.id = t2.sales_ledger_id
        select t3.supplier_name,
               t3.purchase_contract_number,
               case
                   when t2.product_category is null then t5.product_name
                   else t2.product_category end    as productCategory,
               t1.id,
               t1.sales_ledger_product_id,
               t1.create_user,
               case
                   when t2.specification_model is null then t4.model
                   else t2.specification_model end as specificationModel,
               case
                   when t2.unit is null then t4.unit
                   else t2.unit end                as unit,
               t2.tax_rate,
               t2.tax_inclusive_unit_price,
               t2.tax_inclusive_total_price,
               t2.tax_exclusive_total_price,
               t1.inbound_batches,
               t1.inbound_num,
               t1.inbound_num                      as inboundNum0,
               t1.create_time,
               t1.update_time,
               t1.create_time                      as cTime,
               t1.update_time                      as uTime,
               t1.create_by
        from procurement_record_storage t1
                 left join sales_ledger_product t2 on t2.id = t1.sales_ledger_product_id
                 left join purchase_ledger t3 on t3.id = t2.sales_ledger_id
                 left join product_model t4 on t4.id = t1.product_model_id
                 left join product t5 on t5.id = t4.product_id
    </select>
</mapper>
</mapper>