Эх сурвалжийг харах

合同添加 是否特批出库

yzc 11 сар өмнө
parent
commit
e1392b804c

+ 5 - 0
hx-sale/src/main/java/com/fjhx/sale/entity/contract/dto/ContractSelectDto.java

@@ -129,4 +129,9 @@ public class ContractSelectDto extends BaseSelectDto {
      * 生产公司id
      */
     private Long prodCompanyId;
+
+    /**
+     * 是否特殊出库
+     */
+    private Long isSpecialOutbound;
 }

+ 10 - 0
hx-sale/src/main/java/com/fjhx/sale/entity/contract/vo/ContractVo.java

@@ -267,5 +267,15 @@ public class ContractVo extends Contract {
      */
     private BigDecimal unInvoiceAmount;
 
+    /**
+     * 出货金额
+     */
+    private Long outboundAmount;
+
+    /**
+     * 是否特殊出库
+     */
+    private Long isSpecialOutbound;
+
 }
 

+ 2 - 0
hx-sale/src/main/java/com/fjhx/sale/service/contract/impl/ContractServiceImpl.java

@@ -444,6 +444,8 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract>
         //订单归属过滤(1归属工厂、2归属业务)
         wrapper.eq("t1", Contract::getBelongType, dto.getBelongType());
 
+        //是否特批过滤
+        wrapper.eq("t1.isSpecialOutbound", dto.getIsSpecialOutbound());
     }
 
     /**

+ 12 - 6
hx-sale/src/main/resources/mapper/contract/ContractMapper.xml

@@ -4,16 +4,17 @@
     <sql id="list">
         SELECT *
         FROM (SELECT t1.*,
-                     IFNULL(t1.amount, 0) * IFNULL(t1.rate, 0) AS amountCNY,
+                     IFNULL(t1.amount, 0) * IFNULL(t1.rate, 0)                             AS amountCNY,
                      CASE
                          WHEN (IFNULL(t1.amount, 0) * IFNULL(t1.rate, 0) - t1.sumClaimMoney) &lt;= 0 THEN
                              20
                          WHEN t1.sumClaimMoney = 0 THEN
                              0
                          ELSE 10
-                         END                                   AS refundStatusNew,
-                     (t1.amount - t1.settledAmount)            as unsettledAmount,
-                     (t1.sumClaimMoney - t1.invoiceAmount)     as unInvoiceAmount
+                         END                                                               AS refundStatusNew,
+                     (t1.amount - t1.settledAmount)                                        as unsettledAmount,
+                     (t1.sumClaimMoney - t1.invoiceAmount)                                 as unInvoiceAmount,
+                     (CASE WHEN t1.sumClaimMoney &lt; t1.outboundAmount THEN 1 ELSE 0 END) AS isSpecialOutbound
               FROM (SELECT t1.*,
                            c.name                              customerName,
                            (SELECT IFNULL(SUM(cc.contract_money), 0)
@@ -37,7 +38,8 @@
                             FROM invoice_apply_contract_detail iacd
                                      JOIN invoice_apply ia ON iacd.invoice_apply_id = ia.id
                             WHERE ia.`status` IN (10, 30, 60)
-                              AND iacd.contract_id = c.id)  AS invoiceAmount
+                              AND iacd.contract_id = c.id)  AS invoiceAmount,
+                           IFNULL(cor_1.outbound_amount, 0) AS outboundAmount
                     FROM contract t1
                              left join customer c on t1.buy_corporation_id = c.id
                              LEFT JOIN production_order po ON po.contract_id = t1.id
@@ -59,7 +61,11 @@
                                                             WHERE coi.`status` IN (30, 60)
                                                             GROUP BY cor.contract_id) t2
                                                            ON cp.contract_id = t2.contract_id
-                                        GROUP BY cp.contract_id) t4 ON t4.contract_id = t1.id) t1
+                                        GROUP BY cp.contract_id) t4 ON t4.contract_id = t1.id
+                             left join (SELECT cor.contract_id,
+                                               sum(cor.price * cor.truck_quantity) AS outbound_amount
+                                        FROM contract_outbound_records cor
+                                        GROUP BY cor.contract_id) cor_1 on cor_1.contract_id = t1.id) t1
               GROUP BY t1.id) t1
     </sql>