Browse Source

利润预算表 利润结算表 外销合同 高级搜索

yzc 1 năm trước cách đây
mục cha
commit
f618e7ab56

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

@@ -30,6 +30,11 @@ public class ContractSelectDto extends BaseSelectDto {
     private String customerId;
 
     /**
+     * 客户Id
+     */
+    private String customerName;
+
+    /**
      * 业务员
      */
     private String userName;

+ 67 - 12
hx-sale/src/main/java/com/fjhx/sale/service/contract/impl/ContractServiceImpl.java

@@ -326,6 +326,18 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract>
         //过滤合同类型
         wrapper.eq("t1.contract_type", dto.getContractType());
 
+        //客户名称
+        if (StringUtils.isNotEmpty(dto.getCustomerName())) {
+            wrapper.like("t1.customerName", dto.getCustomerName());
+        }
+        //业务员
+        if (StringUtils.isNotEmpty(dto.getUserName())) {
+            wrapper.like("t1.salesmanName", dto.getUserName());
+        }
+        //销售合同编号
+        if (StringUtils.isNotEmpty(dto.getContractCode())) {
+            wrapper.like("t1", Contract::getCode, dto.getContractCode());
+        }
         //时间范围过滤
         wrapper.ge(Contract::getCreateTime, dto.getBeginTime());
         wrapper.le(Contract::getCreateTime, dto.getEndTime());
@@ -424,19 +436,34 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract>
         if (StringUtils.isNotEmpty(dto.getUserId())) {
             wrapper.eq("t1", Contract::getCreateUser, dto.getUserId());
         }
-        if (StringUtils.isNotEmpty(dto.getContractCode())) {
-            wrapper.like("t1", Contract::getCode, dto.getContractCode());
-        }
         if (StringUtils.isNotEmpty(dto.getKeyword())) {
             wrapper.keyword(dto.getKeyword(), new SqlField("t1.code"));
         }
+
+        //客户名称
+        if (StringUtils.isNotEmpty(dto.getCustomerName())) {
+            wrapper.like("cu.name", dto.getCustomerName());
+        }
+        //业务员
+        if (StringUtils.isNotEmpty(dto.getUserName())) {
+            wrapper.like("us1.nick_name", dto.getUserName());
+        }
+        //销售合同编号
+        if (StringUtils.isNotEmpty(dto.getContractCode())) {
+            wrapper.like("t1", Contract::getCode, dto.getContractCode());
+        }
+        //时间范围过滤
+        wrapper.ge("t1", Contract::getCreateTime, dto.getBeginTime());
+        wrapper.le("t1", Contract::getCreateTime, dto.getEndTime());
+
+
         Page<ContractBudgetVo> page = this.baseMapper.getProfitBudgetPage(dto.getPage(), wrapper);
         List<ContractBudgetVo> list = page.getRecords();
         if (CollectionUtils.isNotEmpty(list)) {
             // 赋值客户名称
-            customerService.attributeAssign(list, Contract::getBuyCorporationId, (item, customer) -> {
-                item.setCustomerName(customer.getName());
-            });
+//            customerService.attributeAssign(list, Contract::getBuyCorporationId, (item, customer) -> {
+//                item.setCustomerName(customer.getName());
+//            });
             statisticCommon(list);
         }
         return page;
@@ -461,12 +488,26 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract>
         if (StringUtils.isNotEmpty(dto.getUserId())) {
             wrapper.eq("t1", Contract::getCreateUser, dto.getUserId());
         }
-        if (StringUtils.isNotEmpty(dto.getContractCode())) {
-            wrapper.like("t1", Contract::getCode, dto.getContractCode());
-        }
         if (StringUtils.isNotEmpty(dto.getKeyword())) {
             wrapper.keyword(dto.getKeyword(), new SqlField("t1.code"));
         }
+
+        //客户名称
+        if (StringUtils.isNotEmpty(dto.getCustomerName())) {
+            wrapper.like("cu.name", dto.getCustomerName());
+        }
+        //业务员
+        if (StringUtils.isNotEmpty(dto.getUserName())) {
+            wrapper.like("us1.nick_name", dto.getUserName());
+        }
+        //销售合同编号
+        if (StringUtils.isNotEmpty(dto.getContractCode())) {
+            wrapper.like("t1", Contract::getCode, dto.getContractCode());
+        }
+        //时间范围过滤
+        wrapper.ge("t1", Contract::getCreateTime, dto.getBeginTime());
+        wrapper.le("t1", Contract::getCreateTime, dto.getEndTime());
+
         List<ContractBudgetVo> list = this.baseMapper.getProfitBudgetHeadStatistic(wrapper);
         if (CollectionUtils.isNotEmpty(list)) {
             statisticCommon(list);
@@ -700,12 +741,26 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract>
         if (StringUtils.isNotEmpty(dto.getUserId())) {
             wrapper.eq("t1", Contract::getCreateUser, dto.getUserId());
         }
-        if (StringUtils.isNotEmpty(dto.getContractCode())) {
-            wrapper.like("t1", Contract::getCode, dto.getContractCode());
-        }
         if (StringUtils.isNotEmpty(dto.getKeyword())) {
             wrapper.keyword(dto.getKeyword(), new SqlField("t1.code"));
         }
+
+        //客户名称
+        if (StringUtils.isNotEmpty(dto.getCustomerName())) {
+            wrapper.like("cu.name", dto.getCustomerName());
+        }
+        //业务员
+        if (StringUtils.isNotEmpty(dto.getUserName())) {
+            wrapper.like("us1.nick_name", dto.getUserName());
+        }
+        //销售合同编号
+        if (StringUtils.isNotEmpty(dto.getContractCode())) {
+            wrapper.like("t1", Contract::getCode, dto.getContractCode());
+        }
+        //时间范围过滤
+        wrapper.ge("t1", Contract::getCreateTime, dto.getBeginTime());
+        wrapper.le("t1", Contract::getCreateTime, dto.getEndTime());
+
         Page<ContractBudgetVo> page = this.baseMapper.getProfitClearingPage(dto.getPage(), wrapper);
         List<ContractBudgetVo> list = page.getRecords();
         if (ObjectUtil.isEmpty(list)) {

+ 36 - 28
hx-sale/src/main/resources/mapper/contract/ContractMapper.xml

@@ -13,6 +13,7 @@
                          ELSE 10
                          END                                   AS refundStatusNew
               FROM (SELECT t1.*,
+                           c.name                            customerName,
                            us.nick_name                      salesmanName,
                            (SELECT IFNULL(SUM(IFNULL(cc.money_cny, IFNULL(cc.money, 0) * IFNULL(arw.rate, 1))), 0)
                             FROM claim_contract cc
@@ -46,8 +47,12 @@
                            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) t1) t1
+                           WHERE cc.contract_id = t1.id) AS sumClaimMoney,
+                          c.name                            customerName,
+                          us.nick_name                      salesmanName
+                   FROM contract t1
+                            left join bytesailing_customer.customer c on t1.buy_corporation_id = c.id
+                            left join bytesailing_base.sys_user us on c.user_id = us.user_id) t1) t1
             ${ew.customSqlSegment}
     </select>
 
