Browse Source

领样凭证

yumeng 2 years ago
parent
commit
9cfd738bf2

+ 60 - 0
ruixuan-live/src/main/java/com/ruixuan/isc/controller/SupplyChainController.java

@@ -1264,6 +1264,66 @@ public class SupplyChainController extends BaseController {
     }
 
 
+    @PostMapping("/exportBdReportList")
+    @ApiOperation(value = "供应链管理员统计列表")
+    @ResponseBody
+    public void exportBdReportList(HttpServletRequest request, HttpServletResponse response, @RequestBody JSONObject requestJson) throws IOException {
+        Map<String, Object> requestMap = new HashMap<>();
+        if (!Check.isNull(requestJson.getString("orderStartDate"))) {
+            Integer start = DateUtils.getIntegerTime(requestJson.getString("orderStartDate"));
+            requestMap.put("start", start);
+        }
+        if (!Check.isNull(requestJson.getString("orderEndDate"))) {
+            Integer end = DateUtils.getIntegerTime(requestJson.getString("orderEndDate"));
+            requestMap.put("end", end);
+        }
+        if (!Check.isNull(requestJson.getLong("collectSampleId"))) {
+            requestMap.put("collectSampleId", requestJson.getLong("collectSampleId"));
+        }
+
+        List<JSONObject> list = supplyChainService.exportBdReportList(requestMap);
+        List<List<Object>> exportList = new ArrayList<>();
+        if (!Check.isNull(list)) {
+            for (int i = 0; i < list.size(); i++) {
+                JSONObject date = list.get(i);
+                List<Object> export = new ArrayList();
+                export.add(date.getString("collectSampleId"));
+                export.add(date.getString("collectSampleName"));
+                export.add(date.getString("promoterCount"));
+                export.add(date.getString("sampleCount"));
+                export.add(date.getString("sampleRate"));
+                export.add(date.getString("notSampleCount"));
+                export.add(date.getString("sendTotalCount"));
+                export.add(date.getString("sendPromoterCount"));
+                export.add(date.getString("sendItemCount"));
+                export.add(date.getString("orderNum"));
+                export.add(date.getString("voucherOrderNum"));
+                export.add(date.getString("validOrderNum"));
+                export.add(date.getString("voucherValidOrderNum"));
+                export.add(date.getString("validOrderRate"));
+                export.add(date.getString("orderAmount"));
+                export.add(date.getString("voucherOrderAmount"));
+                export.add(date.getString("regimentalPromotionAmount"));
+                export.add(date.getString("voucherRegimentalPromotionAmount"));
+                export.add(date.getString("totalRegimentalSettleAmount"));
+                export.add(date.getString("voucherTotalRegimentalSettleAmount"));
+                exportList.add(export);
+            }
+        }
+        String[] headers = {"渠道ID", "渠道姓名", "(总)达人数", "(总)领样达人数", "(总)领样率", "(总)未领样数", "发样数", "发样达人数", "发样商品数", "订单数", "(凭)订单数", "有效订单数", "(凭)有效订单数", "有效订单率", "订单金额", "凭(订单金额)", "预估服务费", "(凭)预估服务费", "结算服务费", "(凭)结算服务费"};
+        OutputStream os = response.getOutputStream();
+        ExportExcelUtils eeu = new ExportExcelUtils();
+        XSSFWorkbook workbook = new XSSFWorkbook();
+        eeu.exportExcel(workbook, 0, "bd业绩汇总", headers, exportList);
+        this.setResponseHeader(response, "bd业绩汇总.xls");
+        workbook.write(os);
+        os.flush();
+        os.close();
+
+
+    }
+
+
     @GetMapping("/bdDetailList")
     @ApiOperation(value = "供应链管理员统计列表")
     public TableDataInfo bdDetailList(

+ 20 - 0
ruixuan-live/src/main/java/com/ruixuan/isc/entity/KuaishouItemCollectSamples.java

@@ -168,6 +168,8 @@ public class KuaishouItemCollectSamples extends BaseEntity {
     private Long validOrderNum;
     @Transient
     private Long promoterOrderNum;
+    private Integer sampleVoucherStatus;
+    private String sampleVoucher;
 
 
     public static long getSerialVersionUID() {
@@ -422,6 +424,22 @@ public class KuaishouItemCollectSamples extends BaseEntity {
         this.promoterOrderNum = promoterOrderNum;
     }
 
+    public Integer getSampleVoucherStatus() {
+        return sampleVoucherStatus;
+    }
+
+    public void setSampleVoucherStatus(Integer sampleVoucherStatus) {
+        this.sampleVoucherStatus = sampleVoucherStatus;
+    }
+
+    public String getSampleVoucher() {
+        return sampleVoucher;
+    }
+
+    public void setSampleVoucher(String sampleVoucher) {
+        this.sampleVoucher = sampleVoucher;
+    }
+
     @Override
     public String toString() {
         return "KuaishouItemCollectSamples{" +
@@ -456,6 +474,8 @@ public class KuaishouItemCollectSamples extends BaseEntity {
                 ", validAmount=" + validAmount +
                 ", validOrderNum=" + validOrderNum +
                 ", promoterOrderNum=" + promoterOrderNum +
+                ", sampleVoucherStatus=" + sampleVoucherStatus +
+                ", sampleVoucher='" + sampleVoucher + '\'' +
                 '}';
     }
 }

+ 2 - 0
ruixuan-live/src/main/java/com/ruixuan/isc/mapper/SupplyChainMapper.java

@@ -98,4 +98,6 @@ public interface SupplyChainMapper {
     List<JSONObject> getUserList(@Param("map") Map<Long, Long> map);
 
     String getUserName(@Param("promoterId") Long promoterId);
+
+    List<JSONObject> exportBdReportList(Map<String, Object> requestMap);
 }

+ 2 - 0
ruixuan-live/src/main/java/com/ruixuan/isc/service/ISupplyChainService.java

@@ -119,4 +119,6 @@ public interface ISupplyChainService {
     List<JSONObject> exportBdDetail(Map<String, Object> requestMap);
 
     String getUserName(Long promoterId);
+
+    List<JSONObject> exportBdReportList(Map<String, Object> requestMap);
 }

+ 7 - 2
ruixuan-live/src/main/java/com/ruixuan/isc/service/impl/KuaishouItemCollectSamplesServiceImpl.java

@@ -217,7 +217,6 @@ public class KuaishouItemCollectSamplesServiceImpl implements IKuaishouItemColle
 
     @Override
     public void batchAdd(JSONArray temCollectSamples) {
-
         List<KuaishouItemCollectSamples> adds = new ArrayList<>();
         for (int i = 0; i < temCollectSamples.size(); i++) {
             JSONObject sampleJson = temCollectSamples.getJSONObject(i);
@@ -244,8 +243,14 @@ public class KuaishouItemCollectSamplesServiceImpl implements IKuaishouItemColle
             sample.setCollectSampleDesc(sampleJson.getString("collectSampleDesc"));
             sample.setPromoterNickName(sampleJson.getString("promoterNickName"));
             sample.setPromoterUrl(sampleJson.getString("promoterUrl"));
+            String sampleVoucher = sampleJson.getString("sampleVoucher");
+            if (!Check.isNull(sampleVoucher)) {
+                sample.setSampleVoucher(sampleVoucher);
+                sample.setSampleVoucherStatus(2);
+            } else {
+                sample.setSampleVoucherStatus(1);
+            }
             adds.add(sample);
-
         }
         if (!Check.isNull(adds)) {
             kuaishouItemCollectSamplesMapper.batchAdd(adds);

+ 5 - 0
ruixuan-live/src/main/java/com/ruixuan/isc/service/impl/SupplyChainServiceImpl.java

@@ -264,4 +264,9 @@ public class SupplyChainServiceImpl implements ISupplyChainService {
     public String getUserName(Long promoterId) {
         return supplyChainMapper.getUserName(promoterId);
     }
+
+    @Override
+    public List<JSONObject> exportBdReportList(Map<String, Object> requestMap) {
+        return supplyChainMapper.exportBdReportList(requestMap);
+    }
 }

+ 22 - 4
ruixuan-live/src/main/resources/mapper/isc/KuaishouItemCollectSamplesMapper.xml

@@ -32,6 +32,9 @@
         <result property="collectSampleDesc" column="collect_sample_desc"/>
         <result property="createTime" column="create_time"/>
         <result property="updateTime" column="update_time"/>
+        <result property="sampleVoucherStatus" column="sample_voucher_status"/>
+        <result property="sampleVoucher" column="sample_voucher"/>
+
     </resultMap>
 
     <sql id="selectKuaishouItemCollectSamplesVo">
@@ -61,7 +64,10 @@
                collect_sample_status,
                collect_sample_desc,
                create_time,
-               update_time
+               update_time,
+               sample_voucher_status,
+               sample_voucher
+
         from kuaishou_item_collect_samples
     </sql>
 
@@ -94,7 +100,9 @@
         t1.collect_sample_desc,
         t1.create_time,
         t1.update_time,
-        t2.valid_order_num as 'promoterOrderNum'
+        t2.valid_order_num as 'promoterOrderNum',
+        t1.sample_voucher_status,
+        t1.sample_voucher
         from kuaishou_item_collect_samples t1 left join promoter_iterm_oerder_amount t2
         on t1.item_id = t2.item_id
         and t1.promoter_id = t2.promoter_id
@@ -308,6 +316,8 @@
             <if test="collectSampleDesc != null">collect_sample_desc,</if>
             <if test="createTime != null">create_time,</if>
             <if test="updateTime != null">update_time,</if>
+            <if test="sampleVoucher != null">sample_voucher,</if>
+            <if test="sampleVoucherStatus != null">sample_voucher_status,</if>
         </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="id != null">#{id},</if>
@@ -337,6 +347,8 @@
             <if test="collectSampleDesc != null">#{collectSampleDesc},</if>
             <if test="createTime != null">#{createTime},</if>
             <if test="updateTime != null">#{updateTime},</if>
+            <if test="sampleVoucher != null">#{sampleVoucher},</if>
+            <if test="sampleVoucher_status != null">#{sampleVoucherStatus},</if>
         </trim>
     </insert>
     <insert id="batchAdd">
@@ -364,7 +376,9 @@
         task_file_url,
         promoter_url,
         collect_sample_status,
-        collect_sample_desc
+        collect_sample_desc,
+        sample_voucher,
+        sample_voucher_status
         )
         values
         <foreach collection="adds" item="add" separator=",">
@@ -392,7 +406,9 @@
             #{add.taskFileUrl},
             #{add.promoterUrl},
             #{add.collectSampleStatus },
-            #{add.collectSampleDesc}
+            #{add.collectSampleDesc},
+            #{add.sampleVoucher},
+            #{add.sampleVoucherStatus}
             )
         </foreach>
 
@@ -482,6 +498,8 @@
             <if test="collectSampleDesc != null">collect_sample_desc = #{collectSampleDesc},</if>
             <if test="createTime != null">create_time = #{createTime},</if>
             <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="sampleVoucher != null">sample_voucher = #{sampleVoucher},</if>
+            <if test="sampleVoucherStatus != null">sample_voucher_status = #{sampleVoucherStatus},</if>
         </trim>
         where id = #{id}
     </update>

+ 100 - 2
ruixuan-live/src/main/resources/mapper/isc/SupplyChainMapper.xml

@@ -1275,16 +1275,28 @@
         t1.totalRegimentalSettleAmount,
         t4.sendTotalCount,
         t4.sendPromoterCount,
-        t4.sendItemCount
+        t4.sendItemCount,
+        t1.voucherOrderNum,
+        t1.voucherValidOrderNum,
+        t1.voucherOrderAmount,
+        t1.voucherRegimentalPromotionAmount,
+        t1.voucherTotalRegimentalSettleAmount
         from (
         select collect_sample_id as 'collectSampleId',
         collect_sample_name as 'collectSampleName',
         sum(order_num) as 'orderNum',
+        IFNULL(SUM(CASE WHEN sample_voucher_status = 2 THEN order_num ELSE 0 END), 0) AS 'voucherOrderNum',
         sum(valid_order_num) as 'validOrderNum',
+        IFNULL(SUM(CASE WHEN sample_voucher_status = 2 THEN valid_order_num ELSE 0 END), 0) AS 'voucherValidOrderNum',
         round(sum(valid_order_num) / sum(order_num) * 100, 2) as 'validOrderRate',
         sum(order_amount) as 'orderAmount',
+        IFNULL(SUM(CASE WHEN sample_voucher_status = 2 THEN order_amount ELSE 0 END), 0) AS 'voucherOrderAmount',
         sum(regimental_promotion_amount) as 'regimentalPromotionAmount',
-        sum(total_regimental_settle_amount) as 'totalRegimentalSettleAmount'
+        IFNULL(SUM(CASE WHEN sample_voucher_status = 2 THEN regimental_promotion_amount ELSE 0 END), 0)
+        AS'voucherRegimentalPromotionAmount',
+        sum(total_regimental_settle_amount) as 'totalRegimentalSettleAmount',
+        IFNULL(SUM(CASE WHEN sample_voucher_status = 2 THEN total_regimental_settle_amount ELSE 0 END), 0) AS
+        'voucherTotalRegimentalSettleAmount'
         from ruixuan.canal_management
         where 1 = 1
         <if test="start != null and start != ''">
@@ -1479,4 +1491,90 @@
         where   promoter_id  = #{promoterId}
 
     </select>
+    <select id="exportBdReportList" resultType="com.alibaba.fastjson.JSONObject">
+        select
+        t1.collectSampleId,
+        t1.collectSampleName,
+        t2.promoterCount,
+        t3.sampleCount,
+        round(t3.sampleCount / t2.promoterCount * 100, 2) as 'sampleRate',
+        t2.promoterCount - t3.sampleCount as 'notSampleCount',
+        t1.orderNum,
+        t1.validOrderNum,
+        t1.validOrderRate,
+        round(t1.orderAmount / 100,2) as 'orderAmount',
+        round(t1.regimentalPromotionAmount / 100 ,2 ) as 'regimentalPromotionAmount',
+        round(t1.totalRegimentalSettleAmount / 100 , 2) as 'totalRegimentalSettleAmount',
+        t4.sendTotalCount,
+        t4.sendPromoterCount,
+        t4.sendItemCount,
+        t1.voucherOrderNum,
+        t1.voucherValidOrderNum,
+        round(t1.voucherOrderAmount / 100 ,2) as 'voucherOrderAmount',
+        round(t1.voucherRegimentalPromotionAmount / 100 ,2) as 'voucherRegimentalPromotionAmount',
+        round( t1.voucherTotalRegimentalSettleAmount / 100 , 2) as 'voucherTotalRegimentalSettleAmount'
+        from (
+        select collect_sample_id as 'collectSampleId',
+        collect_sample_name as 'collectSampleName',
+        sum(order_num) as 'orderNum',
+        IFNULL(SUM(CASE WHEN sample_voucher_status = 2 THEN order_num ELSE 0 END), 0) AS 'voucherOrderNum',
+        sum(valid_order_num) as 'validOrderNum',
+        IFNULL(SUM(CASE WHEN sample_voucher_status = 2 THEN valid_order_num ELSE 0 END), 0) AS 'voucherValidOrderNum',
+        round(sum(valid_order_num) / sum(order_num) * 100, 2) as 'validOrderRate',
+        sum(order_amount) as 'orderAmount',
+        IFNULL(SUM(CASE WHEN sample_voucher_status = 2 THEN order_amount ELSE 0 END), 0) AS 'voucherOrderAmount',
+        sum(regimental_promotion_amount) as 'regimentalPromotionAmount',
+        IFNULL(SUM(CASE WHEN sample_voucher_status = 2 THEN regimental_promotion_amount ELSE 0 END), 0)
+        AS'voucherRegimentalPromotionAmount',
+        sum(total_regimental_settle_amount) as 'totalRegimentalSettleAmount',
+        IFNULL(SUM(CASE WHEN sample_voucher_status = 2 THEN total_regimental_settle_amount ELSE 0 END), 0) AS
+        'voucherTotalRegimentalSettleAmount'
+        from ruixuan.canal_management
+        where 1 = 1
+        <if test="start != null and start != ''">
+            and stat_date &gt;= #{start}
+        </if>
+        <if test="end != null and end != ''">
+            and stat_date &lt;= #{end}
+        </if>
+        <if test="collectSampleId != null and collectSampleId != ''">
+            and collect_sample_id = #{collectSampleId}
+        </if>
+        group by collect_sample_id) t1
+        left join (
+        select user_id as 'userId',
+        count(distinct promoter_id) as 'promoterCount'
+        from kuaishou_promoter
+        group by user_id) t2
+        on t1.collectSampleId = t2.userId
+        left join (
+        select collect_sample_id as 'collectSampleId',
+        count(distinct promoter_id) as 'sampleCount'
+        from kuaishou_item_collect_samples
+        where collect_sample_status > 2
+        group by collect_sample_id) t3
+        on t2.userId = t3.collectSampleId
+        left join (
+        select collect_sample_id as 'collectSampleId',
+        count(1) as 'sendTotalCount',
+        count(distinct promoter_id) as 'sendPromoterCount',
+        count(distinct item_id) as 'sendItemCount'
+        from kuaishou_item_collect_samples
+        where collect_sample_status > 2
+        <if test="collectSampleId != null and collectSampleId != ''">
+            and collect_sample_id = #{collectSampleId}
+        </if>
+        <if test="start != null and start != ''">
+            and create_time &gt;= str_to_date(concat(date_format(#{start}, '%Y-%m-%d'), '00:00:01'), '%Y-%m-%d
+            %H:%i:%s')
+        </if>
+        <if test="end != null and end != ''">
+            and create_time &lt;= str_to_date(concat(date_format(#{end}, '%Y-%m-%d'), '23:59:59'), '%Y-%m-%d %H:%i:%s')
+        </if>
+        group by collect_sample_id
+        ) t4
+        on t1.collectSampleId = t4.collectSampleId
+        order by t1.orderNum desc
+
+    </select>
 </mapper>