소스 검색

Merge branch 'fu-dev' of uskycloud/usky-modules into server-165

fuyuchuan 9 달 전
부모
커밋
45241d0ec9

+ 28 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/controller/web/PmWorkContentController.java

@@ -3,12 +3,14 @@ package com.usky.iot.controller.web;
 
 
 import com.usky.common.core.bean.ApiResult;
 import com.usky.common.core.bean.ApiResult;
 import com.usky.iot.domain.PmWorkContent;
 import com.usky.iot.domain.PmWorkContent;
+import com.usky.iot.domain.PmWorkReport;
 import com.usky.iot.service.PmWorkContentService;
 import com.usky.iot.service.PmWorkContentService;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.*;
 
 
 import java.time.LocalDate;
 import java.time.LocalDate;
+import java.time.temporal.TemporalAdjusters;
 import java.util.List;
 import java.util.List;
 
 
 /**
 /**
@@ -37,5 +39,31 @@ public class PmWorkContentController {
         return ApiResult.success(pmWorkContentService.projectQuery(startDate, endDate, projectName, projectAscription));
         return ApiResult.success(pmWorkContentService.projectQuery(startDate, endDate, projectName, projectAscription));
     }
     }
 
 
+
+
+    @GetMapping("/reportRecord")
+    public ApiResult<List<PmWorkReport>> reportRecord(@RequestParam(value = "startDate", required = false) String startDate,
+                                                      @RequestParam(value = "endDate", required = false) String endDate,
+                                                      @RequestParam(value = "projectName", required = false) String projectName,
+                                                      @RequestParam(value = "projectAscription", required = false, defaultValue = "1") Integer projectAscription) {
+        if (StringUtils.isBlank(startDate) || StringUtils.isBlank(endDate)) {
+            startDate = LocalDate.now().toString();
+            endDate = LocalDate.now().toString();
+        }
+        return ApiResult.success(pmWorkContentService.workReportQuery(startDate, endDate, projectName, projectAscription));
+    }
+
+    @GetMapping("/workHourStatistic")
+    public ApiResult<List<Object>> workHourStatistic(@RequestParam(value = "userId", required = false) Long userId,
+                                                           @RequestParam(value = "filter", required = false, defaultValue = "1") Integer filter,
+                                                           @RequestParam(value = "startDate", required = false) String startDate,
+                                                           @RequestParam(value = "endDate", required = false) String endDate,
+                                                           @RequestParam(value = "workerOrProject", required = false, defaultValue = "1") Integer workerOrProject) {
+        if (StringUtils.isBlank(startDate) || StringUtils.isBlank(endDate)) {
+            startDate = LocalDate.now().with(TemporalAdjusters.firstDayOfYear()).toString();
+            endDate = LocalDate.now().with(TemporalAdjusters.lastDayOfYear()).toString();
+        }
+        return ApiResult.success(pmWorkContentService.workHourStatistic(userId, filter, startDate, endDate, workerOrProject));
+    }
 }
 }
 
 

+ 6 - 4
service-iot/service-iot-biz/src/main/java/com/usky/iot/mapper/PmWorkContentMapper.java

@@ -2,8 +2,8 @@ package com.usky.iot.mapper;
 
 
 import com.usky.iot.domain.PmWorkContent;
 import com.usky.iot.domain.PmWorkContent;
 import com.usky.common.mybatis.core.CrudMapper;
 import com.usky.common.mybatis.core.CrudMapper;
-import com.usky.iot.service.vo.PmProjectTotalWorkTimeVo;
 import com.usky.iot.service.vo.PmProjectWorkTimeVo;
 import com.usky.iot.service.vo.PmProjectWorkTimeVo;
+import com.usky.iot.service.vo.WorkHoursStatisticsVO;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Repository;
 import org.springframework.stereotype.Repository;
 
 
@@ -26,7 +26,9 @@ public interface PmWorkContentMapper extends CrudMapper<PmWorkContent> {
                                             @Param("endTime") LocalDateTime endTime,
                                             @Param("endTime") LocalDateTime endTime,
                                             @Param("userId") Long userId);
                                             @Param("userId") Long userId);
 
 
-/*    List<PmProjectTotalWorkTimeVo> timeCount(@Param("startTime") LocalDateTime startTime,
-                                             @Param("endTime") LocalDateTime endTime,
-                                             @Param("userId") Long userId);*/
+    List<WorkHoursStatisticsVO> workHoursStatistics(@Param("startTime") LocalDate startTime,
+                                                    @Param("endTime") LocalDate endTime,
+                                                    @Param("userId") Long userId,
+                                                    @Param("tenantId") Integer tenantId);
+
 }
 }

