Forráskód Böngészése

1.控制台任务统计导出明细

wuhp 1 éve
szülő
commit
0e3471aec1

+ 23 - 0
src/main/java/com/ydtech/modules/admin/controller/taskStatistics/TaskStatisticsController.java

@@ -6,6 +6,7 @@ import com.github.pagehelper.PageInfo;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.modules.admin.model.dto.TaskStatisticsDto;
 import com.ydtech.modules.admin.model.dto.TaskStatisticsDtoNew;
+import com.ydtech.modules.admin.model.report.profitAnalysis.ProfitAnalysisQueryDto;
 import com.ydtech.modules.admin.model.vo.BusinessAgentData;
 import com.ydtech.modules.admin.model.vo.BusinessOrderData;
 import com.ydtech.modules.admin.model.vo.KztGetDeptUtilsDto;
@@ -62,6 +63,28 @@ public class TaskStatisticsController {
         }
     }
 
+    /**
+     * @param taskStatisticsVo
+     * @param httpServerRequest
+     * @return 任务统计明细导出
+     */
+
+    @PostMapping("/ordersDetailsExcel")
+    @ApiOperation(value = "控制台-任务统计导出")
+    public HttpResult ordersDetailsExcel(@RequestBody TaskStatisticsVo taskStatisticsVo, HttpServletRequest httpServerRequest) {
+        KztGetDeptUtils kztGetDeptUtils = new KztGetDeptUtils();
+        KztGetDeptUtilsDto kztGetDeptUtilsDto = kztGetDeptUtils.KztGetDeptIds(httpServerRequest.getRequestURL().toString());
+        if(ObjectUtils.isNotEmpty(kztGetDeptUtilsDto)){
+            if("1".equals(kztGetDeptUtilsDto.getType())){
+                taskStatisticsVo.setDeptIds(kztGetDeptUtilsDto.getIds());
+            } else if ("2".equals(kztGetDeptUtilsDto.getType())) {
+                taskStatisticsVo.setUserIds(kztGetDeptUtilsDto.getIds());
+            }
+        }
+        return this.taskStatisticsService.ordersDetailsExcel(taskStatisticsVo);
+    }
+
+
     /**
      * @description:   电销任务统计查询
      * @author: whp

+ 1 - 1
src/main/java/com/ydtech/modules/admin/dao/DeptBalanceMapper.java

@@ -57,5 +57,5 @@ public interface DeptBalanceMapper {
      * @param deptBalanceVo
      * @return  获取钱包总收入
      */
-    HashMap<String, BigDecimal> getIncomeIndication(DeptBalanceVo deptBalanceVo);
+    HashMap<String, BigDecimal> getIncomeIndication(HashMap<String,Object> params);
 }

+ 8 - 0
src/main/java/com/ydtech/modules/admin/dao/TaskStatisticsMapper.java

@@ -3,6 +3,7 @@ package com.ydtech.modules.admin.dao;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ydtech.modules.admin.model.SysUser;
+import com.ydtech.modules.admin.model.dto.OrdersDetailsExcel;
 import com.ydtech.modules.admin.model.vo.BusinessAgentData;
 import com.ydtech.modules.admin.model.vo.BusinessOrderData;
 import com.ydtech.modules.admin.model.vo.TaskStatisticsVo;
@@ -57,4 +58,11 @@ public interface TaskStatisticsMapper extends BaseMapper<TaskStatisticsDto> {
 
     List<BusinessAgentData> getBusinessAgentDataExcel(@Param("vo") TaskStatisticsVo taskStatisticsVo);
 
+    /**
+     *
+     * @param taskStatisticsVo
+     * @return  任务明细导出
+     */
+    List<OrdersDetailsExcel> ordersDetailsExcel(@Param("taskStatisticsVo") TaskStatisticsVo taskStatisticsVo);
+
 }

+ 7 - 0
src/main/java/com/ydtech/modules/admin/service/TaskStatisticsService.java

@@ -188,4 +188,11 @@ public interface TaskStatisticsService {
      **/
     HttpResult getChannelExcel(TaskStatisticsVo taskStatisticsVo);
 
+    /**
+     * @param taskStatisticsVo
+     * @param httpServerRequest
+     * @return 任务统计明细导出
+     */
+    HttpResult ordersDetailsExcel(TaskStatisticsVo taskStatisticsVo);
+
 }

+ 14 - 4
src/main/java/com/ydtech/modules/admin/service/impl/DeptBalanceServiceImpl.java

