Procházet zdrojové kódy

1.提交ipad绑定统计后端

jzp před 3 týdny
rodič
revize
1d0aff5f00

+ 16 - 4
fs-admin/src/main/java/com/fs/company/controller/CompanyStatisticsController.java

@@ -13,10 +13,7 @@ import com.fs.company.param.FsStoreStatisticsParam;
 import com.fs.company.service.ICompanySmsLogsService;
 import com.fs.company.service.ICompanyUserService;
 import com.fs.company.service.ICompanyVoiceLogsService;
-import com.fs.company.vo.CompanySmsLogsStatisticsVO;
-import com.fs.company.vo.CompanyVoiceLogsStatisticsVO;
-import com.fs.company.vo.FsStoreOrderStatisticsVO;
-import com.fs.company.vo.FsStorePaymentStatisticsVO;
+import com.fs.company.vo.*;
 import com.fs.crm.param.CrmCustomerStatisticsParam;
 import com.fs.crm.service.ICrmCustomerService;
 import com.fs.crm.service.ICrmCustomerVisitService;
@@ -27,6 +24,7 @@ import com.fs.his.service.IFsStorePaymentService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
@@ -631,4 +629,18 @@ public class CompanyStatisticsController extends BaseController
         ExcelUtil<CrmCustomerVisitStatisticsVO> util = new ExcelUtil<CrmCustomerVisitStatisticsVO>(CrmCustomerVisitStatisticsVO.class);
         return util.exportExcel(list, "visit");
     }
+
+    @GetMapping("/ipadStaticTotal/{dateTime}")
+    public R ipadStaticTotal(@PathVariable("dateTime") String dateTime){
+        List<QwIpadTotalVo> qwIpadTotalVos = userService.selectCompanyByIpadStatus(dateTime);
+        return R.ok().put("list",qwIpadTotalVos);
+    }
+
+    @GetMapping("/exportIpadStaticByTime/{dateTime}")
+    public AjaxResult exportIpadStaticByTime(@PathVariable("dateTime") String dateTime){
+        List<QwIpadTotalVo> qwIpadTotalVos = userService.selectCompanyByIpadStatus(dateTime);
+        ExcelUtil<QwIpadTotalVo> util = new ExcelUtil<QwIpadTotalVo>(QwIpadTotalVo.class);
+        return util.exportExcel(qwIpadTotalVos, "visit");
+    }
+
 }

+ 25 - 0
fs-admin/src/main/java/com/fs/his/task/Task.java

@@ -5,12 +5,15 @@ import cn.hutool.json.JSONUtil;
 import com.alibaba.fastjson.JSON;
 import com.fs.common.core.redis.RedisCache;
 import com.fs.common.service.impl.SmsServiceImpl;
+import com.fs.common.utils.DateUtils;
 import com.fs.common.utils.SecurityUtils;
 import com.fs.company.domain.CompanyMoneyLogs;
 import com.fs.company.domain.CompanyUser;
 import com.fs.company.domain.CompanyVoiceCaller;
 import com.fs.company.mapper.*;
 import com.fs.company.service.ICompanyService;
+import com.fs.company.service.ICompanyUserService;
+import com.fs.company.vo.QwIpadTotalVo;
 import com.fs.company.vo.RedPacketMoneyVO;
 import com.fs.course.mapper.FsCourseRedPacketLogMapper;
 import com.fs.course.service.IFsCourseWatchLogService;
@@ -48,6 +51,7 @@ import com.fs.qwApi.service.QwApiService;
 import com.fs.system.domain.SysConfig;
 import com.fs.system.mapper.SysConfigMapper;
 import com.google.gson.Gson;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -59,6 +63,7 @@ import java.util.Date;
 import java.util.List;
 import java.util.Map;
 