+ 15 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/mapper/SysUserMapper.java

@@ -0,0 +1,15 @@
+package com.usky.iot.mapper;
+
+import com.usky.common.mybatis.core.CrudMapper;
+import com.usky.system.domain.SysUser;
+import org.springframework.stereotype.Repository;
+
+/**
+ * @description:TODO
+ * @author: fu
+ * @create: 2024-06-24 15:47
+ */
+@Repository
+public interface SysUserMapper extends CrudMapper<SysUser> {
+
+}

+ 26 - 6
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/PmWorkContentService.java

@@ -2,9 +2,7 @@ package com.usky.iot.service;
 
 
 import com.usky.iot.domain.PmWorkContent;
 import com.usky.iot.domain.PmWorkContent;
 import com.usky.common.mybatis.core.CrudService;
 import com.usky.common.mybatis.core.CrudService;
-
-import java.time.LocalDate;
-import java.time.LocalDateTime;
+import com.usky.iot.domain.PmWorkReport;
 import java.util.List;
 import java.util.List;
 
 
 /**
 /**
@@ -19,19 +17,41 @@ public interface PmWorkContentService extends CrudService<PmWorkContent> {
 
 
     /**
     /**
      * 清空报告内容
      * 清空报告内容
+     *
      * @param reportId 报告id
      * @param reportId 报告id
      */
      */
     void deleteContent(Integer reportId);
     void deleteContent(Integer reportId);
 
 
     /**
     /**
      * 报告记录中查询项目名与id
      * 报告记录中查询项目名与id
-     * @param startDate 开始时间
-     * @param endDate 结束时间
-     * @param projectName 项目名
+     *
+     * @param startDate         开始时间
+     * @param endDate           结束时间
+     * @param projectName       项目名
      * @param projectAscription 查询标识(1:我负责的;2:抄送我的)
      * @param projectAscription 查询标识(1:我负责的;2:抄送我的)
      * @return
      * @return
      */
      */
     List<PmWorkContent> projectQuery(String startDate, String endDate, String projectName, Integer projectAscription);
     List<PmWorkContent> projectQuery(String startDate, String endDate, String projectName, Integer projectAscription);
 
 
+    /**
+     * 报告记录
+     *
+     * @param startDate         开始时间
+     * @param endDate           结束时间
+     * @param projectName       项目名
+     * @param projectAscription 查询标识(1:我负责的;2:抄送我的)
+     * @return
+     */
+    List<PmWorkReport> workReportQuery(String startDate, String endDate, String projectName, Integer projectAscription);
+
+    /**
+     * @param userId          用户id
+     * @param filter          是否过滤0工时(默认1:不过滤;2:过滤)
+     * @param startDate       开始时间
+     * @param endDate         结束时间
+     * @param workerOrProject 打工仔还是项目(默认1:打工仔;2:项目)
+     * @return 返回项目名(或牛马名)以及项目工时
+     */
+    List<Object> workHourStatistic(Long userId, Integer filter, String startDate, String endDate, Integer workerOrProject);
 
 
 }
 }

+ 183 - 5
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/impl/PmWorkContentServiceImpl.java

@@ -1,18 +1,30 @@
 package com.usky.iot.service.impl;
 package com.usky.iot.service.impl;
 
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.usky.common.security.utils.SecurityUtils;
 import com.usky.common.security.utils.SecurityUtils;
+import com.usky.iot.domain.PmProject;
 import com.usky.iot.domain.PmWorkContent;
 import com.usky.iot.domain.PmWorkContent;
+import com.usky.iot.domain.PmWorkReport;
+import com.usky.iot.mapper.PmProjectMapper;
 import com.usky.iot.mapper.PmWorkContentMapper;
 import com.usky.iot.mapper.PmWorkContentMapper;