@@ -400,8 +400,13 @@ public class DeptBalanceServiceImpl implements DeptBalanceService {
                     // 可提现
                     wtxAmount= (sysUserAccountEntity==null || sysUserAccountEntity.getSumAmount()==null)?BigDecimal.ZERO:sysUserAccountEntity.getSumAmount();
 
-                    deptBalanceVo.setUserId(record.getUserId());
-                    HashMap<String, BigDecimal> incomeIndication = deptBalanceMapper.getIncomeIndication(deptBalanceVo);
+
+                    HashMap<String, Object> params = new HashMap<>();
+                    params.put("beginDate",deptBalanceVo.getBeginDate());
+                    params.put("endDate",deptBalanceVo.getEndDate());
+                    params.put("userId",record.getUserId());
+                    params.put("phoneNumber",deptBalanceVo.getPhoneNumber());
+                    HashMap<String, BigDecimal> incomeIndication = deptBalanceMapper.getIncomeIndication(params);
 
                     if(incomeIndication!=null){
                         record.setTotalIncome(incomeIndication.get("totalAmount"));
@@ -439,8 +444,13 @@ public class DeptBalanceServiceImpl implements DeptBalanceService {
                 BigDecimal sumAmount=ysTXAmount.add(ssKTAmount).add(txzTXAmount);
 
                 //2025-1-8  需求 总收入 = 当天审核订单收入   收支明细
-                deptBalanceVo.setUserId(record.getUserId());
-                HashMap<String, BigDecimal> incomeIndication = deptBalanceMapper.getIncomeIndication(deptBalanceVo);
+                HashMap<String, Object> params = new HashMap<>();
+                params.put("beginDate",deptBalanceVo.getBeginDate());
+                params.put("endDate",deptBalanceVo.getEndDate());
+                params.put("userId",record.getUserId());
+                params.put("phoneNumber",deptBalanceVo.getPhoneNumber());
+
+                HashMap<String, BigDecimal> incomeIndication = deptBalanceMapper.getIncomeIndication(params);
                 record.setWithdrawn(ysTXAmount);
                 record.setNotWithdrawn(ssKTAmount);
                 if(incomeIndication!=null){

+ 85 - 0
src/main/java/com/ydtech/modules/admin/service/impl/TaskStatisticsServiceImpl.java

@@ -164,6 +164,89 @@ public class TaskStatisticsServiceImpl  implements TaskStatisticsService {
         return list;
     }
 
+    @Override
+    public HttpResult ordersDetailsExcel(TaskStatisticsVo taskStatisticsVo) {
+        String leaderId = taskStatisticsVo.getLeaderId();
+        if(com.ydtech.utils.StringUtils.isNotEmpty(leaderId)){
+            //获取领导人下级所有
+            List<String> ids = new ArrayList<>();
+            List<String> userList = this.getUserTreeHx(leaderId, ids);
+            userList.add(leaderId);
+            if(userList.size()>0){
+                taskStatisticsVo.setLeaderIds(userList);
+            }
+        }
+        PageVo<TaskStatisticsVo> pageVo = new PageVo<>();
+        Page page = new Page(taskStatisticsVo.getPageNum(), taskStatisticsVo.getPageSize());
+        page.setSearchCount(false).setOptimizeCountSql(false);//关闭count查询
+        pageVo.setPageNum(taskStatisticsVo.getPageNum());
+        pageVo.setPageSize(taskStatisticsVo.getPageSize());
+
+
+        if(StringUtils.isNotEmpty(taskStatisticsVo.getDays())){
+            if("7".equals(taskStatisticsVo.getDays())){
+                taskStatisticsVo.setDays("2");
+            } else if ("30".equals(taskStatisticsVo.getDays())) {
+                taskStatisticsVo.setDays("3");
+            }
+        }
+        HashMap<String, String> dateMapByType = getDateMapByTypeNew(taskStatisticsVo.getDays(), taskStatisticsVo.getBeginDate(), taskStatisticsVo.getEndDate());
+        taskStatisticsVo.setBeginDate(dateMapByType.get("startDate"));
+        taskStatisticsVo.setEndDate(dateMapByType.get("endDate"));
+        List<OrdersDetailsExcel> list = taskStatisticsMapper.ordersDetailsExcel(taskStatisticsVo);
+        this.saveTranslate(list);
+        String uploadPath = this.uploadPath + "/excel/";
+        Path path = Paths.get(uploadPath);
+        if (!Files.exists(path)) {
+            try {
+                Files.createDirectories(path);
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+        }
+        String fileName = EasyExcelUtils.downExcel(uploadPath, "任务明细导出", OrdersDetailsExcel.class, list);
+        return HttpResult.ok("", uploadUrl + "excel/" + fileName);
+    }
+
+    private void saveTranslate(List<OrdersDetailsExcel> list) {
+        for (OrdersDetailsExcel ordersDetailsExcel : list) {
+            if (StringUtils.isNotEmpty(ordersDetailsExcel.getOrderstatus())) {
+                if ("0".equals(ordersDetailsExcel.getOrderstatus())) {
+                    ordersDetailsExcel.setOrderstatus("报价中");
+                }
+                if ("1".equals(ordersDetailsExcel.getOrderstatus())) {
+                    ordersDetailsExcel.setOrderstatus("待审核");
+                }
+                if ("2".equals(ordersDetailsExcel.getOrderstatus())) {
+                    ordersDetailsExcel.setOrderstatus("已核保代缴费");
+                }
+                if ("3".equals(ordersDetailsExcel.getOrderstatus())) {
+                    ordersDetailsExcel.setOrderstatus("已承保");
+                }
+                if ("4".equals(ordersDetailsExcel.getOrderstatus())) {
+                    ordersDetailsExcel.setOrderstatus("核保退回");
+                }
+
+            }
+            if(StringUtils.isNotEmpty(ordersDetailsExcel.getOrderSource())){
+                if("1".equals(ordersDetailsExcel.getOrderSource())  && "0".equals(ordersDetailsExcel.getOrderstatus())  ){
+                    ordersDetailsExcel.setOrderSource("app报价");
+                }
+                if("0".equals(ordersDetailsExcel.getOrderSource())  && "0".equals(ordersDetailsExcel.getOrderstatus())  ){
+                    ordersDetailsExcel.setOrderSource("pc报价");
+                }
+
+            }
+            if(StringUtils.isNotEmpty(ordersDetailsExcel.getEntryStatus())){
+                if("2".equals(ordersDetailsExcel.getEntryStatus())){
+                    ordersDetailsExcel.setEntryStatus("是");
+                }else {
+                    ordersDetailsExcel.setEntryStatus("否");
+                }
+            }
+        }
+    }
+
     private List<String> getUserTreeHx(String leaderId, List<String> ids) {
 
         List<SysUser> sysUsers = sysUserMapper.selectByLeadId(leaderId);
@@ -1387,6 +1470,8 @@ public class TaskStatisticsServiceImpl  implements TaskStatisticsService {
         return HttpResult.ok("", uploadUrl + "excel/" + fileName);
     }
 
+
+
     /**
      *  @version
      *  @author: hh

+ 58 - 0
src/main/resources/mapper/modules/admin/TaskStatisticsMapper.xml

@@ -616,4 +616,62 @@
         order by  a.sumpremium  desc ,su.id
     </select>
 
+    <select id="ordersDetailsExcel" resultType="com.ydtech.modules.admin.model.dto.OrdersDetailsExcel">
+        select
+            io.userid as "userId",
+            iac.leader_name as "leaderName",
+            su.name as "userName",
+            io.licenseno as "licenseno",
+            sd.management_source as "managementSource",
+            io.orderno as "orderno",
+            iot.order_status as "orderStatus",
+            io.order_source  as "orderSource",
+            iac.entry_status  as "orderSource"
+        from (select iot.suborder, iot.order_status  from `ins_orders_track` iot GROUP BY iot.suborder, iot.order_status) iot
+                 left join ins_area_company iac ON iac.id = iot.suborder
+                 LEFT JOIN ins_orders io ON io.orderno = iac.orderno
+                 LEFT JOIN sys_dept sd ON sd.id = io.deptid
+                 LEFT JOIN sys_user  su on  su.id =io.userid
+        <where>
+              ( io.del_flag is null   or   io.del_flag ='1')
+            <if test="taskStatisticsVo.provinceId != null and taskStatisticsVo.provinceId != ''">
+                and io.deptid like "${taskStatisticsVo.provinceId}%"
+            </if>
+            <if test="taskStatisticsVo.cityId != null and taskStatisticsVo.cityId != ''">
+                and io.deptid like "${taskStatisticsVo.cityId}%"
+            </if>
+            <if test="taskStatisticsVo.countyId != null and taskStatisticsVo.countyId != ''">
+                and io.deptid like "${taskStatisticsVo.countyId}%"
+            </if>
+            <if test="taskStatisticsVo.houseId != null and taskStatisticsVo.houseId != ''">
+                and io.deptid like "${taskStatisticsVo.houseId}%"
+            </if>
+
+            <if test="taskStatisticsVo.userId != null and taskStatisticsVo.userId != ''">
+                and io.userid =#{taskStatisticsVo.userId}
+            </if>
+
+            <if test="taskStatisticsVo.createtimeStart !=null and taskStatisticsVo.createtimeStart != '' and taskStatisticsVo.createtimeEnd !=null and taskStatisticsVo.createtimeEnd != ''">
+                AND   DATE_FORMAT( io.createtime, '%Y-%m-%d')   BETWEEN #{taskStatisticsVo.createtimeStart} AND #{taskStatisticsVo.createtimeEnd}
+            </if>
+            <if test="taskStatisticsVo.beginDate !=null and taskStatisticsVo.beginDate != '' and taskStatisticsVo.endDate !=null and taskStatisticsVo.endDate != ''">
+                AND   DATE_FORMAT( iac.createtime, '%Y-%m-%d')   BETWEEN  DATE_FORMAT( #{taskStatisticsVo.beginDate}, '%Y-%m-%d') AND  DATE_FORMAT( #{taskStatisticsVo.endDate}, '%Y-%m-%d')
+            </if>
+
+            <if test="taskStatisticsVo.deptIds != null and taskStatisticsVo.deptIds != '' and taskStatisticsVo.deptIds.size() > 0">
+                AND sd.id  in
+                <foreach collection="taskStatisticsVo.deptIds" item="item" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+            <if test="taskStatisticsVo.userIds != null and taskStatisticsVo.userIds != '' and taskStatisticsVo.userIds.size() > 0">
+                AND io.userid  in
+                <foreach collection="taskStatisticsVo.userIds" item="item" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+        </where>
+
+
+    </select>
 </mapper>