+@Slf4j
 @Component("task")
 public class Task {
     @Autowired
@@ -153,6 +158,26 @@ public class Task {
     @Autowired
     private IQwUserService qwUserService;
 
+    @Autowired
+    private ICompanyUserService userService;
+
+    //定时查询ipad主机使用情况,建议每天凌晨1点执行一次
+    public void totalIpadTask(){
+        String dateTime = DateUtils.addDateDays(-1); // 昨天
+        List<QwIpadTotalVo> qwIpadTotalVos = userService.selectCompanyByIpadStatusCount();
+        if(qwIpadTotalVos != null && !qwIpadTotalVos.isEmpty()){
+            qwIpadTotalVos.forEach(qwIpadTotalVo ->
+                    qwIpadTotalVo.setStatTime(dateTime)
+            );
+            int a = userService.insertQwIpadTotal(qwIpadTotalVos);
+            if(a == 0){
+                log.error("插入ipad主机失败");
+            }
+        }else{
+            log.error("查询没有数据");
+        }
+    }
+
     public void addQwUserName(){
         QwCompany qwCompany = new QwCompany();
         List<QwCompany> companyList = qwCompanyService.selectQwCompanyList(qwCompany);

+ 6 - 0
fs-common/src/main/java/com/fs/common/utils/DateUtils.java

@@ -264,5 +264,11 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils
         return endOfDay.format(OUTPUT_FORMATTER);
     }
 
+    // 返回昨天或明天的日期字符串(格式:yyyy-MM-dd)
+    public static String addDateDays(int days) {
+        Calendar cal = Calendar.getInstance();
+        cal.add(Calendar.DATE, days);
+        return new SimpleDateFormat("yyyy-MM-dd").format(cal.getTime());
+    }
 
 }

+ 6 - 4
fs-service/src/main/java/com/fs/company/mapper/CompanyUserMapper.java

@@ -5,10 +5,7 @@ import com.fs.common.enums.DataSourceType;
 import com.fs.company.domain.CompanyUser;
 import com.fs.company.param.CompanyUserAreaParam;
 import com.fs.company.param.CompanyUserQwParam;
-import com.fs.company.vo.CompanyQwUserByIdsVo;
-import com.fs.company.vo.CompanyUserQwListVO;
-import com.fs.company.vo.CompanyUserVO;
-import com.fs.company.vo.DocCompanyUserVO;
+import com.fs.company.vo.*;
 import com.fs.his.vo.OptionsVO;
 import com.fs.qw.vo.CompanyUserQwVO;
 import com.fs.qw.vo.QwOptionsVO;
@@ -308,4 +305,9 @@ public interface CompanyUserMapper
 
     int updateAllowedAllRegister(@Param("status") boolean status, @Param("userIds")List<Long> userIds);
 
+    List<QwIpadTotalVo> selectCompanyByIpadStatus(@Param("dateTime") String dateTime);
+
+    List<QwIpadTotalVo> selectCompanyByIpadStatusCount();
+
+    int insertQwIpadTotal(List<QwIpadTotalVo> qwIpadTotalVos);
 }

+ 7 - 4
fs-service/src/main/java/com/fs/company/service/ICompanyUserService.java

@@ -4,10 +4,7 @@ import com.fs.common.core.domain.R;
 import com.fs.company.domain.CompanyUser;
 import com.fs.company.param.CompanyUserAreaParam;
 import com.fs.company.param.CompanyUserQwParam;
-import com.fs.company.vo.CompanyQwUserByIdsVo;
-import com.fs.company.vo.CompanyUserQwListVO;
-import com.fs.company.vo.CompanyUserVO;
-import com.fs.company.vo.DocCompanyUserVO;
+import com.fs.company.vo.*;
 import com.fs.his.vo.CitysAreaVO;
 import com.fs.his.vo.OptionsVO;
 import com.fs.qw.dto.UserProjectDTO;
@@ -220,4 +217,10 @@ public interface ICompanyUserService {
      */
     Boolean isAllowedAllRegister(boolean status,  List<Long> userIds);
 
+    List<QwIpadTotalVo> selectCompanyByIpadStatus(String dateTime);
+
+    List<QwIpadTotalVo> selectCompanyByIpadStatusCount();
+
+    int insertQwIpadTotal(List<QwIpadTotalVo> qwIpadTotalVos);
+
 }

