5 Commits 728ba853d8 ... b58a46e95a

Tác giả SHA1 Thông báo Ngày
  caozj b58a46e95a Merge remote-tracking branch 'origin/dev' into dev 1 năm trước cách đây
  caozj 701b43b7fa 业绩提成头部统计 1 năm trước cách đây
  caozj 71ce34098a Merge remote-tracking branch 'origin/dev' into dev 1 năm trước cách đây
  caozj 5e97694831 Merge remote-tracking branch 'origin/dev' into dev 1 năm trước cách đây
  caozj 45afcc68a4 Merge branch 'master' into dev 1 năm trước cách đây

+ 9 - 0
hx-sale/src/main/java/com/fjhx/sale/controller/commission/CommissionController.java

@@ -33,6 +33,15 @@ public class CommissionController {
         return commissionService.getPage(dto);
     }
 
+    /**
+     * 业绩提成表头部统计
+     */
+    @PostMapping("/getHeadStatistics")
+    public CommissionVo getHeadStatistics(@RequestBody CommissionSelectDto dto) {
+        return commissionService.getHeadStatistics(dto);
+    }
+
+
 
 
 }

+ 6 - 0
hx-sale/src/main/java/com/fjhx/sale/mapper/commission/CommissionMapper.java

@@ -24,4 +24,10 @@ public interface CommissionMapper extends BaseMapper<Commission> {
      */
     Page<CommissionVo> getPage(@Param("page") Page<Object> page, @Param("ew")QueryWrapper<Object> queryWrapper);
 
+    /**
+     * 头部统计
+     * @param queryWrapper
+     * @return
+     */
+    CommissionVo getHeadStatistics(@Param("ew")QueryWrapper<Object> queryWrapper);
 }

+ 9 - 0
hx-sale/src/main/java/com/fjhx/sale/service/commission/CommissionService.java

@@ -7,6 +7,8 @@ import com.fjhx.sale.entity.commission.vo.CommissionVo;
 import com.fjhx.sale.entity.commission.dto.CommissionSelectDto;
 import com.fjhx.sale.entity.commission.dto.CommissionDto;
 
+import java.util.Map;
+
 
 /**
  * <p>
@@ -24,6 +26,13 @@ public interface CommissionService extends BaseService<Commission> {
     Page<CommissionVo> getPage(CommissionSelectDto dto);
 
     /**
+     * 头部统计
+     * @param dto
+     * @return
+     */
+    CommissionVo getHeadStatistics(CommissionSelectDto dto);
+
+    /**
      * 结算功能(添加业务提成表与业务提成规则表)
      */
     void settlement(CommissionDto commissionDto);

+ 32 - 0
hx-sale/src/main/java/com/fjhx/sale/service/commission/impl/CommissionServiceImpl.java

