Browse Source

销售额明细

caozj 1 năm trước cách đây
mục cha
commit
51116727ec

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

@@ -161,5 +161,11 @@ public class ContractVo extends Contract {
     private String shroffAccountName;
 
 
+    /**
+     * 合同类型
+     */
+    private String type;
+
+
 }
 

+ 6 - 0
hx-sale/src/main/java/com/fjhx/sale/mapper/contract/ContractMapper.java

@@ -56,6 +56,12 @@ public interface ContractMapper extends BaseMapper<Contract> {
     ContractVo getSalesTotal(Long id);
 
     /**
+     * 查询销售额明细
+     * @param id
+     * @return
+     */
+    List<ContractVo> getSalesTotalList(Long id);
+    /**
      * 查询指定客户的每月合同总额
      * @param dto
      */

+ 5 - 0
hx-sale/src/main/java/com/fjhx/sale/service/contract/ContractService.java

@@ -95,6 +95,11 @@ public interface ContractService extends BaseService<Contract> {
     ContractVo  getSalesTotal(Long id);
 
     /**
+     * 查询销售额(合同总金额)
+     * @param id(买方公司ID)
+     */
+    List<ContractVo>  getSalesTotalList(Long id);
+    /**
      * 查询指定客户的每月合同总额
      * @param dto
      */

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

@@ -741,6 +741,16 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract>
     }
 
     /**
+     * 查询销售额(合同总金额)
+     *
+     * @param id (买方公司ID)
+     */
+    @Override
+    public List<ContractVo> getSalesTotalList(Long id) {
+        return baseMapper.getSalesTotalList(id);
+    }
+
+    /**
      * 查询指定客户的每月合同总额
      *
      * @param dto

+ 8 - 3
hx-sale/src/main/java/com/fjhx/sale/service/sale/impl/SaleQuotationServiceImpl.java

@@ -265,9 +265,14 @@ public class SaleQuotationServiceImpl extends ServiceImpl<SaleQuotationMapper, S
         //查询这个客户的销售额(合同总金额)及成交合同数量
         ContractVo contractVo = contractService.getSalesTotal(dto.getId());
         map.put("contractVo", contractVo);
-
-
-
+        List<ContractVo> contractVoList = contractService.getSalesTotalList(dto.getId());
+        // 赋值用户名称
+        UserUtil.assignmentNickName(contractVoList, BasePo::getCreateUser, ContractVo::setUserName);
+        // 赋值买方公司名称(客户)
+        customerService.attributeAssign(contractVoList, ContractVo::getBuyCorporationId, (item, customer) -> {
+            item.setBuyCorporationName(customer.getName());
+        });
+        map.put("contractList",contractVoList);
         //查询这个客户的报价次数
         Integer count = this.getCount(dto.getId());
         DynamicDataSourceContextHolder.poll();

+ 67 - 1
hx-sale/src/main/resources/mapper/contract/ContractMapper.xml

@@ -109,7 +109,73 @@
             ) t1
 
     </select>
-
+    <select id="getSalesTotalList" resultType="com.fjhx.sale.entity.contract.vo.ContractVo">
+        SELECT
+            *
+        FROM
+            (
+                SELECT
+                    id,
+                    "外销合同" AS type,
+                    create_time,
+                    create_user,
+                    `code`,
+                    buy_corporation_id,
+                    advance_ratio,
+                    amount,
+                    rate,
+                    amount * rate AS amountCNY,
+                    (
+                        SELECT
+                            IFNULL( SUM( IFNULL( cc.money, 0 ) * IFNULL( arw.rate, 1 )), 0 )
+                        FROM
+                            claim_contract cc
+                                LEFT JOIN claim c ON cc.claim_id = c.id
+                                LEFT JOIN bytesailing_account.account_running_water arw ON c.business_id = arw.id
+                        WHERE
+                            cc.contract_id = t1.id
+                    ) AS sumClaimMoney
+                FROM
+                    contract t1
+                WHERE
+                    buy_corporation_id = #{id}
+                  AND STATUS BETWEEN 0
+                    AND 87
+                  AND is_show != 1
+		AND is_change = 0
+		AND del_flag = 0 UNION ALL
+                SELECT
+                    id,
+                    "样品单" AS type,
+                    create_time,
+                    create_user,
+                    `code`,
+                    buy_corporation_id,
+                    advance_ratio,
+                    amount,
+                    rate,
+                    amount * rate AS amountCNY,
+                    (
+                    SELECT
+                    IFNULL( SUM( IFNULL( cc.money, 0 ) * IFNULL( arw.rate, 1 )), 0 )
+                    FROM
+                    claim_contract cc
+                    LEFT JOIN claim c ON cc.claim_id = c.id
+                    LEFT JOIN bytesailing_account.account_running_water arw ON c.business_id = arw.id
+                    WHERE
+                    cc.contract_id = t1.id
+                    ) AS sumClaimMoney
+                FROM
+                    sample t1
+                WHERE
+                    buy_corporation_id = #{id}
+                  AND STATUS BETWEEN 0
+                  AND 87
+                  AND is_show != 1
+                  AND is_change = 0
+                  AND del_flag = 0
+            ) t1
+    </select>
     <select id="getAmount" resultType="com.fjhx.sale.entity.contract.vo.ContractVo">
         SELECT
             SUM(amount) amount,