+import com.usky.iot.mapper.PmWorkReportMapper;
+import com.usky.iot.mapper.SysUserMapper;
 import com.usky.iot.service.PmWorkContentService;
 import com.usky.iot.service.PmWorkContentService;
 import com.usky.common.mybatis.core.AbstractCrudService;
 import com.usky.common.mybatis.core.AbstractCrudService;
+import com.usky.iot.service.vo.ProjectWorkTimeVO;
+import com.usky.iot.service.vo.UserWorkTimeVO;
+import com.usky.iot.service.vo.WorkHoursStatisticsVO;
+import com.usky.system.domain.SysUser;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
+import java.math.BigDecimal;
 import java.time.LocalDate;
 import java.time.LocalDate;
-import java.util.ArrayList;
-import java.util.List;
+import java.util.*;
+import java.util.stream.Collectors;
 
 
 /**
 /**
  * <p>
  * <p>
@@ -25,6 +37,15 @@ import java.util.List;
 @Service
 @Service
 public class PmWorkContentServiceImpl extends AbstractCrudService<PmWorkContentMapper, PmWorkContent> implements PmWorkContentService {
 public class PmWorkContentServiceImpl extends AbstractCrudService<PmWorkContentMapper, PmWorkContent> implements PmWorkContentService {
 
 
+    @Autowired
+    private PmWorkReportMapper pmWorkReportMapper;
+
+    @Autowired
+    private SysUserMapper sysUserMapper;
+
+    @Autowired
+    private PmProjectMapper pmProjectMapper;
+
     @Override
     @Override
     public void deleteContent(Integer reportId) {
     public void deleteContent(Integer reportId) {
         LambdaQueryWrapper<PmWorkContent> deleteWrapper = Wrappers.lambdaQuery();
         LambdaQueryWrapper<PmWorkContent> deleteWrapper = Wrappers.lambdaQuery();
@@ -36,9 +57,9 @@ public class PmWorkContentServiceImpl extends AbstractCrudService<PmWorkContentM
     public List<PmWorkContent> projectQuery(String startDate, String endDate, String projectName, Integer projectAscription) {
     public List<PmWorkContent> projectQuery(String startDate, String endDate, String projectName, Integer projectAscription) {
         LocalDate start = LocalDate.parse(startDate);
         LocalDate start = LocalDate.parse(startDate);
         LocalDate end = LocalDate.parse(endDate);
         LocalDate end = LocalDate.parse(endDate);
-        String subQueryReports = "SELECT id FROM pm_work_report WHERE report_date BETWEEN '" + start + "' AND '" + end + "'";
-        String subQueryReport = "SELECT id FROM pm_work_report WHERE FIND_IN_SET('" + SecurityUtils.getUserId() + "', cc_to) > 0";
-        String subQueryProjects = "SELECT id FROM pm_project WHERE project_head = " + SecurityUtils.getUserId();
+        String subQueryReports = "SELECT id FROM pm_work_report WHERE report_date BETWEEN '" + start + "' AND '" + end + "' AND tenant_id = " + SecurityUtils.getTenantId();
+        String subQueryReport = "SELECT id FROM pm_work_report WHERE FIND_IN_SET('" + SecurityUtils.getUserId() + "', cc_to) > 0 AND tenant_id = " + SecurityUtils.getTenantId();
+        String subQueryProjects = "SELECT id FROM pm_project WHERE project_head = '" + SecurityUtils.getUserId() + "' AND tenant_id = " + SecurityUtils.getTenantId();
         LambdaQueryWrapper<PmWorkContent> contentLambdaQuery = Wrappers.lambdaQuery();
         LambdaQueryWrapper<PmWorkContent> contentLambdaQuery = Wrappers.lambdaQuery();
         contentLambdaQuery.select(PmWorkContent::getProjectId, PmWorkContent::getProjectName)
         contentLambdaQuery.select(PmWorkContent::getProjectId, PmWorkContent::getProjectName)
                 .inSql(PmWorkContent::getReportId, subQueryReports);
                 .inSql(PmWorkContent::getReportId, subQueryReports);
@@ -54,4 +75,161 @@ public class PmWorkContentServiceImpl extends AbstractCrudService<PmWorkContentM
         List<PmWorkContent> pmWorkContentList = this.list(contentLambdaQuery);
         List<PmWorkContent> pmWorkContentList = this.list(contentLambdaQuery);
         return pmWorkContentList;
         return pmWorkContentList;
     }
     }
+
+    @Override
+    public List<PmWorkReport> workReportQuery(String startDate, String endDate, String projectName, Integer projectAscription) {
+        LocalDate start = LocalDate.parse(startDate);
+        LocalDate end = LocalDate.parse(endDate);
+        String subQueryReports = "SELECT id FROM pm_work_report WHERE report_date BETWEEN '" + start + "' AND '" + end + "' AND tenant_id = " + SecurityUtils.getTenantId();
+        String subQueryReport = "SELECT id FROM pm_work_report WHERE FIND_IN_SET('" + SecurityUtils.getUserId() + "', cc_to) > 0 AND tenant_id = " + SecurityUtils.getTenantId();
+        String subQueryProjects = "SELECT id FROM pm_project WHERE project_head = '" + SecurityUtils.getUserId() + "' AND tenant_id = " + SecurityUtils.getTenantId();
+        String reportIdList = "SELECT report_id FROM pm_work_content WHERE project_name = '" + projectName + "' AND tenant_id = " + SecurityUtils.getTenantId();
+        List<PmWorkReport> reportList = new ArrayList<>();
+        LambdaQueryWrapper<PmWorkContent> contentLambdaQuery = Wrappers.lambdaQuery();
+        contentLambdaQuery.select(PmWorkContent::getReportId, PmWorkContent::getWorkContent, PmWorkContent::getWorkTime, PmWorkContent::getProjectName)
+                .inSql(PmWorkContent::getReportId, subQueryReports);
+        if (projectAscription == 1) {
+            contentLambdaQuery.inSql(PmWorkContent::getProjectId, subQueryProjects);
+        } else if (projectAscription == 2) {
+            contentLambdaQuery.inSql(PmWorkContent::getReportId, subQueryReport);
+        }
+        if (StringUtils.isNotBlank(projectName)) {
+            contentLambdaQuery.inSql(PmWorkContent::getReportId, reportIdList);
+        }
+        List<PmWorkContent> pmWorkContentList = this.list(contentLambdaQuery);
+        if (pmWorkContentList == null || pmWorkContentList.size() == 0) {
+            return reportList;
+        }
+        List<Integer> reportIds = new ArrayList<>();
+        for (PmWorkContent a : pmWorkContentList) {
+            reportIds.add(a.getReportId());
+        }
+        LambdaQueryWrapper<PmWorkReport> reportQuery = Wrappers.lambdaQuery();
+        reportQuery.select(PmWorkReport::getId, PmWorkReport::getCoordinateWork, PmWorkReport::getTomorrowPlan, PmWorkReport::getCcTo, PmWorkReport::getSubmitterId,
+                PmWorkReport::getCreateTime)
+                .in(PmWorkReport::getId, reportIds)
+                .orderByDesc(PmWorkReport::getCreateTime);
+        reportList = pmWorkReportMapper.selectList(reportQuery);
+        List<Long> userIds = new ArrayList<>();
+        for (PmWorkReport c : reportList) {
+            List<PmWorkContent> contents = new ArrayList<>();
+            for (PmWorkContent b : pmWorkContentList) {
+                if (b.getReportId() == c.getId()) {
+                    contents.add(b);
+                }
+            }
+            c.setWorkContents(contents);
+            userIds.add(c.getSubmitterId());
+        }
+        LambdaQueryWrapper<SysUser> usersQuery = Wrappers.lambdaQuery();
+        usersQuery.select(SysUser::getUserId, SysUser::getNickName)
+                .in(SysUser::getUserId, userIds);
+        List<SysUser> nickNames = sysUserMapper.selectList(usersQuery);
+        for (PmWorkReport d : reportList) {
+            for (SysUser e : nickNames) {
+                if (e.getUserId().equals(d.getSubmitterId())) {
+                    d.setCreateBy(e.getNickName());
+                }
+            }
+        }
+        return reportList;
+    }
+
+    @Override
+    public List<Object> workHourStatistic(Long userId, Integer filter, String startDate, String endDate, Integer workerOrProject) {
+        List<ProjectWorkTimeVO> projectWorkTime = new ArrayList<>();
+        List<UserWorkTimeVO> userWorkTimeVO = new ArrayList<>();
+        Integer tenantId = SecurityUtils.getTenantId();
+        List<Object> returnList = new ArrayList<>();
+        LocalDate start = LocalDate.parse(startDate);
+        LocalDate end = LocalDate.parse(endDate);
+        //找出租户下所有项目
+        LambdaQueryWrapper<PmProject> projectQuery = Wrappers.lambdaQuery();
+        projectQuery.select(PmProject::getProjectName)
+                .eq(PmProject::getTenantId, SecurityUtils.getTenantId())
+                .orderByAsc(PmProject::getProjectName);
+        List<PmProject> projects = pmProjectMapper.selectList(projectQuery);
+        List<String> pmProjectName = projects.stream()
+                .map(PmProject::getProjectName)
+                .collect(Collectors.toList());
+        //统计userId每个项目所需工时
+        List<WorkHoursStatisticsVO> userAndProject = baseMapper.workHoursStatistics(start, end, userId, tenantId);
+        List<String> nickName = userAndProject.stream()
+                .map(WorkHoursStatisticsVO::getNickName)
+                .distinct()
+                .collect(Collectors.toList());
+        if (workerOrProject != 2) {
+            returnList.add(nickName);
+            //重组返回数据结构
+            for (PmProject project : projects) {
+                String name = project.getProjectName();
+                ProjectWorkTimeVO projectWorkTimeVO = new ProjectWorkTimeVO();
+                projectWorkTimeVO.setProjectName(name);
+                List<BigDecimal> workTime = new ArrayList<>();
+                boolean hasNonZeroWorkTime = false;
+                for (String currentNickName : nickName) {
+                    boolean foundWorkTime = false;
+                    for (WorkHoursStatisticsVO workHoursStatisticsVO : userAndProject) {
+                        String userNickName = workHoursStatisticsVO.getNickName();
+                        String projectName = workHoursStatisticsVO.getProjectName();
+                        BigDecimal userProjectWorkTime = workHoursStatisticsVO.getWorkTime();
+                        if (projectName.equals(name) && userNickName.equals(currentNickName)) {
+                            workTime.add(userProjectWorkTime);
+                            if (userProjectWorkTime.compareTo(BigDecimal.ZERO) != 0) {
+                                hasNonZeroWorkTime = true;
+                            }
+                            foundWorkTime = true;
+                            break;
+                        }
+                    }
+                    if (!foundWorkTime) {
+                        workTime.add(BigDecimal.ZERO);
+                    }
+                }
+                if (filter != 2 || hasNonZeroWorkTime) {
+                    projectWorkTimeVO.setWorkTime(workTime);
+                    projectWorkTime.add(projectWorkTimeVO);
+                }
+            }
+            returnList.add(projectWorkTime);
+        } else {
+            returnList.add(pmProjectName);
+            //重组返回数据结构
+            for (String uName : nickName) {
+                String name = uName;
+                UserWorkTimeVO userWorkTimeVO2 = new UserWorkTimeVO();
+                userWorkTimeVO2.setUserNickName(name);
+                List<BigDecimal> workTime = new ArrayList<>();
+                boolean hasNonZeroWorkTime = false;
+                for (String currentNickName : pmProjectName) {
+                    boolean foundWorkTime = false;
+                    for (WorkHoursStatisticsVO workHoursStatisticsVO : userAndProject) {
+                        String userNickName = workHoursStatisticsVO.getNickName();
+                        String projectName = workHoursStatisticsVO.getProjectName();
+                        BigDecimal userProjectWorkTime = workHoursStatisticsVO.getWorkTime();
+                        if (userNickName.equals(name) && projectName.equals(currentNickName)) {
+                            workTime.add(userProjectWorkTime);
+                            if (userProjectWorkTime.compareTo(BigDecimal.ZERO) != 0) {
+                                hasNonZeroWorkTime = true;
+                            }
+                            foundWorkTime = true;
+                            break;
+                        }
+                    }
+                    if (!foundWorkTime) {
+                        workTime.add(BigDecimal.ZERO);
+                    }
+                }
+                if (filter != 2 || hasNonZeroWorkTime) {
+                    userWorkTimeVO2.setWorkTime(workTime);
+                    userWorkTimeVO.add(userWorkTimeVO2);
+                }
+            }
+            returnList.add(userWorkTimeVO);
+        }
+
+
+        return returnList;
+    }
+
 }
 }

+ 18 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/vo/ProjectWorkTimeVO.java

@@ -0,0 +1,18 @@
+package com.usky.iot.service.vo;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * @description:TODO
+ * @author: fu
+ * @create: 2024-06-27 14:15
+ */
+@Data
+public class ProjectWorkTimeVO {
+    private String projectName;
+    private List<BigDecimal> workTime;
+}
+