@@ -20,6 +20,8 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.util.Map;
 
 
 /**
@@ -50,6 +52,36 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
         return page;
     }
 
+    /**
+     * 头部统计
+     * @param dto
+     * @return
+     */
+    @Override
+    public CommissionVo getHeadStatistics(CommissionSelectDto dto) {
+        QueryWrapper<Object> query = Wrappers.query();
+        query.eq(ObjectUtil.isNotEmpty(dto.getUserId()), "c.user_id", dto.getUserId());
+        query.eq(ObjectUtil.isNotEmpty(dto.getTime()), "DATE_FORMAT(c.create_time,'%Y')", dto.getTime());
+        query.like(ObjectUtil.isNotEmpty(dto.getKeyword()),"c.contract_code",dto.getKeyword());
+        query.orderByDesc("c.create_time");
+        CommissionVo commissionVo = this.baseMapper.getHeadStatistics(query);
+        if(ObjectUtil.isEmpty(commissionVo)){
+            return new CommissionVo();
+        }
+        // 毛利
+        BigDecimal grossProfit = commissionVo.getTotalIncome().subtract(commissionVo.getTotalExpenses());
+        commissionVo.setGrossGrofit(grossProfit);
+
+        if (commissionVo.getTotalIncome().equals(BigDecimal.ZERO)) {
+            commissionVo.setGrossRofitMargin(BigDecimal.ZERO);
+        } else {
+            commissionVo.setGrossRofitMargin(
+                    new BigDecimal("100").multiply(grossProfit).divide(commissionVo.getTotalIncome(), 2, RoundingMode.HALF_UP)
+            );
+        }
+        return commissionVo;
+    }
+
 
     /**
      * 结算功能(添加业务提成表与业务提成规则表,修改合同表的结算状态)

+ 16 - 8
hx-sale/src/main/java/com/fjhx/sale/service/contract/impl/ContractServiceImpl.java

@@ -323,7 +323,7 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract>
             wrapper.eq("t1", Contract::getSellCorporationId, dto.getSellCorporationId());
         }
         if (StringUtils.isNotEmpty(dto.getRefundStatusNew())) {
-            wrapper.in("t1.refund_status", Arrays.asList(dto.getRefundStatusNew().split(",")));
+            wrapper.in("t1.refundStatusNew", Arrays.asList(dto.getRefundStatusNew().split(",")));
         }
         if (StringUtils.isNotEmpty(dto.getUserId())) {
             wrapper.eq("t1", Contract::getCreateUser, dto.getUserId());
@@ -849,22 +849,26 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract>
      */
     @Override
     public Map<String, Object> salesStatistics(ContractDto dto) {
+        List<Long> authIdList = customerService.getAuthIdList();
+        if(CollectionUtils.isEmpty(authIdList)){
+            return new HashMap<>();
+        }
+
         //添加查询条件
         QueryWrapper<Contract> query = Wrappers.<Contract>query();
-        selectTime(query, dto);
-        query.select("sum(amount) amount");
-
+        selectTime(query, dto,authIdList);
+        query.select("sum(amount*rate) amount");
         //查询销售额
         Contract contract = baseMapper.selectOne(query);
         query.clear();
         //查询订单数
-        selectTime(query, dto);
+        selectTime(query, dto,authIdList);
 
         Long count = baseMapper.selectCount(query);
 
         //查询下单的客户人数
         query.clear();
-        selectTime(query, dto);
+        selectTime(query, dto,authIdList);
         query.select("count(DISTINCT(buy_corporation_id)) count");
         Contract contract1 = baseMapper.selectOne(query);
 
@@ -877,7 +881,7 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract>
 
         //赋值
         if (ObjectUtil.isNotEmpty(contract)) {
-            map.put("amount", contract.getAmount());
+            map.put("amount", contract.getAmount().setScale(2, RoundingMode.HALF_UP));
         }
 
         if (ObjectUtil.isNotEmpty(contract1)) {
@@ -1461,7 +1465,11 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract>
     }
 
     // 添加时间的查询条件
-    private void selectTime(QueryWrapper<Contract> query, ContractDto dto) {
+    private void selectTime(QueryWrapper<Contract> query, ContractDto dto,List<Long> authIdList) {
+        query.in("buy_corporation_id", authIdList);
+        query.eq("is_change", "0");//列表只展示未变更得数据
+        query.ne("is_show", 1);
+        query.between("status", FlowStatusEnum1.DRAFT.getKey(), FlowStatusEnum1.CANCELLATION.getKey() - 1);
         query.ge("DATE_FORMAT(create_time,'%Y-%m')", dto.getBeginTime());
         query.le("DATE_FORMAT(create_time,'%Y-%m')", dto.getEndTime());
     }

+ 12 - 0
hx-sale/src/main/resources/mapper/commission/CommissionMapper.xml

@@ -8,4 +8,16 @@
             ${ew.customSqlSegment}
     </select>
 
+    <select id="getHeadStatistics" resultType="com.fjhx.sale.entity.commission.vo.CommissionVo">
+        SELECT
+            IFNULL( SUM( total_income ), 0 ) AS totalIncome,
+            IFNULL( SUM( total_expenses ), 0 ) AS totalExpenses,
+            IFNULL( SUM( after_sales_amount ), 0 ) AS afterSalesAmount,
+            IFNULL( SUM( public_amount ), 0 ) AS publicAmount,
+            IFNULL( SUM( have_overall_amount ), 0 ) AS haveOverallAmount,
+            IFNULL( SUM( departmental_commission ), 0 ) AS departmentalCommission,
+            IFNULL( SUM( personal_commission ), 0 ) AS personalCommission
+        FROM
+            commission c
+    </select>
 </mapper>