yangdamao 2 年之前
父節點
當前提交
8a6006e377

+ 23 - 8
zhongzheng-admin/src/main/java/com/zhongzheng/controller/user/DangAnController.java

@@ -3,6 +3,7 @@ package com.zhongzheng.controller.user;
 import com.zhongzheng.common.core.controller.BaseController;
 import com.zhongzheng.common.core.domain.AjaxResult;
 import com.zhongzheng.common.core.page.TableDataInfo;
+import com.zhongzheng.common.utils.poi.EasyPoiUtil;
 import com.zhongzheng.modules.grade.bo.ClassGradeUserQueryBo;
 import com.zhongzheng.modules.grade.service.IClassGradeUserService;
 import com.zhongzheng.modules.grade.vo.ClassPeriodStudentVo;
@@ -10,21 +11,17 @@ import com.zhongzheng.modules.grade.vo.UserPeriodExportV2Vo;
 import com.zhongzheng.modules.order.bo.OrderQueryBo;
 import com.zhongzheng.modules.order.service.IOrderService;
 import com.zhongzheng.modules.order.vo.OrderListVo;
+import com.zhongzheng.modules.top.order.bo.TopOldOrderCustomerBo;
 import com.zhongzheng.modules.user.bo.*;
-import com.zhongzheng.modules.user.service.IUserCertificateService;
-import com.zhongzheng.modules.user.service.IUserStudyRecordService;
-import com.zhongzheng.modules.user.service.IUserSubscribeService;
-import com.zhongzheng.modules.user.service.IUserVisitLogService;
+import com.zhongzheng.modules.user.service.*;
 import com.zhongzheng.modules.user.vo.*;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.RequiredArgsConstructor;
 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;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 
 import java.util.List;
 
@@ -50,6 +47,8 @@ public class DangAnController extends BaseController {
 
     private final IUserSubscribeService iUserSubscribeService;
 
+    private final IUserService iUserService;
+
     @ApiOperation("查询档案网课列表")
     @PreAuthorize("@ss.hasPermi('grade:user:list')")
     @GetMapping("/listVideoUserPeriod")
@@ -163,4 +162,20 @@ public class DangAnController extends BaseController {
         List<UserPeriodExportV2Vo> list = iClassGradeUserService.listUserStudyQuestionRecordV2Week(bo);
         return getDataTable(list);
     }
+
+    @ApiOperation("学员资料导入更新")
+    @PostMapping("/userDataImportUp")
+    public AjaxResult userDataImportUp(MultipartFile file) {
+        List<UserDataImportBo> customerBos = EasyPoiUtil.importExcel(file,0,1,UserDataImportBo.class);
+        iUserService.userDataImportUp(customerBos);
+        return AjaxResult.success();
+    }
+
+    @ApiOperation("学员资料照片导入")
+    @PostMapping("/userDataImgImport")
+    public AjaxResult userDataImgImport(MultipartFile file) {
+        List<UserDataImportBo> customerBos = EasyPoiUtil.importExcel(file,0,1,UserDataImportBo.class);
+        iUserService.userDataImportUp(customerBos);
+        return AjaxResult.success();
+    }
 }

+ 33 - 0
zhongzheng-framework/src/main/java/com/zhongzheng/framework/web/service/UserServiceImpl.java

@@ -1723,6 +1723,39 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
         return null;
     }
 
