dzx 1 год назад
Родитель
Сommit
735f65dca1
21 измененных файлов с 195 добавлено и 20 удалено
  1. 1 1
      src/main/java/com/xjrsoft/module/base/controller/WhitelistManagementController.java
  2. 21 10
      src/main/java/com/xjrsoft/module/base/service/impl/WhitelistManagementServiceImpl.java
  3. 11 0
      src/main/java/com/xjrsoft/module/organization/controller/UserController.java
  4. 3 0
      src/main/java/com/xjrsoft/module/organization/dto/AddDepartmentDto.java
  5. 4 0
      src/main/java/com/xjrsoft/module/organization/dto/DepartmentPageDto.java
  6. 4 0
      src/main/java/com/xjrsoft/module/organization/dto/DepartmentTreeDto.java
  7. 40 0
      src/main/java/com/xjrsoft/module/organization/dto/PersonPageDto.java
  8. 3 0
      src/main/java/com/xjrsoft/module/organization/entity/Department.java
  9. 4 0
      src/main/java/com/xjrsoft/module/organization/mapper/UserMapper.java
  10. 6 0
      src/main/java/com/xjrsoft/module/organization/service/IUserService.java
  11. 9 0
      src/main/java/com/xjrsoft/module/organization/service/impl/UserServiceImpl.java
  12. 46 0
      src/main/java/com/xjrsoft/module/organization/vo/PersonPageVo.java
  13. 1 1
      src/main/java/com/xjrsoft/module/student/controller/BaseStudentScholarshipReleaseController.java
  14. 2 1
      src/main/java/com/xjrsoft/module/student/dto/AddBaseStudentScholarshipReleaseDto.java
  15. 3 0
      src/main/java/com/xjrsoft/module/student/dto/AddStudentScholarshipDto.java
  16. 2 1
      src/main/java/com/xjrsoft/module/student/entity/BaseStudentScholarshipRelease.java
  17. 3 3
      src/main/resources/application-dev.yml
  18. 1 1
      src/main/resources/mapper/base/BaseClass.xml
  19. 1 1
      src/main/resources/mapper/base/BaseClassCourse.xml
  20. 29 0
      src/main/resources/mapper/organization/UserMapper.xml
  21. 1 1
      src/main/resources/mapper/student/PbVXsxxsfytbMapper.xml

+ 1 - 1
src/main/java/com/xjrsoft/module/base/controller/WhitelistManagementController.java