@@ -55,39 +60,42 @@
         SELECT t1.id AS contractId,
                t1.*
         FROM contract t1
+                 LEFT JOIN bytesailing_customer.customer cu on t1.buy_corporation_id = cu.id and cu.del_flag = 0
+                 LEFT JOIN bytesailing_base.sys_user us1 ON cu.user_id = us1.user_id and us1.del_flag = 0
             ${ew.customSqlSegment}
     </select>
 
     <select id="getProfitBudgetPage" resultType="com.fjhx.sale.entity.contract.vo.ContractBudgetVo">
-        SELECT
-            (select GROUP_CONCAT(id) from contract_product WHERE contract_id = t1.id) AS contractProductIds,
-            t1.id                                                                     AS contractId,
-            t1.`code`,
-            t1.buy_corporation_id ,
-            t1.user_name,
-            t1.amount,
-            t1.currency,
-            t1.currency_rate_json,
-            t1.rate AS rate,
-            t2.*,
-            IFNULL(t1.budget_money,0)AS budgetMoney
-        FROM
-            contract t1
-        LEFT JOIN contract_budget t2 ON t1.id = t2.contract_id
-        ${ew.customSqlSegment}
+        SELECT (select GROUP_CONCAT(id) from contract_product WHERE contract_id = t1.id) AS contractProductIds,
+               t1.id                                                                     AS contractId,
+               t1.`code`,
+               t1.buy_corporation_id,
+               t1.user_name,
+               t1.amount,
+               t1.currency,
+               t1.currency_rate_json,
+               t1.rate                                                                   AS rate,
+               t2.*,
+               IFNULL(t1.budget_money, 0)                                                AS budgetMoney,
+               cu.name                                                                      customerName
+        FROM contract t1
+                 LEFT JOIN contract_budget t2 ON t1.id = t2.contract_id
+                 LEFT JOIN bytesailing_customer.customer cu on t1.buy_corporation_id = cu.id and cu.del_flag = 0
+                 LEFT JOIN bytesailing_base.sys_user us1 ON cu.user_id = us1.user_id and us1.del_flag = 0
+            ${ew.customSqlSegment}
     </select>
 
     <select id="getProfitBudgetHeadStatistic" resultType="com.fjhx.sale.entity.contract.vo.ContractBudgetVo">
-        SELECT
-            t1.id                                                                     AS contractId,
-            t1.amount,
-            t1.currency,
-            t1.currency_rate_json,
-            t1.rate AS rate,
-            t2.*
-        FROM
-            contract t1
-        LEFT JOIN contract_budget t2 ON t1.id = t2.contract_id
+        SELECT t1.id   AS contractId,
+               t1.amount,
+               t1.currency,
+               t1.currency_rate_json,
+               t1.rate AS rate,
+               t2.*
+        FROM contract t1
+                 LEFT JOIN contract_budget t2 ON t1.id = t2.contract_id
+                 LEFT JOIN bytesailing_customer.customer cu on t1.buy_corporation_id = cu.id and cu.del_flag = 0
+                 LEFT JOIN bytesailing_base.sys_user us1 ON cu.user_id = us1.user_id and us1.del_flag = 0
             ${ew.customSqlSegment}
     </select>