java 一键升班 (表结构是组织树)

1.能用到的表结构

 2.能用到的表结构

 3.处理逻辑

计算当前年级、班级的下一级年级、班级,并进行更换

3.1 储存对象

public class StudentClassEnity {

    //学校标识
    private String schoolUUid;
    //原来年级标识
    private String gradeUuid;
    //原来班级标识
    private String classUUid;
    //现在年级标识
    private String xgradeUuid;
    //现在班级标识
    private String xclassUUid;

    public String getSchoolUUid() {
        return schoolUUid;
    }

    public void setSchoolUUid(String schoolUUid) {
        this.schoolUUid = schoolUUid;
    }


    public String getGradeUuid() {
        return gradeUuid;
    }

    public void setGradeUuid(String gradeUuid) {
        this.gradeUuid = gradeUuid;
    }

    public String getClassUUid() {
        return classUUid;
    }

    public void setClassUUid(String classUUid) {
        this.classUUid = classUUid;
    }

    public String getXgradeUuid() {
        return xgradeUuid;
    }

    public void setXgradeUuid(String xgradeUuid) {
        this.xgradeUuid = xgradeUuid;
    }

    public String getXclassUUid() {
        return xclassUUid;
    }

    public void setXclassUUid(String xclassUUid) {
        this.xclassUUid = xclassUUid;
    }
}

3.2 处理逻辑

 public String updateOneClickClass(StudentClassEnity studentClassEnity) {

        List<StudentClassEnity> updateClassList = new ArrayList<>();
        //1. 查询当前有效的班级列表(含当前年级排序)
        List<StudentEnity> upClassList  = humanMapper.selectClassList(studentClassEnity.getSchoolUUid());
        //得到最大的年级排序
        int maxGradeNum =humanMapper.selectGradeNum(studentClassEnity.getSchoolUUid());

        if(upClassList != null && upClassList.size() >0){



            for (StudentEnity upClass : upClassList) {
                Integer nextGradeNumber = upClass.getGradeNumber();
                if (upClass.getGradeNumber() + 1 > maxGradeNum) {
                    // 如果班级当前的年级排序已超过学段年级数范围,则判断为毕业(排序为-1)
                    nextGradeNumber = -1;
                    //删除该班级学生信息
                    this.deleteStudentByClassUUid(upClass.getClassUUid());

                } else {
                    // 否则正常取下一级年级
                    nextGradeNumber = nextGradeNumber + 1;
                    //根据排序取下一级年级标识和年级Id
                    StudentEnity gradeEnty = humanMapper.selectNextGradeUUidBy(studentClassEnity.getSchoolUUid(),nextGradeNumber,"5");
                    if(gradeEnty != null){
                        StudentClassEnity studentClassEnity1 = new StudentClassEnity();
                        //原来班级标识
                        studentClassEnity1.setClassUUid(upClass.getClassUUid());
                        //原来年级标识
                        studentClassEnity1.setGradeUuid(upClass.getGradeUuid());
                        //现在年级标识
                        studentClassEnity1.setXgradeUuid(gradeEnty.getGradeUuid());
                        //根据年级Id和班级名称得到现班级
                        String nextClassUUid =humanMapper.selectNextClassUUidBy(gradeEnty.getRelationId(),upClass.getClassName());
                        if(StringUtil.isEmpty(nextClassUUid)){ //不存在该班级 ,则新增该班级
                            TreeEnity treeEnity =new TreeEnity();
                            treeEnity.setBusinessType(gradeEnty.getBusinessType());
                            treeEnity.setParentId(gradeEnty.getRelationId());
                            treeEnity.setDeptName(upClass.getClassName());
                            treeEnity.setOrderNum(upClass.getClassNumber());
                            treeEnity.setOneTypes("1");
                            treeEnity.setTwoTypes("6");
                            String json =treeService.insertTree(treeEnity);
                            if(StringUtil.isNotBlank(json)){
                                JSONObject jsonObject=JSONObject.parseObject(json,JSONObject.class);
                                String IsPass = String.valueOf(jsonObject.get("IsPass"));
                                if(IsPass.equals("true")){ //请求成功
                                    //得到现在的班级标识
                                    nextClassUUid = jsonObject.getString("Obj");


                                }else {
                                    return JsonResultUtils.error("同步失败",0);
                                }

                            }
                        }

                        studentClassEnity1.setXclassUUid(nextClassUUid);
                        updateClassList.add(studentClassEnity1);

                    }else {
                        
                        return JsonResultUtils.error("组织结构不支持一键升班",0);
                    }
                }
            }

            for (StudentClassEnity studentClassEnity1:updateClassList ) {

                /*-----------------已经得到想要的参数啦——根据需求进行业务逻辑处理开始----------------------------*/
                /*这里我写的了另外一个方法做了异步处理*/
                this.updateClass(studentClassEnity1);
                /*-----------------根据需求进行业务逻辑处理结束----------------------------*/
            }



        }
        return JsonResultUtils.success("操作成功",1);
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值