+    @Override
+    public void userDataImportUp(List<UserDataImportBo> customerBos) {
+        if (CollectionUtils.isEmpty(customerBos)){
+            return;
+        }
+        customerBos.forEach(item -> {
+            if (StringUtils.isBlank(item.getUserCard())){
+                return;
+            }
+            User user = getOne(new LambdaQueryWrapper<User>()
+                    .eq(User::getIdCard, EncryptHandler.encrypt(item.getUserCard()))
+                    .eq(User::getStatus, 1));
+            if (Objects.isNull(user)){
+                return;
+            }
+
+            //跟新用户资料
+            user.setRealname(item.getUserName());
+            user.setTelphone(EncryptHandler.encrypt(item.getUserPhone()));
+            user.setSex(StringUtils.isNotBlank(item.getSex()) && item.getSex().equals("男") ? 1:2);
+            user.setEduLevel(item.getEducation());
+            user.setSchool(item.getSchool());
+            user.setGraduationTime(item.getGraduationTime());
+            user.setMajor(item.getMajor());
+            user.setWorkYear(item.getWorkYear());
+            user.setCompanyName(item.getCompany());
+            user.setUnitContact(item.getCompanyContact());
+            user.setUnitTel(item.getCompanyPhone());
+            updateById(user);
+
+        });
+    }
+
     @Override
     public Map<String, Object> accountLogin(UserAppAccountLoginBo bo) {
         if(Validator.isEmpty(bo.getAccount())){

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/mapper/ClassGradeMapper.java

@@ -108,4 +108,7 @@ public interface ClassGradeMapper extends BaseMapper<ClassGrade> {
 
     @InterceptorIgnore(tenantLine = "true")
     ClassGrade getCodeNoTenant(@Param("officialName") String officialName,@Param("tenantId") Long tenantId);
+
+    @InterceptorIgnore(tenantLine = "true")
+    Long getGradeCount(String sevenCode);
 }

+ 20 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/service/impl/ClassGradeServiceImpl.java

@@ -229,7 +229,26 @@ public class ClassGradeServiceImpl extends ServiceImpl<ClassGradeMapper, ClassGr
 
     @Override
     public List<ClassGradeGoodsVo> listGoodsBatch(ClassGradeQueryBo bo) {
-        return baseMapper.listGoodsBatch(bo);
+        List<ClassGradeGoodsVo> classGradeGoodsVos = baseMapper.listGoodsBatch(bo);
+        if (CollectionUtils.isEmpty(classGradeGoodsVos)){
+            return new ArrayList<>();
+        }
+        classGradeGoodsVos.forEach(item -> {
+            if (CollectionUtils.isNotEmpty(item.getGradeList())){
+                List<ClassGradeVo> collect = item.getGradeList().stream().filter(gradeVo -> {
+                    //班级人数是否满人
+                    if (ObjectUtil.isNotNull(gradeVo.getSevenCode())) {
+                        Long count = baseMapper.getGradeCount(gradeVo.getSevenCode());
+                        if (gradeVo.getStudentUpper() <= count) {
+                            return false;
+                        }
+                    }
+                    return true;
+                }).collect(Collectors.toList());
+                item.setGradeList(collect);
+            }
+        });
+        return classGradeGoodsVos;
     }
 
     /**

+ 55 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/bo/UserDataImportBo.java

@@ -0,0 +1,55 @@
+package com.zhongzheng.modules.user.bo;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * @author yangdamao
+ * @date 2023年12月22日 10:37
+ */
+@Data
+@NoArgsConstructor
+@Accessors(chain = true)
+public class UserDataImportBo implements Serializable {
+
+    @Excel(name = "姓名")
+    private String userName;
+
+    @Excel(name = "身份证号")
+    private String userCard;
+
+    @Excel(name = "性别")
+    private String sex;
+
+    @Excel(name = "手机号码")
+    private String userPhone;
+
+    @Excel(name = "学历")
+    private String education;
+
+    @Excel(name = "毕业院校")
+    private String school;
+
+    @Excel(name = "毕业时间")
+    private String graduationTime;
+
+    @Excel(name = "所学专业")
+    private String major;
+
+    @Excel(name = "工作年限")
+    private String workYear;
+
+    @Excel(name = "工作单位")
+    private String company;
+
+    @Excel(name = "单位联系人")
+    private String companyContact;
+
+    @Excel(name = "单位联系电话")
+    private String companyPhone;
+
+}

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/IUserService.java

@@ -147,4 +147,7 @@ public interface IUserService extends IService<User> {
     User getByCardNoTenant(String idCard);
 
 	Map<String, Object> importSevenUser(List<UserPeriodImportBo> userList);
+
+    void userDataImportUp(List<UserDataImportBo> customerBos);
+
 }

+ 10 - 0
zhongzheng-system/src/main/resources/mapper/modules/grade/ClassGradeMapper.xml

@@ -1347,4 +1347,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             LIMIT 1
     </select>
 
+    <select id="getGradeCount" resultType="java.lang.Long" parameterType="java.lang.String">
+        SELECT
+            COUNT( DISTINCT cgu.user_id )
+        FROM
+            class_grade_user cgu
+        WHERE
+            cgu.`status` = 1
+          AND cgu.grade_id IN ( SELECT grade_id FROM class_grade WHERE seven_code = #{sevenCode} )
+    </select>
+
 </mapper>