+ 18 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/vo/UserWorkTimeVO.java

@@ -0,0 +1,18 @@
+package com.usky.iot.service.vo;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * @description:TODO
+ * @author: fu
+ * @create: 2024-06-27 14:15
+ */
+@Data
+public class UserWorkTimeVO {
+    private String userNickName;
+    private List<BigDecimal> workTime;
+}
+

+ 31 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/vo/WorkHoursStatisticsVO.java

@@ -0,0 +1,31 @@
+package com.usky.iot.service.vo;
+
+import lombok.Data;
+import java.math.BigDecimal;
+
+
+/**
+ * @description:TODO
+ * @author: fu
+ * @create: 2024-06-25 11:32
+ */
+@Data
+public class WorkHoursStatisticsVO {
+
+    /**
+     * 员工昵称
+     */
+    private String nickName;
+
+    /**
+     * 项目名
+     */
+    private String projectName;
+
+    /**
+     * 工时
+     */
+    private BigDecimal workTime;
+
+}
+

+ 13 - 0
service-iot/service-iot-biz/src/main/resources/mapper/iot/PmWorkContentMapper.xml

@@ -27,4 +27,17 @@
     GROUP BY pc.project_name
     GROUP BY pc.project_name
     </select>
     </select>
 
 
+    <select id="workHoursStatistics" resultType="com.usky.iot.service.vo.WorkHoursStatisticsVO">
+        SELECT u.nick_name as nickName, pc.project_name as projectName, SUM(pc.work_time) as workTime
+        FROM pm_work_content pc
+        JOIN pm_work_report pr ON pc.report_id = pr.id
+        JOIN sys_user u ON pc.submitter_id = u.user_id
+        <if test="userId != null and userId != '' and userId != 0 ">
+            AND pr.submitter_id = #{userId}
+        </if>
+        AND pr.report_date BETWEEN #{startTime} AND #{endTime}
+        AND pc.tenant_id = #{tenantId}
+        GROUP BY u.nick_name, pc.project_name
+    </select>
+
 </mapper>
 </mapper>

+ 31 - 0
service-iot/service-iot-biz/src/main/resources/mapper/iot/SysUserMapper.xml

@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.usky.iot.mapper.SysUserMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.usky.system.domain.SysUser">
+        <id column="user_id" property="userId" />
+        <result column="dept_id" property="deptId" />
+        <result column="user_name" property="userName" />
+        <result column="nick_name" property="nickName" />
+        <result column="user_type" property="userType" />
+        <result column="email" property="email" />
+        <result column="phonenumber" property="phonenumber" />
+        <result column="sex" property="sex" />
+        <result column="full_name" property="fullName" />
+        <result column="avatar" property="avatar" />
+        <result column="password" property="password" />
+        <result column="status" property="status" />
+        <result column="del_flag" property="delFlag" />
+        <result column="login_ip" property="loginIp" />
+        <result column="login_date" property="loginDate" />
+        <result column="create_by" property="createBy" />
+        <result column="create_time" property="createTime" />
+        <result column="update_by" property="updateBy" />
+        <result column="update_time" property="updateTime" />
+        <result column="remark" property="remark" />
+        <result column="tenant_id" property="tenantId" />
+        <result column="address" property="address" />
+    </resultMap>
+
+</mapper>