+ 16 - 4
fs-service/src/main/java/com/fs/company/service/impl/CompanyUserServiceImpl.java

@@ -13,10 +13,7 @@ import com.fs.company.mapper.*;
 import com.fs.company.param.CompanyUserAreaParam;
 import com.fs.company.param.CompanyUserQwParam;
 import com.fs.company.service.ICompanyUserService;
-import com.fs.company.vo.CompanyQwUserByIdsVo;
-import com.fs.company.vo.CompanyUserQwListVO;
-import com.fs.company.vo.CompanyUserVO;
-import com.fs.company.vo.DocCompanyUserVO;
+import com.fs.company.vo.*;
 import com.fs.course.service.IFsUserCompanyUserService;
 import com.fs.his.mapper.FsUserMapper;
 import com.fs.his.service.IFsCityService;
@@ -624,4 +621,19 @@ public class CompanyUserServiceImpl implements ICompanyUserService
         return true;
     }
 
+    @Override
+    public List<QwIpadTotalVo> selectCompanyByIpadStatus(String dateTime) {
+        return companyUserMapper.selectCompanyByIpadStatus(dateTime);
+    }
+
+    @Override
+    public List<QwIpadTotalVo> selectCompanyByIpadStatusCount() {
+        return companyUserMapper.selectCompanyByIpadStatusCount();
+    }
+
+    @Override
+    public int insertQwIpadTotal(List<QwIpadTotalVo> qwIpadTotalVos) {
+        return companyUserMapper.insertQwIpadTotal(qwIpadTotalVos);
+    }
+
 }

+ 15 - 0
fs-service/src/main/java/com/fs/company/vo/QwIpadTotalVo.java

@@ -0,0 +1,15 @@
+package com.fs.company.vo;
+
+import com.fs.common.annotation.Excel;
+import lombok.Data;
+
+@Data
+public class QwIpadTotalVo {
+    private Long id;
+    private Long companyId;
+    @Excel(name = "公司名称")
+    private String companyName;
+    @Excel(name = "绑定数")
+    private Long bindCount;
+    private String statTime;
+}

+ 22 - 0
fs-service/src/main/resources/mapper/company/CompanyUserMapper.xml

@@ -175,6 +175,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="isAudit != null">#{isAudit},</if>
         </trim>
     </insert>
+    <insert id="insertQwIpadTotal">
+        insert into qw_ipad_total (company_id,company_name,bind_count,stat_time) values
+        <foreach item="item" collection="list" separator=",">
+            (#{item.companyId},#{item.companyName},#{item.bindCount},#{item.statTime})
+        </foreach>
+    </insert>
 
     <update id="updateCompanyUser" parameterType="CompanyUser">
         update company_user
@@ -531,6 +537,22 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     <select id="selectCompanyUserByCompanyUserId" resultMap="CompanyUserResult">
         select  * from company_user where user_id = #{companyUserId}
     </select>
+    <select id="selectCompanyByIpadStatus" resultType="com.fs.company.vo.QwIpadTotalVo">
+        select company_id companyId,company_name companyName,
+        sum(bind_count) bindCount,stat_time statTime from qw_ipad_total
+        <where>
+            <if test="dateTime != null">
+                and stat_time like concat(#{dateTime}, '%')
+            </if>
+        </where>
+        group by company_id,company_name
+    </select>
+    <select id="selectCompanyByIpadStatusCount" resultType="com.fs.company.vo.QwIpadTotalVo">
+        SELECT qw.company_id companyId,c.company_name companyName,count(1) bindCount
+        FROM `qw_user` qw left join company c on qw.company_id = c.company_id
+        where qw.ipad_status is not null
+        GROUP BY qw.company_id
+    </select>
 
     <update id="updateAllowedAllRegister" parameterType="Long">
         update company_user