@@ -155,7 +155,7 @@ public class WhitelistManagementController {
     @PostMapping("/activate-import")
     @ApiOperation(value = "新生账号激活导入")
     public RT<List<Map<String, String>>> activateImport(@RequestParam MultipartFile file) throws IOException {
-        List<Map<Integer, Object>> excelDataList = EasyExcel.read(file.getInputStream()).sheet().headRowNumber(2).doReadSync();
+        List<Map<Integer, Object>> excelDataList = EasyExcel.read(file.getInputStream()).sheet().headRowNumber(3).doReadSync();
         List<Map<Integer, Object>> errorList = whitelistManagementService.activateImport(excelDataList);
         List<Map<String, String>> result = new ArrayList<>();
 

+ 21 - 10
src/main/java/com/xjrsoft/module/base/service/impl/WhitelistManagementServiceImpl.java

@@ -41,6 +41,7 @@ import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.HashMap;
+import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -221,14 +222,9 @@ public class WhitelistManagementServiceImpl extends MPJBaseServiceImpl<Whitelist
 
         Set<Long> whitelistUsers = this.baseMapper.selectList(new QueryWrapper<>()).stream().map(WhitelistManagement::getUserId).collect(Collectors.toSet());
 
-        List<User> updateList = new ArrayList<>();
-        List<BaseUserStudent> userStudentList = new ArrayList<>();
-        List<User> parentInsList = new ArrayList<>();
-        List<User> parentUpdList = new ArrayList<>();
-        List<UserRoleRelation> roleRelationList = new ArrayList<>();
-        List<WhitelistManagement> whitelist = new ArrayList();
-        LocalDateTime now = LocalDateTime.now();
-        Date createDate = new Date();
+
+        // 1、先把文件中的所有家长信息去重并提取出来
+        List<Map<Integer, Object>> dataList = new ArrayList<>();
         for (Map<Integer, Object> vo : savedDataList) {
             List<String> errorLogs = new ArrayList<>();
 
@@ -253,8 +249,23 @@ public class WhitelistManagementServiceImpl extends MPJBaseServiceImpl<Whitelist
             }
             if(!errorLogs.isEmpty()){
                 vo.put(5, errorLogs.toString().replace("[", "").replace("]", ""));
+                errorList.add(vo);
                 continue;
             }
+            dataList.add(vo);
+        }
+
+        List<User> updateList = new ArrayList<>();
+        List<BaseUserStudent> userStudentList = new ArrayList<>();
+        List<User> parentInsList = new ArrayList<>();
+        List<User> parentUpdList = new ArrayList<>();
+        List<UserRoleRelation> roleRelationList = new ArrayList<>();
+        List<WhitelistManagement> whitelist = new ArrayList();
+        LocalDateTime now = LocalDateTime.now();
+        Date createDate = new Date();
+
+        for (Map<Integer, Object> vo : dataList) {
+            String studentKey = vo.get(0).toString() + vo.get(1).toString();
             long parentId = IdUtil.getSnowflakeNextId();
             if(parentsMap.get(vo.get(4).toString()) != null){
                 User parent = parentsMap.get(vo.get(4).toString());
@@ -265,7 +276,7 @@ public class WhitelistManagementServiceImpl extends MPJBaseServiceImpl<Whitelist
             }else{
                 User parent = new User();
                 parent.setId(parentId);
-                parent.setPassword(BCrypt.hashpw(propertiesConfig.getDefaultPassword(), BCrypt.gensalt()));
+                parent.setPassword(BCrypt.hashpw(vo.get(4).toString(), BCrypt.gensalt()));
                 parent.setCreateDate(now);
                 parent.setMobile(vo.get(4).toString());
                 parent.setName(vo.get(3).toString());
@@ -314,7 +325,7 @@ public class WhitelistManagementServiceImpl extends MPJBaseServiceImpl<Whitelist
             userService.updateBatchById(updateList);
         }
         if(!userStudentList.isEmpty()){
-            userStudentService.updateBatchById(userStudentList);
+            userStudentService.saveBatch(userStudentList);
         }
         if(!parentInsList.isEmpty()){
             userService.saveBatch(parentInsList);

+ 11 - 0
src/main/java/com/xjrsoft/module/organization/controller/UserController.java

@@ -11,6 +11,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.StringPool;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fasterxml.jackson.core.type.TypeReference;
 import com.github.yulichang.toolkit.MPJWrappers;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
@@ -39,6 +40,7 @@ import com.xjrsoft.module.hikvision.util.DataUtil;
 import com.xjrsoft.module.organization.dto.AddUserDto;
 import com.xjrsoft.module.organization.dto.BindOpenidDto;
 import com.xjrsoft.module.organization.dto.LoginResetPasswordDto;
+import com.xjrsoft.module.organization.dto.PersonPageDto;
 import com.xjrsoft.module.organization.dto.RegisterDto;
 import com.xjrsoft.module.organization.dto.ResetPasswordDto;
 import com.xjrsoft.module.organization.dto.UpdateInfoDto;
@@ -68,6 +70,7 @@ import com.xjrsoft.module.organization.service.IUserService;
 import com.xjrsoft.module.organization.service.IUserStudentService;
 import com.xjrsoft.module.organization.utils.OrganizationUtil;
 import com.xjrsoft.module.organization.vo.PendingCountDto;
+import com.xjrsoft.module.organization.vo.PersonPageVo;
 import com.xjrsoft.module.organization.vo.ResetUserPageVo;
 import com.xjrsoft.module.organization.vo.ResetUserRoleVo;
 import com.xjrsoft.module.organization.vo.UserDeptVo;
@@ -284,6 +287,14 @@ public class UserController {
         }
     }
 
+    @GetMapping(value = "/person-page")
+    @ApiOperation(value = "人员选择组件(分页)")
+    public R personPage(PersonPageDto dto) {
+        Page<PersonPageVo> voPage = userService.personPage(new Page<>(dto.getLimit(), dto.getSize()), dto);
+        PageOutput<PersonPageVo> pageOutput = ConventPage.getPageOutput(voPage, PersonPageVo.class);
+        return R.ok(pageOutput);
+    }
+
     @GetMapping(value = "/info")
     @ApiOperation(value = "根据id查询用户信息")
     public R info(@RequestParam Long id) {

+ 3 - 0
src/main/java/com/xjrsoft/module/organization/dto/AddDepartmentDto.java

@@ -61,4 +61,7 @@ public class AddDepartmentDto  implements Serializable {
 
     @ApiModelProperty("组织类别,1:公司,0:部门")
     private Integer departmentType;
+
+    @ApiModelProperty("是否专业部(1:是 0:否)")
+    private Integer isMajor;
 }

+ 4 - 0
src/main/java/com/xjrsoft/module/organization/dto/DepartmentPageDto.java

@@ -1,6 +1,7 @@
 package com.xjrsoft.module.organization.dto;
 
 import com.xjrsoft.common.page.PageInput;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import org.hibernate.validator.constraints.Length;
@@ -22,4 +23,7 @@ public class DepartmentPageDto extends PageInput {
     private String code;
 
     private Integer enabledMark;
+
+    @ApiModelProperty("是否专业部(1:是 0:否)")
+    private Integer isMajor;
 }

+ 4 - 0
src/main/java/com/xjrsoft/module/organization/dto/DepartmentTreeDto.java

@@ -1,5 +1,6 @@
 package com.xjrsoft.module.organization.dto;
 
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import org.hibernate.validator.constraints.Length;
 
@@ -21,4 +22,7 @@ public class DepartmentTreeDto {
     private Integer enabledMark;
 
     private Integer isOrg;
+
+    @ApiModelProperty("是否专业部(1:是 0:否)")
+    private Integer isMajor;
 }

+ 40 - 0
src/main/java/com/xjrsoft/module/organization/dto/PersonPageDto.java

@@ -0,0 +1,40 @@
+package com.xjrsoft.module.organization.dto;
+
+import com.xjrsoft.common.page.PageInput;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.hibernate.validator.constraints.Length;
+
+/**
+ * @title: PersonPageDto
+ * @Author dzx
+ * @Date: 2024年8月15日
+ * @Version 1.0
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class PersonPageDto extends PageInput {
+
+    @ApiModelProperty("所属部门")
+    private Long departmentId;
+
+    @ApiModelProperty("用户名")
+    @Length(max = 20, message = "用户名长度不能超过20")
+    private String userName;
+
+    @ApiModelProperty("姓名")
+    @Length(max = 20, message = "姓名长度不能超过20")
+    private String name;
+
+    @ApiModelProperty("手机号")
+    @Length(max = 20, message = "手机号长度不能超过20")
+    private String mobile;
+
+    @ApiModelProperty("聘用类型")
+    private String employType;
+
+    @ApiModelProperty("聘用方式")
+    private String employWay;
+
+}

+ 3 - 0
src/main/java/com/xjrsoft/module/organization/entity/Department.java

@@ -59,4 +59,7 @@ public class Department extends AuditEntity implements Serializable {
 
     @ApiModelProperty("组织类别,1:公司,0:部门")
     private Integer departmentType;
+
+    @ApiModelProperty("是否专业部(1:是 0:否)")
+    private Integer isMajor;
 }

+ 4 - 0
src/main/java/com/xjrsoft/module/organization/mapper/UserMapper.java

@@ -2,8 +2,10 @@ package com.xjrsoft.module.organization.mapper;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.yulichang.base.MPJBaseMapper;
+import com.xjrsoft.module.organization.dto.PersonPageDto;
 import com.xjrsoft.module.organization.dto.UserPageDto;
 import com.xjrsoft.module.organization.entity.User;
+import com.xjrsoft.module.organization.vo.PersonPageVo;
 import com.xjrsoft.module.organization.vo.ResetUserPageVo;
 import com.xjrsoft.module.student.dto.BaseStudentSimpleInfoDto;
 import com.xjrsoft.module.student.vo.BaseStudentSompleInfoVo;
@@ -25,4 +27,6 @@ public interface UserMapper extends MPJBaseMapper<User> {
     Page<ResetUserPageVo> getResetUserPage(Page<ResetUserPageVo> page, UserPageDto dto);
 
     List<BaseStudentSompleInfoVo> getInfosByParam(@Param("dto") BaseStudentSimpleInfoDto dto);
+
+    Page<PersonPageVo> personPage(Page<PersonPageVo> page, @Param("dto") PersonPageDto dto);
 }

+ 6 - 0
src/main/java/com/xjrsoft/module/organization/service/IUserService.java

@@ -1,15 +1,18 @@
 package com.xjrsoft.module.organization.service;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.yulichang.base.MPJBaseService;
 import com.xjrsoft.common.page.PageOutput;
 import com.xjrsoft.module.organization.dto.AddUserDto;
 import com.xjrsoft.module.organization.dto.BindOpenidDto;
+import com.xjrsoft.module.organization.dto.PersonPageDto;
 import com.xjrsoft.module.organization.dto.ResetPasswordDto;
 import com.xjrsoft.module.organization.dto.UpdatePasswordDto;
 import com.xjrsoft.module.organization.dto.UpdateUserDto;
 import com.xjrsoft.module.organization.dto.UserPageDto;
 import com.xjrsoft.module.organization.dto.WeChatPageDto;
 import com.xjrsoft.module.organization.entity.User;
+import com.xjrsoft.module.organization.vo.PersonPageVo;
 import com.xjrsoft.module.organization.vo.ResetUserPageVo;
 import com.xjrsoft.module.organization.vo.UserInfoVo;
 import com.xjrsoft.module.organization.vo.WeChatPageVO;
@@ -77,4 +80,7 @@ public interface IUserService extends MPJBaseService<User> {
     PageOutput<WeChatPageVO> getPage(WeChatPageDto dto);
 
     PageOutput<ResetUserPageVo> getResetUserPage(UserPageDto dto);
+
+    Page<PersonPageVo> personPage(Page<PersonPageVo> page, PersonPageDto dto);
+
 }

+ 9 - 0
src/main/java/com/xjrsoft/module/organization/service/impl/UserServiceImpl.java

@@ -23,6 +23,7 @@ import com.xjrsoft.common.utils.VoToColumnUtil;
 import com.xjrsoft.config.CommonPropertiesConfig;
 import com.xjrsoft.module.organization.dto.AddUserDto;
 import com.xjrsoft.module.organization.dto.BindOpenidDto;
+import com.xjrsoft.module.organization.dto.PersonPageDto;
 import com.xjrsoft.module.organization.dto.ResetPasswordDto;
 import com.xjrsoft.module.organization.dto.UpdatePasswordDto;
 import com.xjrsoft.module.organization.dto.UpdateUserDto;
@@ -38,6 +39,7 @@ import com.xjrsoft.module.organization.mapper.UserPostRelationMapper;
 import com.xjrsoft.module.organization.mapper.UserRoleRelationMapper;
 import com.xjrsoft.module.organization.service.IUserDeptRelationService;
 import com.xjrsoft.module.organization.service.IUserService;
+import com.xjrsoft.module.organization.vo.PersonPageVo;
 import com.xjrsoft.module.organization.vo.ResetUserPageVo;
 import com.xjrsoft.module.organization.vo.UserInfoVo;
 import com.xjrsoft.module.organization.vo.WeChatPageVO;
@@ -362,4 +364,11 @@ public class UserServiceImpl extends MPJBaseServiceImpl<UserMapper, User> implem
         PageOutput<ResetUserPageVo> pageOutput = ConventPage.getPageOutput(resetUserPage, ResetUserPageVo.class);
         return pageOutput;
     }
+
+    @Override
+    public Page<PersonPageVo> personPage(Page<PersonPageVo> page, PersonPageDto dto) {
+        Page<PersonPageVo> result = userMapper.personPage(page, dto);
+        return result;
+    }
+
 }

+ 46 - 0
src/main/java/com/xjrsoft/module/organization/vo/PersonPageVo.java

@@ -0,0 +1,46 @@
+package com.xjrsoft.module.organization.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @title: PersonPageVo
+ * @Author dzx
+ * @Date: 2024年8月15日
+ * @Version 1.0
+ */
+@Data
+public class PersonPageVo implements Serializable {
+
+    /**
+     * 主键
+     */
+    @ApiModelProperty("主键")
+    private Long id;
+    /**
+     * 账户
+     */
+    @ApiModelProperty("工号/学号")
+    private String userName;
+
+    /**
+     * 姓名
+     */
+    @ApiModelProperty("姓名")
+    private String name;
+
+    @ApiModelProperty("性别-中文")
+    private String genderCn;
+
+    @ApiModelProperty("手机号")
+    private String mobile;
+
+    @ApiModelProperty("聘用类型")
+    private String employType;
+
+    @ApiModelProperty("聘用方式")
+    private String employWay;
+
+}

+ 1 - 1
src/main/java/com/xjrsoft/module/student/controller/BaseStudentScholarshipReleaseController.java

@@ -56,7 +56,6 @@ public class BaseStudentScholarshipReleaseController {
 
     private final IBaseStudentScholarshipApplicantService applicantService;
     private final IBaseStudentScholarshipReleaseService releaseService;
-    private final IUserService userService;
 
     @GetMapping(value = "/page")
     @ApiOperation(value = "奖学金发放记录表列表(分页)")
@@ -145,6 +144,7 @@ public class BaseStudentScholarshipReleaseController {
                 applicantVo.setScholarshipLevel(dto.getScholarshipLevel());
                 applicantVo.setBaseStudentScholarshipCategoryId(dto.getBaseStudentScholarshipCategoryId());
                 applicantVo.setReviewStatus(1);
+                applicantVo.setAmount(dto.getTotalAmount().doubleValue());
                 dataList.add(applicantVo);
 
                 insertList.add(

+ 2 - 1
src/main/java/com/xjrsoft/module/student/dto/AddBaseStudentScholarshipReleaseDto.java

@@ -4,6 +4,7 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.io.Serializable;
+import java.time.LocalDate;
 import java.util.Date;
 
 
@@ -33,6 +34,6 @@ public class AddBaseStudentScholarshipReleaseDto implements Serializable {
     * 发放日期
     */
     @ApiModelProperty("发放日期")
-    private Date releaseDate;
+    private LocalDate releaseDate;
 
 }

+ 3 - 0
src/main/java/com/xjrsoft/module/student/dto/AddStudentScholarshipDto.java

@@ -38,4 +38,7 @@ public class AddStudentScholarshipDto implements Serializable {
     */
     @ApiModelProperty("等级")
     private Integer scholarshipLevel;
+
+    @ApiModelProperty("金额")
+    private Integer totalAmount;
 }

+ 2 - 1
src/main/java/com/xjrsoft/module/student/entity/BaseStudentScholarshipRelease.java

@@ -10,6 +10,7 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.io.Serializable;
+import java.time.LocalDate;
 import java.util.Date;
 
 
@@ -83,7 +84,7 @@ public class BaseStudentScholarshipRelease implements Serializable {
     * 发放日期
     */
     @ApiModelProperty("发放日期")
-    private Date releaseDate;
+    private LocalDate releaseDate;
 
 
 }

+ 3 - 3
src/main/resources/application-dev.yml

@@ -52,9 +52,9 @@ timetable:
   winter-end: 04-30
 
 mqtt:
-  username: root
-  password: qwe123QWE
-  server: tcp://8.142.26.206:1883
+  username:
+  password:
+  server:
   qos: 1
 
 xjrsoft:

+ 1 - 1
src/main/resources/mapper/base/BaseClass.xml

@@ -69,7 +69,7 @@
             and t1.code like concat('%', #{dto.code}, '%')
         </if>
         <if test="dto.enrollType != null and dto.enrollType != ''">
-            and t1.enroll_type = #{dto.enroll_type}
+            and t1.enroll_type = #{dto.enrollType}
         </if>
     </select>
 

+ 1 - 1
src/main/resources/mapper/base/BaseClassCourse.xml

@@ -35,7 +35,7 @@
         LEFT JOIN xjr_department t4 ON t4.id = t.org_id
         WHERE t.delete_mark = 0
         <if test="dto.className != null and dto.className != ''">
-            and t.name = like concat('%', #{dto.className}, '%')
+            and t.name like concat('%', #{dto.className}, '%')
         </if>
         <if test="dto.deptId != null">
             and t4.id = #{dto.deptId}

+ 29 - 0
src/main/resources/mapper/organization/UserMapper.xml

@@ -37,4 +37,33 @@
             AND t1.id = #{dto.userId}
         </if>
     </select>
+    <select id="personPage" parameterType="com.xjrsoft.module.organization.dto.PersonPageDto" resultType="com.xjrsoft.module.organization.vo.PersonPageVo">
+        SELECT t1.id,t1.name,t1.user_name,t1.mobile,t3.name AS gender_cn,t2.employ_type,t2.employ_way FROM xjr_user t1
+        LEFT JOIN base_teacher t2 ON t1.id = t2.user_id
+        LEFT JOIN xjr_dictionary_detail t3 ON t1.gender = t3.code
+        LEFT JOIN xjr_user_dept_relation t4 ON t1.id = t4.user_id
+        WHERE t1.delete_mark = 0
+        AND (
+            t1.id IN (SELECT user_id FROM base_student WHERE delete_mark = 0)
+            OR t1.id IN (SELECT user_id FROM base_teacher WHERE delete_mark = 0)
+        )
+        <if test="dto.employType != null and dto.employType != ''">
+            AND t2.employ_type = #{dto.employType}
+        </if>
+        <if test="dto.employWay != null and dto.employWay != ''">
+            AND t2.employ_way = #{dto.employWay}
+        </if>
+        <if test="dto.mobile != null and dto.mobile != ''">
+            AND t1.mobile like concat('%', #{dto.mobile}, '%')
+        </if>
+        <if test="dto.userName != null and dto.userName != ''">
+            AND t1.user_name like concat('%', #{dto.userName}, '%')
+        </if>
+        <if test="dto.name != null and dto.name != ''">
+            AND t1.name like concat('%', #{dto.name}, '%')
+        </if>
+        <if test="dto.departmentId != null">
+            AND t4.dept_id = #{dto.departmentId}
+        </if>
+    </select>
 </mapper>

+ 1 - 1
src/main/resources/mapper/student/PbVXsxxsfytbMapper.xml

@@ -55,7 +55,7 @@
         GROUP BY t2.name
     </select>
     <select id="stduyStatusStat" parameterType="com.xjrsoft.module.student.dto.PbVXsxxsfytbStatDto" resultType="com.xjrsoft.module.student.vo.StringCountVo">
-        SELECT t2.name,COUNT(t1.credential_number) as count FROM xjr_user t1
+        SELECT replace(t2.name,'住校','住读'),COUNT(t1.credential_number) as count FROM xjr_user t1
         INNER JOIN base_student_school_roll t3 ON t1.id = t3.user_id
         left JOIN xjr_dictionary_detail t2 ON t3.stduy_status = t2.code and t2.item_id = 2023000000000000030
         WHERE t3.delete_mark = 0