更新学生状态

256 阅读2分钟

StStateJiluForAdmin

package org.jeecg.modules.demo.st.vo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;

/**
 * @Description: 学生状态记录
 * @Author: jeecg-boot
 * @Date:   2019-10-27
 * @Version: V1.0
 */
@Data
public class StStateJiluForAdmin implements Serializable {
    private static final long serialVersionUID = 1L;
    
	@ApiModelProperty(value = "学生姓名")
	@Excel(name = "学生姓名", width = 15)
    private String stuIds;
	/**原因*/
	@ApiModelProperty(value = "原因")
	@Excel(name = "原因", width = 15)
    private String theReason;
	/**离校时间*/
	@ApiModelProperty(value = "离校时间")
	@Excel(name = "离校时间", width = 20, format = "yyyy-MM-dd")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    private Date departureTime;
	/**审批人*/
	@ApiModelProperty(value = "审批人")
	@Excel(name = "审批人", width = 15)
    private String approver;
	/**归校时间*/
	@ApiModelProperty(value = "归校时间")
	@Excel(name = "归校时间", width = 20, format = "yyyy-MM-dd")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    private Date backTime;
	/**确认人*/
	@ApiModelProperty(value = "确认人")
	@Excel(name = "确认人", width = 15)
    private String confirmor;
	/**确认时间*/
	@ApiModelProperty(value = "确认时间")
	@Excel(name = "确认时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date confirmTime;
	@Excel(name = "额外字段1", width = 15)
    private String fieldOne;
}

 /**
     * 更新学生状态
     * 更新学生状态
     * @TODO 权限
     *updateStatus
     */
    @AutoLog(value = "更新学生状态")
    @ApiOperation(value="更新学生状态", notes="更新学生状态")
    @PostMapping(value = "/updateStatus")
//    @RequiresPermissions("stStudent:getStStudent")
    public Result<?> updateStatus(@RequestBody StStateJiluForAdmin stStateJiluForAdmin) {

        //如果在过
        //拿到所有学生的id
        String ids=stStateJiluForAdmin.getStuIds();
        //拿到不在校的人
        List<StStateJiluForAdmin> getStStateIf = stStudentService.getStatus(ids);
        boolean ok=false;
        //判断  下面拿到的学生id是否在不在校里面
        if(getStStateIf.size()>0){
            System.out.println("你选择的里面有离校状态,请注意筛选");
        }else {
            //全都在校
            //更新状态
            QueryWrapper<StStudent> stStudentWrapper = new QueryWrapper<>();
            StStudent stStudent = new StStudent();
            stStudentWrapper.in("id", ids.split(","));
            String[] split = ids.split(",");
            //拿到当前人
            LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
            //保持多个学生状态
            for (int i = 0; i < split.length; i++) {
                StStateJilu stStateJilu1 = new StStateJilu();
                stStudent.setStatus(stStateJiluForAdmin.getTheReason());
                stStateJilu1.setTheReason(stStateJiluForAdmin.getTheReason());
                stStateJilu1.setStName(split[i]);
                stStateJilu1.setCollege(iSysBaseAPI.getDepartIdsByOrgCode(sysUser.getOrgCode()));
                stStateJilu1.setDepartureTime(stStateJiluForAdmin.getDepartureTime());
                stStateJilu1.setApprover(stStateJiluForAdmin.getApprover());
                stStateJilu1.setBackTime(stStateJiluForAdmin.getBackTime());
                stStateJilu1.setConfirmor(stStateJiluForAdmin.getConfirmor());
                stStateJilu1.setConfirmTime(stStateJiluForAdmin.getConfirmTime());
                stStateJilu1.setFieldOne(stStateJiluForAdmin.getFieldOne());
                stStateJiluService.save(stStateJilu1);
            }
            ok = stStudentService.update(stStudent, stStudentWrapper);
        }
            Result result = new Result();
            result.setResult(ok);
            result.setSuccess(ok);
            result.setMessage(ok ? "操作成功" : "操作失败!请检查您的参数!");
            return result;
        }

拿到不在校的人

 List<StStateJiluForAdmin> getStatus(String ids);
    @Override
    public List<StStateJiluForAdmin> getStatus(String ids) {
        List<StStateJiluForAdmin> getStatuss= stStudentMapper.getStatus(ids.split(","));
        return getStatuss;
    }
List<StStateJiluForAdmin> getStatus(@Param("ids") String[] ids);
 <select id="getStatus" parameterType="String" resultType="org.jeecg.modules.demo.st.vo.StStateJiluForAdmin">
        SELECT
        id
        FROM
        st_student
        WHERE
        `status` > '1'
        AND
        id in
        <foreach item="key" collection="ids" open="(" separator="," close=")">
            #{key}
        </foreach>
    </select>