Merge remote-tracking branch 'origin/main'
This commit is contained in:
@@ -215,7 +215,7 @@
|
||||
<failOnMissingWebXml>false</failOnMissingWebXml>
|
||||
<warName>${project.artifactId}</warName>
|
||||
</configuration>
|
||||
</plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><source>8</source><target>8</target></configuration></plugin>
|
||||
</plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><source>14</source><target>14</target></configuration></plugin>
|
||||
</plugins>
|
||||
<finalName>${project.artifactId}</finalName>
|
||||
</build>
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
package com.srs.web.controller.routine;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import com.srs.dormitory.domain.DmsOutsideAccommodationApply;
|
||||
import com.srs.routine.domain.dto.RtEnlistmentReserveExportDto;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
@@ -56,10 +58,72 @@ public class RtEnlistmentReserveController extends BaseController {
|
||||
@PostMapping("/export")
|
||||
@ApiOperation("导出应征入伍保留学籍申请列表")
|
||||
public void export(HttpServletResponse response, RtEnlistmentReserve rtEnlistmentReserve) {
|
||||
List<RtEnlistmentReserve> list = rtEnlistmentReserveService.selectRtEnlistmentReserveList(rtEnlistmentReserve);
|
||||
ExcelUtil<RtEnlistmentReserve> util = new ExcelUtil<RtEnlistmentReserve>(RtEnlistmentReserve.class);
|
||||
util.exportExcel(response, list, "应征入伍保留学籍申请数据");
|
||||
// 1. 查询原始数据列表
|
||||
List<RtEnlistmentReserve> originalList = rtEnlistmentReserveService.selectRtEnlistmentReserveList(rtEnlistmentReserve);
|
||||
|
||||
// 2. 转换为导出DTO + 中文值转换
|
||||
List<RtEnlistmentReserveExportDto> exportList = originalList.stream()
|
||||
.map(this::convertToExportDto)
|
||||
.collect(Collectors.toList());
|
||||
|
||||
// 3. 导出Excel(使用DTO的@Excel注解配置中文表头)
|
||||
ExcelUtil<RtEnlistmentReserveExportDto> util = new ExcelUtil<>(RtEnlistmentReserveExportDto.class);
|
||||
util.exportExcel(response, exportList, "应征入伍保留学籍申请数据");
|
||||
}
|
||||
/**
|
||||
* 原始实体转换为导出DTO,并处理值的中文转换
|
||||
*/
|
||||
private RtEnlistmentReserveExportDto convertToExportDto(RtEnlistmentReserve source) {
|
||||
RtEnlistmentReserveExportDto dto = new RtEnlistmentReserveExportDto();
|
||||
|
||||
// 1. 基础字段赋值(一一映射)
|
||||
dto.setApplyNo(source.getApplyNo());
|
||||
dto.setTeacherName(source.getTeacherName());
|
||||
dto.setStudentName(source.getStudentName());
|
||||
dto.setNation(source.getNation());
|
||||
dto.setGrade(source.getGrade());
|
||||
dto.setStudentNo(source.getStudentNo());
|
||||
dto.setClassName(source.getClassName());
|
||||
dto.setMajor(source.getMajor());
|
||||
dto.setFamilyAddress(source.getFamilyAddress());
|
||||
dto.setParentPhone(source.getParentPhone());
|
||||
dto.setApplyReason(source.getApplyReason());
|
||||
dto.setReserveNo(source.getReserveNo());
|
||||
dto.setReserveStartDate(source.getReserveStartDate());
|
||||
dto.setReserveEndDate(source.getReserveEndDate());
|
||||
// dto.setApprovalNo(source.getApprovalNo());
|
||||
|
||||
// 2. 核心:0/1等值转换为中文
|
||||
// 性别转换(1-男 0-女)
|
||||
if (source.getGender() != null) {
|
||||
dto.setGender("1".equals(source.getGender()) ? "男" : "0".equals(source.getGender()) ? "女" : source.getGender());
|
||||
}
|
||||
|
||||
// 申请状态转换(0-草稿,1=待辅导员审批...7=驳回)
|
||||
if (source.getApplyStatus() != null) {
|
||||
dto.setApplyStatus(convertApplyStatus(source.getApplyStatus()));
|
||||
}
|
||||
|
||||
return dto;
|
||||
}
|
||||
|
||||
/**
|
||||
* 申请状态值转换为中文描述(适配String类型)
|
||||
*/
|
||||
private String convertApplyStatus(Long status) {
|
||||
return switch (status.intValue()) {
|
||||
case 0 -> "草稿";
|
||||
case 1 -> "待辅导员审批";
|
||||
case 2 -> "待学务审批";
|
||||
case 3 -> "待二级学院审批";
|
||||
case 4 -> "待学籍管理科审批";
|
||||
case 5 -> "待教务处主管领导审批";
|
||||
case 6 -> "审批通过";
|
||||
case 7 -> "驳回";
|
||||
default -> status.toString();
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取应征入伍保留学籍申请详细信息
|
||||
|
||||
@@ -151,6 +151,25 @@ public class RtStuDisciplinaryApplicationController extends BaseController {
|
||||
util.exportExcel(response, list, "学生处分申请数据");
|
||||
}
|
||||
|
||||
@PostMapping("/importTemplate")
|
||||
@ApiOperation("下载学生处分导入模板")
|
||||
public void importTemplate(HttpServletResponse response) {
|
||||
ExcelUtil<RtStuDisciplinaryApplication> util = new ExcelUtil<RtStuDisciplinaryApplication>(RtStuDisciplinaryApplication.class);
|
||||
util.importTemplateExcel(response, "学生处分申请数据导入");
|
||||
}
|
||||
|
||||
@Log(title = "学生处分申请", businessType = BusinessType.IMPORT)
|
||||
@PreAuthorize("@ss.hasPermi('routine:disciplinaryApplication:import')")
|
||||
@PostMapping("/importData")
|
||||
@ApiOperation("导入学生处分申请")
|
||||
public AjaxResult importData(org.springframework.web.multipart.MultipartFile file, boolean updateSupport) throws Exception {
|
||||
ExcelUtil<RtStuDisciplinaryApplication> util = new ExcelUtil<RtStuDisciplinaryApplication>(RtStuDisciplinaryApplication.class);
|
||||
// 生成数据
|
||||
List<RtStuDisciplinaryApplication> list = util.importExcel(file.getInputStream());
|
||||
String message = rtStuDisciplinaryApplicationService.importDisciplinaryApplication(list, updateSupport);
|
||||
return success(message);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取学生处分申请详细信息
|
||||
*/
|
||||
|
||||
@@ -121,6 +121,24 @@ public class RtStuDisciplinaryRelieveController extends BaseController {
|
||||
util.exportExcel(response, list, "学生解除处分申请数据");
|
||||
}
|
||||
|
||||
@PostMapping("/importTemplate")
|
||||
@ApiOperation("下载学生解除处分导入模板")
|
||||
public void importTemplate(HttpServletResponse response) {
|
||||
ExcelUtil<RtStuDisciplinaryRelieve> util = new ExcelUtil<RtStuDisciplinaryRelieve>(RtStuDisciplinaryRelieve.class);
|
||||
util.importTemplateExcel(response, "学生解除处分申请数据导入");
|
||||
}
|
||||
|
||||
@Log(title = "学生解除处分申请", businessType = BusinessType.IMPORT)
|
||||
@PreAuthorize("@ss.hasPermi('routine:relieve:import')")
|
||||
@PostMapping("/importData")
|
||||
@ApiOperation("导入学生解除处分申请")
|
||||
public AjaxResult importData(org.springframework.web.multipart.MultipartFile file, boolean updateSupport) throws Exception {
|
||||
ExcelUtil<RtStuDisciplinaryRelieve> util = new ExcelUtil<RtStuDisciplinaryRelieve>(RtStuDisciplinaryRelieve.class);
|
||||
List<RtStuDisciplinaryRelieve> list = util.importExcel(file.getInputStream());
|
||||
String message = rtStuDisciplinaryRelieveService.importDisciplinaryRelieve(list, updateSupport);
|
||||
return success(message);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取学生解除处分申请详细信息
|
||||
*/
|
||||
|
||||
@@ -104,8 +104,8 @@ public class SysDisBasicController extends BaseController {
|
||||
for (SysDisMate mate : item.getMaList()){
|
||||
dao1.setOldgrade(mate.getOldgrade());
|
||||
dao1.setOldmajor(mate.getOldmajor());
|
||||
dao1.setNewgrade(mate.getNewgrade());
|
||||
dao1.setNewmajor(mate.getNewmajor());
|
||||
// dao1.setNewgrade(mate.getNewgrade());
|
||||
// dao1.setNewmajor(mate.getNewmajor());
|
||||
dao1.setProof(baseUrl.substring(0,baseUrl.length()-1) + mate.getProof());
|
||||
dao1.setIdcard(baseUrl.substring(0,baseUrl.length()-1) + mate.getIdcard());
|
||||
dao1.setMaterial(baseUrl.substring(0,baseUrl.length()-1) + mate.getMaterial());
|
||||
|
||||
@@ -44,6 +44,7 @@ public class SysTeacherKpiFillingBonusPointsController extends BaseController {
|
||||
}
|
||||
|
||||
/**
|
||||
* ……
|
||||
* 根据辅导员名称、年份 月份 查询详细信息
|
||||
*/
|
||||
// @PreAuthorize("@ss.hasPermi('teacher:kpiFillingBonusPoints:list')")
|
||||
|
||||
@@ -56,6 +56,7 @@ public class SysTeacherKpiFillingGraduationGuidanceController extends BaseContro
|
||||
}
|
||||
|
||||
/**
|
||||
* ……
|
||||
* 导出业绩考核-个人填报-就业指导工作列表
|
||||
*/
|
||||
// @PreAuthorize("@ss.hasPermi('teacher:kpiFillingGraduationGuidance:export')")
|
||||
|
||||
@@ -3,10 +3,15 @@ package com.srs.flowable.listener.disbasic;
|
||||
import com.srs.common.core.domain.entity.SysUser;
|
||||
import com.srs.common.doman.vo.TeacherVo;
|
||||
|
||||
import com.srs.common.utils.DateUtils;
|
||||
import com.srs.common.utils.SecurityUtils;
|
||||
import com.srs.common.utils.WeChatUtil;
|
||||
import com.srs.common.utils.spring.SpringUtils;
|
||||
import com.srs.flowable.domain.DisBasic;
|
||||
import com.srs.flowable.domain.NotificationManage;
|
||||
import com.srs.flowable.mapper.DisBasicMapper;
|
||||
import com.srs.flowable.mapper.EnlistmentReserveMapper;
|
||||
import com.srs.flowable.mapper.LeaveMapper;
|
||||
import com.srs.system.service.ISysUserService;
|
||||
import org.flowable.bpmn.model.BpmnModel;
|
||||
import org.flowable.bpmn.model.FlowNode;
|
||||
@@ -76,6 +81,8 @@ public class DiscListener implements ExecutionListener {
|
||||
execution.setVariable("approval", nextAssigneeId);
|
||||
execution.setVariable("currentNode", currentNodeName);
|
||||
}
|
||||
// ========== 发送通知逻辑 ==========
|
||||
sendApprovalNotification(execution, currentNodeName, nextAssigneeId, stId);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -188,9 +195,6 @@ public class DiscListener implements ExecutionListener {
|
||||
// 暂时选择学籍管理科第一个人作为审核人
|
||||
return shenDataInfo.get(0).getUserId();
|
||||
|
||||
|
||||
|
||||
|
||||
case "教务处主管":
|
||||
// 最后一个节点通过后 → 流程结束(无需设置负责人)
|
||||
List<TeacherVo> teacherVos = sysDisBasicMapper.getShenDataInfo("教务处主管领导");
|
||||
@@ -207,4 +211,92 @@ public class DiscListener implements ExecutionListener {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 发送审批通知(系统通知+企业微信通知)
|
||||
* 适配DisBasic(退伍复学)业务场景
|
||||
*/
|
||||
private void sendApprovalNotification(DelegateExecution execution, String currentNodeName,
|
||||
Long nextAssigneeId, Long basicId) {
|
||||
try {
|
||||
// 1. 获取需要的Mapper和工具类(通过SpringUtils获取,避免Autowired循环依赖)
|
||||
LeaveMapper leaveMapper = (LeaveMapper) SpringUtils.getBean("leaveMapper");
|
||||
WeChatUtil weChatUtil = SpringUtils.getBean(WeChatUtil.class);
|
||||
|
||||
// 2. 查询退伍复学申请详情
|
||||
DisBasicMapper disBasicMapper = (DisBasicMapper) SpringUtils.getBean(DisBasicMapper.class);
|
||||
DisBasic disBasic = disBasicMapper.selectSysDisBasicById(basicId);
|
||||
if (disBasic == null) {
|
||||
log.warn("未找到退伍复学申请记录,basicId:{}", basicId);
|
||||
return;
|
||||
}
|
||||
|
||||
// 3. 查询下一个审批人的信息
|
||||
SysUser nextApprover = sysUserService.selectUserById(nextAssigneeId);
|
||||
if (nextApprover == null) {
|
||||
log.warn("未找到审批人信息,用户ID:{}", nextAssigneeId);
|
||||
return;
|
||||
}
|
||||
String approverUserName = nextApprover.getUserName(); // 审批人工号/用户名
|
||||
String approverName = nextApprover.getNickName(); // 审批人姓名
|
||||
|
||||
log.info("开始发送【退伍复学审批】通知,审批节点:{},审批人:{}({}),申请ID:{}",
|
||||
currentNodeName, approverName, approverUserName, basicId);
|
||||
|
||||
// 4. 处理系统通知(先删后加,避免重复通知)
|
||||
NotificationManage notificationManage = new NotificationManage();
|
||||
notificationManage.setContent(String.format("您有一条【退伍复学审批】待处理(节点:%s)", currentNodeName));
|
||||
notificationManage.setReceiver(nextAssigneeId); // 接收人:下一个审批人
|
||||
|
||||
// 4.1 查询是否已有相同通知,有则删除
|
||||
NotificationManage existNotify = leaveMapper.selectCphMsgListForFlowable(notificationManage);
|
||||
if (existNotify != null) {
|
||||
int delRes = leaveMapper.deleteCphMsgById(existNotify.getId());
|
||||
log.info("删除重复的系统通知,通知ID:{},删除结果:{}", existNotify.getId(), delRes);
|
||||
}
|
||||
|
||||
// 4.2 添加新的系统通知
|
||||
notificationManage.setSender(SecurityUtils.getUserId()); // 发送人:当前操作人
|
||||
notificationManage.setCreateTime(DateUtils.getNowDate()); // 创建时间
|
||||
int addRes = leaveMapper.insertCphMsg(notificationManage);
|
||||
log.info("新增系统通知成功,接收人ID:{},添加结果:{}", nextAssigneeId, addRes);
|
||||
|
||||
// 5. 企业微信推送消息(带超链接)
|
||||
if (approverUserName != null && !approverUserName.isEmpty()) {
|
||||
String weChatContent = String.format(
|
||||
"您有一条【退伍复学审批】待处理(节点:%s),<a href='https://zhxg.gxsdxy.cn/wab/#/pages/Approval/index'>请点击前往处理</a>",
|
||||
currentNodeName
|
||||
);
|
||||
weChatUtil.sendTextMessage(approverUserName, weChatContent);
|
||||
log.info("企业微信通知发送成功,接收人工号:{},节点:{},申请ID:{}", approverUserName, currentNodeName, basicId);
|
||||
} else {
|
||||
log.warn("审批人工号为空,无法发送企业微信通知,用户ID:{},申请ID:{}", nextAssigneeId, basicId);
|
||||
}
|
||||
|
||||
// 6. 删除当前审批人的待处理通知(清理已处理的待办)
|
||||
Long currentApproverId = SecurityUtils.getUserId();
|
||||
if (currentApproverId == null) {
|
||||
log.warn("当前审批人ID为空,无法删除其待处理通知,申请ID:{}", basicId);
|
||||
return;
|
||||
}
|
||||
|
||||
NotificationManage currentNotifyQuery = new NotificationManage();
|
||||
currentNotifyQuery.setContent(String.format("您有一条【退伍复学审批】待处理(节点:%s)", currentNodeName));
|
||||
currentNotifyQuery.setReceiver(currentApproverId);
|
||||
|
||||
NotificationManage currentExistNotify = leaveMapper.selectCphMsgListForFlowable(currentNotifyQuery);
|
||||
if (currentExistNotify != null) {
|
||||
int currentDelRes = leaveMapper.deleteCphMsgById(currentExistNotify.getId());
|
||||
log.info("删除当前审批人({})的【{}】待处理通知,通知ID:{},删除结果:{},申请ID:{}",
|
||||
currentApproverId, currentNodeName, currentExistNotify.getId(), currentDelRes, basicId);
|
||||
} else {
|
||||
log.info("当前审批人({})无【{}】节点的待处理通知,无需删除,申请ID:{}", currentApproverId, currentNodeName, basicId);
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
// 捕获所有异常,仅记录日志,不影响主流程
|
||||
log.error("发送退伍复学审批通知失败,节点:{},审批人ID:{},申请ID:{},错误信息:{}",
|
||||
currentNodeName, nextAssigneeId, basicId, e.getMessage(), e);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -216,6 +216,14 @@ private static final long serialVersionUID=1L;
|
||||
@Excel(name = "流程部署编号")
|
||||
private String deployId;
|
||||
|
||||
/**
|
||||
* 学院名称
|
||||
*/
|
||||
@ApiModelProperty("学院名称")
|
||||
@TableField("dept_name")
|
||||
@Excel(name = "学院名称")
|
||||
private String deptName;
|
||||
|
||||
/**
|
||||
* 入伍保留学籍申请表-审核记录
|
||||
*/
|
||||
|
||||
@@ -0,0 +1,130 @@
|
||||
package com.srs.routine.domain.dto;
|
||||
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.srs.common.annotation.Excel;
|
||||
import lombok.Data;
|
||||
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
|
||||
// 入伍申请导出专用DTO,只包含需要导出的字段
|
||||
@Data
|
||||
public class RtEnlistmentReserveExportDto {
|
||||
|
||||
/**
|
||||
* 申请编号(规则:RY+年份+6位序号,如RY2024000001)
|
||||
*/
|
||||
@Excel(name = "申请编号")
|
||||
private String applyNo;
|
||||
|
||||
|
||||
/**
|
||||
* 辅导员姓名
|
||||
*/
|
||||
@Excel(name = "辅导员姓名")
|
||||
private String teacherName;
|
||||
|
||||
/**
|
||||
* 姓名
|
||||
*/
|
||||
@Excel(name = "学生姓名")
|
||||
private String studentName;
|
||||
|
||||
/**
|
||||
* 性别(0-男
|
||||
*/
|
||||
@Excel(name = "性别")
|
||||
private String gender;
|
||||
|
||||
/**
|
||||
* 民族
|
||||
*/
|
||||
@Excel(name = "民族")
|
||||
private String nation;
|
||||
|
||||
/**
|
||||
* 年级
|
||||
*/
|
||||
@Excel(name = "年级")
|
||||
private String grade;
|
||||
|
||||
/**
|
||||
* 学号
|
||||
*/
|
||||
@Excel(name = "学号")
|
||||
private String studentNo;
|
||||
|
||||
/**
|
||||
* 班级
|
||||
*/
|
||||
@Excel(name = "班级")
|
||||
private String className;
|
||||
|
||||
/**
|
||||
* 专业名称
|
||||
*/
|
||||
@Excel(name = "专业名称")
|
||||
private String major;
|
||||
|
||||
/**
|
||||
* 家庭地址
|
||||
*/
|
||||
@Excel(name = "家庭地址")
|
||||
private String familyAddress;
|
||||
|
||||
/**
|
||||
* 家长联系电话
|
||||
*/
|
||||
@Excel(name = "家长联系电话")
|
||||
private String parentPhone;
|
||||
|
||||
/**
|
||||
* 申请理由(含入伍时间、服役期限)
|
||||
*/
|
||||
@Excel(name = "申请理由")
|
||||
private String applyReason;
|
||||
|
||||
/**
|
||||
* 申请状态(0-草稿,1=待辅导员审批,2=待学务审批,3=待二级学院审批,4=待学籍管理科审批,5=待教务处主管领导审批,6=审批通过,7=驳回)
|
||||
*/
|
||||
@Excel(name = "申请状态")
|
||||
private String applyStatus;
|
||||
|
||||
/**
|
||||
* 保留学籍编号(审批通过后生成)
|
||||
*/
|
||||
@Excel(name = "保留学籍编号")
|
||||
private String reserveNo;
|
||||
|
||||
/**
|
||||
* 保留学籍开始日期
|
||||
*/
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
@Excel(name = "保留学籍开始日期" , width = 30, dateFormat = "yyyy-MM-dd")
|
||||
private Date reserveStartDate;
|
||||
|
||||
/**
|
||||
* 保留学籍结束日期(入伍时间+服役期限)
|
||||
*/
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
@Excel(name = "保留学籍结束日期" , width = 30, dateFormat = "yyyy-MM-dd")
|
||||
private Date reserveEndDate;
|
||||
|
||||
// /**
|
||||
// * 批文号
|
||||
// */
|
||||
// @Excel(name = "批文号")
|
||||
// private String approvalNo;
|
||||
|
||||
// @JsonFormat(pattern = "yyyy-MM-dd")
|
||||
// private Date createTime;
|
||||
//
|
||||
// @JsonFormat(pattern = "yyyy-MM-dd")
|
||||
// private Date updateTime;
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -70,20 +70,6 @@ public class SysDisMateDao {
|
||||
@Excel(name = "原专业")
|
||||
private String oldmajor;
|
||||
|
||||
/**
|
||||
* 新年级
|
||||
*/
|
||||
@ApiModelProperty("新年级")
|
||||
@Excel(name = "新年级")
|
||||
private String newgrade;
|
||||
|
||||
/**
|
||||
* 新专业
|
||||
*/
|
||||
@ApiModelProperty("新专业")
|
||||
@Excel(name = "新专业")
|
||||
private String newmajor;
|
||||
|
||||
/**
|
||||
* 退役证明
|
||||
*/
|
||||
@@ -104,22 +90,8 @@ public class SysDisMateDao {
|
||||
@ApiModelProperty("材料")
|
||||
@Excel(name = "材料")
|
||||
private String material;
|
||||
//
|
||||
// /**
|
||||
// * 保留字段1
|
||||
// */
|
||||
// @ApiModelProperty("保留字段1")
|
||||
// @TableField("data1")
|
||||
// @Excel(name = "保留字段1")
|
||||
// private String data1;
|
||||
//
|
||||
// /**
|
||||
// * 保留字段2
|
||||
// */
|
||||
// @ApiModelProperty("保留字段2")
|
||||
// @TableField("data2")
|
||||
// @Excel(name = "保留字段2")
|
||||
// private String data2;
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -31,6 +31,7 @@ public interface RtEnlistmentReserveMapper extends BaseMapper<RtEnlistmentReserv
|
||||
*/
|
||||
public RtEnlistmentReserve selectRtEnlistmentReserveByProcessInstanceId(String processInstanceId);
|
||||
|
||||
|
||||
/**
|
||||
* 查询应征入伍保留学籍申请
|
||||
*
|
||||
@@ -62,6 +63,13 @@ public interface RtEnlistmentReserveMapper extends BaseMapper<RtEnlistmentReserv
|
||||
@Options(useGeneratedKeys = true, keyProperty = "id", keyColumn = "id")
|
||||
int insertRtEnlistmentReserve(RtEnlistmentReserve rtEnlistmentReserve);
|
||||
|
||||
/**
|
||||
* Mapper接口方法:统计指定年份的保留学籍记录数
|
||||
* @param year 年份(如2026)
|
||||
* @return 该年份的记录总数
|
||||
*/
|
||||
int countByYear(@Param("year") String year);
|
||||
|
||||
/**
|
||||
* 修改应征入伍保留学籍申请
|
||||
*
|
||||
|
||||
@@ -70,6 +70,15 @@ public interface IRtStuDisciplinaryApplicationService extends IService<RtStuDisc
|
||||
*/
|
||||
int deleteRtStuDisciplinaryApplicationByApplicationId(Long applicationId);
|
||||
|
||||
/**
|
||||
* 导入学生处分申请数据
|
||||
*
|
||||
* @param list 数据列表
|
||||
* @param updateSupport 是否更新现有数据
|
||||
* @return 结果
|
||||
*/
|
||||
String importDisciplinaryApplication(List<RtStuDisciplinaryApplication> list, boolean updateSupport);
|
||||
|
||||
/**
|
||||
* 根据流程实例id获取学生处分申请
|
||||
* @param procInsId
|
||||
|
||||
@@ -95,4 +95,12 @@ public interface IRtStuDisciplinaryRelieveService extends IService<RtStuDiscipli
|
||||
* @return
|
||||
*/
|
||||
List<RtStuDisciplinaryRelieve> selectRtStuDisciplinaryRelieveListByXW(RtStuDisciplinaryRelieve rtStuDisciplinaryRelieve);
|
||||
|
||||
/**
|
||||
* 导入解除处分数据
|
||||
* @param list 解除处分数据列表
|
||||
* @param updateSupport 是否更新已经存在的数据
|
||||
* @return 导入结果信息
|
||||
*/
|
||||
String importDisciplinaryRelieve(List<RtStuDisciplinaryRelieve> list, boolean updateSupport);
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.srs.common.core.domain.AjaxResult;
|
||||
import com.srs.common.core.domain.entity.SysUser;
|
||||
import com.srs.common.doman.dto.ProcessResultDto;
|
||||
import com.srs.common.doman.vo.TeacherVo;
|
||||
import com.srs.common.exception.ServiceException;
|
||||
@@ -16,6 +17,7 @@ import com.srs.dormitory.domain.DmsOutsideAccommodationApply;
|
||||
import com.srs.dormitory.mapper.DmsOutsideAccommodationApplyMapper;
|
||||
import com.srs.flowable.service.IFlowDefinitionService;
|
||||
import com.srs.routine.domain.RtEnlistmentReserveApproval;
|
||||
import com.srs.system.service.ISysUserService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import com.srs.routine.mapper.RtStuLeaveApplicationMapper;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
@@ -53,6 +55,9 @@ public class RtEnlistmentReserveServiceImpl extends ServiceImpl<RtEnlistmentRese
|
||||
@Autowired
|
||||
IdentityService identityService;
|
||||
|
||||
@Autowired
|
||||
ISysUserService sysUserService;
|
||||
|
||||
|
||||
// 注入RuntimeService
|
||||
@Autowired
|
||||
@@ -103,23 +108,28 @@ public class RtEnlistmentReserveServiceImpl extends ServiceImpl<RtEnlistmentRese
|
||||
throw new ServiceException("您已经申请过了,请勿重新申请!", 400);
|
||||
}
|
||||
|
||||
SysUser sysUser = sysUserService.selectUserByUserName(rtEnlistmentReserve.getStudentNo());
|
||||
if (sysUser == null) {
|
||||
throw new ServiceException("该学生不存在", 500);
|
||||
}
|
||||
|
||||
// ========== 生成保留学籍编号 ==========
|
||||
// 查询申请记录数量
|
||||
List<RtEnlistmentReserve> rtEnlistmentReserves = rtEnlistmentReserveMapper.getEnlistmentReserves();
|
||||
int total = rtEnlistmentReserves.size();
|
||||
// 设置保留学籍编号 (LBXJ0001(LBXJ是固定的,0001根据数据数量累加) + 时间(根据系统时间,但是格式要20260304))
|
||||
// 1. 获取当前系统时间,格式化为8位日期(yyyyMMdd)
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
|
||||
String dateStr = sdf.format(new Date());
|
||||
// 1. 获取当前系统年份(用于编号和序号重置判断)
|
||||
SimpleDateFormat yearSdf = new SimpleDateFormat("yyyy");
|
||||
String currentYear = yearSdf.format(new Date()); // 如2026
|
||||
|
||||
// 2. 计算自增序号(总数+1,确保新编号是下一个序号),补零为4位
|
||||
int seq = total + 1;
|
||||
String seqStr = String.format("%04d", seq); // 不足4位时前面补0,如1→0001,10→0010
|
||||
// 2. 查询「当前年份」的记录总数(按年份分组统计,实现每年序号重置)
|
||||
// 统计rt_enlistment_reserve表中,reserve_no以"BLXJ("+currentYear+")"开头的记录数
|
||||
int yearTotal = rtEnlistmentReserveMapper.countByYear(currentYear);
|
||||
|
||||
// 3. 拼接保留学籍编号:LBXJ + 4位序号 + 8位日期
|
||||
String reserveNo = "LBXJ" + seqStr + dateStr;
|
||||
// 3. 计算当年自增序号(总数+1),补零为4位(0001、0002...9999)
|
||||
int seq = yearTotal + 1;
|
||||
String seqStr = String.format("%04d", seq); // 不足4位补0,如1→0001,10→0010,100→0100
|
||||
|
||||
// 4. 设置到实体对象中
|
||||
// 4. 拼接最终编号:BLXJ(年份)序号
|
||||
String reserveNo = "BLXJ(" + currentYear + ")" + seqStr;
|
||||
|
||||
// 5. 设置到实体对象中
|
||||
rtEnlistmentReserve.setReserveNo(reserveNo);
|
||||
|
||||
rtEnlistmentReserve.setCreateTime(DateUtils.getNowDate());
|
||||
@@ -139,7 +149,9 @@ public class RtEnlistmentReserveServiceImpl extends ServiceImpl<RtEnlistmentRese
|
||||
// 注意:若前端未传 applyStatus,数据库默认 0,不会触发流程
|
||||
if (1 == rtEnlistmentReserve.getApplyStatus()) {
|
||||
// 绑定当前学生 ID(提交人即学生本人,确保流程变量准确)
|
||||
rtEnlistmentReserve.setStudentId(SecurityUtils.getUserId());
|
||||
if (rtEnlistmentReserve.getStudentId() == null) {
|
||||
rtEnlistmentReserve.setStudentId(SecurityUtils.getUserId());
|
||||
}
|
||||
|
||||
// 启动流程(此时 applyId 已存在,可正常传递)
|
||||
ProcessResultDto processResultDto = startEnlistmentReserveProcess(rtEnlistmentReserve);
|
||||
|
||||
@@ -21,7 +21,7 @@ import org.flowable.task.api.Task;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import com.srs.common.utils.StringUtils;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
@@ -199,6 +199,74 @@ public class RtStuDisciplinaryApplicationServiceImpl extends ServiceImpl<RtStuDi
|
||||
return rtStuDisciplinaryApplicationMapper.deleteRtStuDisciplinaryApplicationByApplicationId(applicationId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String importDisciplinaryApplication(List<RtStuDisciplinaryApplication> list, boolean updateSupport) {
|
||||
if (com.srs.common.utils.StringUtils.isNull(list) || list.size() == 0) {
|
||||
throw new ServiceException("导入数据不能为空!");
|
||||
}
|
||||
int successNum = 0;
|
||||
int failureNum = 0;
|
||||
StringBuilder successMsg = new StringBuilder();
|
||||
StringBuilder failureMsg = new StringBuilder();
|
||||
|
||||
for (int i = 0; i < list.size(); i++) {
|
||||
RtStuDisciplinaryApplication rtStuDisciplinaryApplication = list.get(i);
|
||||
// 跳过 null 元素
|
||||
if (rtStuDisciplinaryApplication == null) {
|
||||
continue;
|
||||
}
|
||||
|
||||
// 跳过必填字段为空的行(学号为空则跳过)
|
||||
if (StringUtils.isEmpty(rtStuDisciplinaryApplication.getStuNo())) {
|
||||
continue;
|
||||
}
|
||||
|
||||
try {
|
||||
// 验证数据是否存在,或者补充必要信息
|
||||
if (com.srs.common.utils.StringUtils.isNotNull(rtStuDisciplinaryApplication.getStuNo())) {
|
||||
SysUser sysUser = sysUserService.selectUserByUserName(rtStuDisciplinaryApplication.getStuNo());
|
||||
if (sysUser != null) {
|
||||
rtStuDisciplinaryApplication.setStuId(sysUser.getUserId());
|
||||
rtStuDisciplinaryApplication.setStuName(sysUser.getNickName());
|
||||
}
|
||||
}
|
||||
|
||||
rtStuDisciplinaryApplication.setCreateBy(SecurityUtils.getUsername());
|
||||
rtStuDisciplinaryApplication.setCreateTime(DateUtils.getNowDate());
|
||||
rtStuDisciplinaryApplication.setApplicantName(SecurityUtils.getLoginUser().getUser().getNickName());
|
||||
rtStuDisciplinaryApplication.setApplicantId(SecurityUtils.getUserId());
|
||||
|
||||
if (rtStuDisciplinaryApplication.getSubmissionStatus() == null) {
|
||||
rtStuDisciplinaryApplication.setSubmissionStatus(0L);
|
||||
}
|
||||
|
||||
if (rtStuDisciplinaryApplication.getPenaltyStatus() == null) {
|
||||
rtStuDisciplinaryApplication.setPenaltyStatus(0L); // 默认处分中
|
||||
}
|
||||
|
||||
if (rtStuDisciplinaryApplication.getPenaltyType() != null && rtStuDisciplinaryApplication.getDisciplinaryDate() != null) {
|
||||
rtStuDisciplinaryApplication.setExpirationDate(calculationDueDisposition(rtStuDisciplinaryApplication.getPenaltyType(), rtStuDisciplinaryApplication.getDisciplinaryDate()));
|
||||
}
|
||||
|
||||
this.insertRtStuDisciplinaryApplication(rtStuDisciplinaryApplication);
|
||||
successNum++;
|
||||
successMsg.append("<br/>" + successNum + "、学号 " + rtStuDisciplinaryApplication.getStuNo() + " 导入成功");
|
||||
} catch (Exception e) {
|
||||
failureNum++;
|
||||
String msg = "<br/>" + failureNum + "、学号 " + rtStuDisciplinaryApplication.getStuNo() + " 导入失败:";
|
||||
failureMsg.append(msg + e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
if (failureNum > 0) {
|
||||
failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:");
|
||||
throw new ServiceException(failureMsg.toString());
|
||||
} else {
|
||||
successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,数据如下:");
|
||||
}
|
||||
return successMsg.toString();
|
||||
}
|
||||
|
||||
@Override
|
||||
public RtStuDisciplinaryApplication getDisciplinaryApplicationByProcInsId(String procInsId) {
|
||||
RtStuDisciplinaryApplication rtStuDisciplinaryApplication = rtStuDisciplinaryApplicationMapper.selectDisciplinaryApplicationByProcInsId(procInsId);
|
||||
|
||||
@@ -6,31 +6,32 @@ import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.srs.common.core.domain.AjaxResult;
|
||||
import com.srs.common.core.domain.entity.SysUser;
|
||||
import com.srs.common.doman.dto.ProcessResultDto;
|
||||
import com.srs.common.exception.ServiceException;
|
||||
import com.srs.common.utils.DateUtils;
|
||||
import com.srs.common.utils.SecurityUtils;
|
||||
import com.srs.common.utils.StringUtils;
|
||||
import com.srs.common.utils.WeChatUtil;
|
||||
import com.srs.flowable.service.IFlowDefinitionService;
|
||||
import com.srs.routine.domain.RtStuDisciplinaryApplication;
|
||||
import com.srs.routine.domain.RtStuDisciplinaryRelieve;
|
||||
import com.srs.routine.mapper.RtStuDisciplinaryApplicationMapper;
|
||||
import com.srs.routine.mapper.RtStuDisciplinaryRelieveMapper;
|
||||
import com.srs.routine.service.IRtStuDisciplinaryRelieveService;
|
||||
import com.srs.system.mapper.SysUserMapper;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.flowable.engine.IdentityService;
|
||||
import org.flowable.engine.TaskService;
|
||||
import org.flowable.task.api.Task;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.srs.routine.mapper.RtStuDisciplinaryRelieveMapper;
|
||||
import com.srs.routine.domain.RtStuDisciplinaryRelieve;
|
||||
import com.srs.routine.service.IRtStuDisciplinaryRelieveService;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
/**
|
||||
* 学生解除处分申请Service业务层处理
|
||||
* 学生解除处分申请 Service 业务层处理
|
||||
*
|
||||
* @author LSD
|
||||
* @date 2024-04-29
|
||||
@@ -300,4 +301,66 @@ public class RtStuDisciplinaryRelieveServiceImpl extends ServiceImpl<RtStuDiscip
|
||||
return rtStuDisciplinaryRelieve;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String importDisciplinaryRelieve(List<RtStuDisciplinaryRelieve> list, boolean updateSupport) {
|
||||
if (com.srs.common.utils.StringUtils.isNull(list) || list.size() == 0) {
|
||||
throw new ServiceException("导入数据不能为空!");
|
||||
}
|
||||
int successNum = 0;
|
||||
int failureNum = 0;
|
||||
StringBuilder successMsg = new StringBuilder();
|
||||
StringBuilder failureMsg = new StringBuilder();
|
||||
|
||||
for (int i = 0; i < list.size(); i++) {
|
||||
RtStuDisciplinaryRelieve rtStuDisciplinaryRelieve = list.get(i);
|
||||
// 跳过 null 元素
|
||||
if (rtStuDisciplinaryRelieve == null) {
|
||||
continue;
|
||||
}
|
||||
|
||||
// 跳过必填字段为空的行(学号为空则跳过)
|
||||
if (StringUtils.isEmpty(rtStuDisciplinaryRelieve.getStuNo())) {
|
||||
continue;
|
||||
}
|
||||
|
||||
try {
|
||||
if (com.srs.common.utils.StringUtils.isNotNull(rtStuDisciplinaryRelieve.getStuNo())) {
|
||||
SysUser sysUser = sysUserMapper.selectUserByUserName(rtStuDisciplinaryRelieve.getStuNo());
|
||||
if (sysUser != null) {
|
||||
rtStuDisciplinaryRelieve.setStuId(sysUser.getUserId());
|
||||
rtStuDisciplinaryRelieve.setStuName(sysUser.getNickName());
|
||||
}
|
||||
}
|
||||
|
||||
rtStuDisciplinaryRelieve.setCreateBy(SecurityUtils.getUsername());
|
||||
rtStuDisciplinaryRelieve.setCreateTime(DateUtils.getNowDate());
|
||||
rtStuDisciplinaryRelieve.setApplicantName(SecurityUtils.getLoginUser().getUser().getNickName());
|
||||
|
||||
if (rtStuDisciplinaryRelieve.getSubmissionStatus() == null) {
|
||||
rtStuDisciplinaryRelieve.setSubmissionStatus(0L);
|
||||
}
|
||||
|
||||
if (rtStuDisciplinaryRelieve.getPenaltyStatus() == null) {
|
||||
rtStuDisciplinaryRelieve.setPenaltyStatus(1L);
|
||||
}
|
||||
|
||||
rtStuDisciplinaryRelieveMapper.insertRtStuDisciplinaryRelieve(rtStuDisciplinaryRelieve);
|
||||
successNum++;
|
||||
successMsg.append("<br/>" + successNum + "、学号 " + rtStuDisciplinaryRelieve.getStuNo() + " 导入成功");
|
||||
} catch (Exception e) {
|
||||
failureNum++;
|
||||
String msg = "<br/>" + failureNum + "、学号 " + rtStuDisciplinaryRelieve.getStuNo() + " 导入失败:";
|
||||
failureMsg.append(msg + e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
if (failureNum > 0) {
|
||||
failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:");
|
||||
throw new ServiceException(failureMsg.toString());
|
||||
} else {
|
||||
successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,数据如下:");
|
||||
}
|
||||
return successMsg.toString();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
package com.srs.routine.service.impl;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.srs.routine.domain.dto.SysDisMateDao;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -8,6 +10,8 @@ import com.srs.routine.mapper.SysDisMateMapper;
|
||||
import com.srs.routine.domain.SysDisMate;
|
||||
import com.srs.routine.service.ISysDisMateService;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
/**
|
||||
* 退伍复学材料Service业务层处理
|
||||
*
|
||||
@@ -84,4 +88,5 @@ public class SysDisMateServiceImpl extends ServiceImpl<SysDisMateMapper,SysDisMa
|
||||
public int deleteSysDisMateById(Long id) {
|
||||
return sysDisMateMapper.deleteSysDisMateById(id);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -46,6 +46,7 @@
|
||||
<result property="updateTime" column="update_time"/>
|
||||
<result property="affixId" column="affix_id"/>
|
||||
<result property="deployId" column="deploy_id" />
|
||||
<result property="deptName" column="dept_name"/>
|
||||
<!--入伍保留学籍申请表-审核记录 (多条件查询column里传入了多条件【{studentName = student_name, studentNo = student_no}】javaType里面写了list表明你有多条件 studentName student_name字段)-->
|
||||
<collection property="enlistmentReserveApprovalList"
|
||||
column="{studentName = student_name, studentNo = student_no}"
|
||||
|
||||
@@ -29,6 +29,7 @@
|
||||
<result property="updateTime" column="update_time"/>
|
||||
<result property="affixId" column="affix_id"/>
|
||||
<result property="deployId" column="deploy_id"/>
|
||||
<result property="deptName" column="dept_name" />
|
||||
<!--入伍保留学籍申请表-审核记录 (多条件查询column里传入了多条件【{studentName = student_name, studentNo = student_no}】javaType里面写了list表明你有多条件 studentName student_name字段)-->
|
||||
<collection property="enlistmentReserveApprovalList"
|
||||
column="{studentName = student_name, studentNo = student_no}"
|
||||
@@ -125,7 +126,8 @@
|
||||
create_time,
|
||||
update_time,
|
||||
affix_id,
|
||||
deploy_id
|
||||
deploy_id,
|
||||
dept_name
|
||||
from rt_enlistment_reserve
|
||||
</sql>
|
||||
|
||||
@@ -160,7 +162,9 @@
|
||||
<if test="approvalNo != null and approvalNo != ''">and approval_no = #{approvalNo}</if>
|
||||
<if test="affixId != null and affixId != ''">and affix_id = #{affixId}</if>
|
||||
<if test="deployId != null and deployId != ''">and deploy_id = #{deployId}</if>
|
||||
<if test="deptName != null and deptName != ''"> and dept_name like concat('%', #{deptName}, '%')</if>
|
||||
</where>
|
||||
order by id desc
|
||||
</select>
|
||||
|
||||
<select id="selectRtEnlistmentReserveById" parameterType="Long" resultMap="RtEnlistmentReserveResult">
|
||||
@@ -188,6 +192,13 @@
|
||||
select * from rt_enlistment_reserve
|
||||
</select>
|
||||
|
||||
<!-- 匹配reserve_no以"BLXJ(年份)"开头的记录-->
|
||||
<select id="countByYear" resultType="int">
|
||||
SELECT COUNT(*)
|
||||
FROM rt_enlistment_reserve
|
||||
WHERE reserve_no LIKE CONCAT('BLXJ(', #{year}, ')%')
|
||||
</select>
|
||||
|
||||
<!-- 根据流程编号查询申请记录 -->
|
||||
<select id="selectRtEnlistmentReserveByProcessInstanceId" parameterType="String"
|
||||
resultMap="RtEnlistmentReserveResult">
|
||||
@@ -231,6 +242,7 @@
|
||||
<if test="updateTime != null">update_time,</if>
|
||||
<if test="affixId != null">affix_id,</if>
|
||||
<if test="deployId != null">deploy_id,</if>
|
||||
<if test="deptName != null">dept_name,</if>
|
||||
</trim>
|
||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||
<if test="applyNo != null and applyNo != ''">#{applyNo},</if>
|
||||
@@ -256,6 +268,7 @@
|
||||
<if test="updateTime != null">#{updateTime},</if>
|
||||
<if test="affixId != null">#{affixId},</if>
|
||||
<if test="deployId != null">#{deployId},</if>
|
||||
<if test="deptName != null">#{deptName},</if>
|
||||
</trim>
|
||||
</insert>
|
||||
|
||||
@@ -285,6 +298,7 @@
|
||||
<if test="updateTime != null">update_time = #{updateTime},</if>
|
||||
<if test="affixId != null">affix_id = #{affixId},</if>
|
||||
<if test="deployId != null">deploy_id = #{deployId},</if>
|
||||
<if test="deptName != null">dept_name = #{deptName},</if>
|
||||
</trim>
|
||||
where id = #{id}
|
||||
</update>
|
||||
|
||||
@@ -526,7 +526,7 @@ public class SysMenuServiceImpl implements ISysMenuService
|
||||
while (it.hasNext())
|
||||
{
|
||||
SysMenu n = (SysMenu) it.next();
|
||||
if (n.getParentId().longValue() == t.getMenuId().longValue())
|
||||
if (StringUtils.isNotNull(n.getParentId()) && n.getParentId().longValue() == t.getMenuId().longValue())
|
||||
{
|
||||
tlist.add(n);
|
||||
}
|
||||
|
||||
@@ -13,6 +13,8 @@ import lombok.*;
|
||||
import com.srs.common.core.domain.BaseEntity;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
import com.srs.teacher.domain.SysTeacherStuTestMaterials;
|
||||
import com.srs.teacher.domain.SysTeacherStuNoticeMaterials;
|
||||
|
||||
|
||||
/**
|
||||
@@ -172,4 +174,18 @@ public class SysTeacherKpiFillingStuMgt extends BaseEntity {
|
||||
@ApiModelProperty(value = "每周深入学生宿舍佐证材料", hidden = true)
|
||||
@Excel(name = "每周深入学生宿舍佐证材料")
|
||||
private List<SysTeacherVisitDormitoryMaterials> visitDormitoryMaterialsList;
|
||||
|
||||
/**
|
||||
* 职业测评/就业育人佐证材料
|
||||
*/
|
||||
@ApiModelProperty(value = "职业测评/就业育人佐证材料", hidden = true)
|
||||
@Excel(name = "职业测评/就业育人佐证材料")
|
||||
private List<SysTeacherStuTestMaterials> edgMaterialsList;
|
||||
|
||||
/**
|
||||
* 通知任务佐证材料
|
||||
*/
|
||||
@ApiModelProperty(value = "通知任务佐证材料", hidden = true)
|
||||
@Excel(name = "通知任务佐证材料")
|
||||
private List<SysTeacherStuNoticeMaterials> noticeMaterialsList;
|
||||
}
|
||||
|
||||
@@ -82,10 +82,10 @@ public class SysTeacherKpiFillingBusinessWorkServiceImpl extends ServiceImpl<Sys
|
||||
public int updateSysTeacherKpiFillingBusinessWork(SysTeacherKpiFillingBusinessWork sysTeacherKpiFillingBusinessWork) {
|
||||
// sysTeacherKpiFillingBusinessWork.setFdyName(SecurityUtils.getLoginUser().getUser().getNickName());
|
||||
// 判断填报记录是否填报
|
||||
List<SysTeacherKpiFillingBusinessWork> sysTeacherKpiFillingBusinessWorkList = sysTeacherKpiFillingBusinessWorkMapper.selectSysTeacherKpiFillingBusinessWorkByFdyName(sysTeacherKpiFillingBusinessWork.getFdyName(), sysTeacherKpiFillingBusinessWork.getFillingYear(), sysTeacherKpiFillingBusinessWork.getFillingMonth(), sysTeacherKpiFillingBusinessWork.getClassType());
|
||||
/*List<SysTeacherKpiFillingBusinessWork> sysTeacherKpiFillingBusinessWorkList = sysTeacherKpiFillingBusinessWorkMapper.selectSysTeacherKpiFillingBusinessWorkByFdyName(sysTeacherKpiFillingBusinessWork.getFdyName(), sysTeacherKpiFillingBusinessWork.getFillingYear(), sysTeacherKpiFillingBusinessWork.getFillingMonth(), sysTeacherKpiFillingBusinessWork.getClassType());
|
||||
if (sysTeacherKpiFillingBusinessWorkList != null && !sysTeacherKpiFillingBusinessWorkList.isEmpty()) {
|
||||
throw new ServiceException("已提交,请勿重复提交", 500);
|
||||
}
|
||||
}*/
|
||||
return sysTeacherKpiFillingBusinessWorkMapper.updateSysTeacherKpiFillingBusinessWork(sysTeacherKpiFillingBusinessWork);
|
||||
}
|
||||
|
||||
|
||||
@@ -103,10 +103,10 @@ public class SysTeacherKpiFillingStuMgtServiceImpl extends ServiceImpl<SysTeache
|
||||
*/
|
||||
@Override
|
||||
public int updateSysTeacherKpiFillingStuMgt(SysTeacherKpiFillingStuMgt sysTeacherKpiFillingStuMgt) {
|
||||
List<SysTeacherKpiFillingStuMgt> sysTeacherKpiFillingStuMgts = sysTeacherKpiFillingStuMgtMapper.selectSysTeacherKpiFillingStuMgtByFdyNameAndFillingYear(sysTeacherKpiFillingStuMgt.getDepartmentName(), sysTeacherKpiFillingStuMgt.getFdyName(), sysTeacherKpiFillingStuMgt.getFillingYear(), sysTeacherKpiFillingStuMgt.getFillingMonth());
|
||||
/*List<SysTeacherKpiFillingStuMgt> sysTeacherKpiFillingStuMgts = sysTeacherKpiFillingStuMgtMapper.selectSysTeacherKpiFillingStuMgtByFdyNameAndFillingYear(sysTeacherKpiFillingStuMgt.getDepartmentName(), sysTeacherKpiFillingStuMgt.getFdyName(), sysTeacherKpiFillingStuMgt.getFillingYear(), sysTeacherKpiFillingStuMgt.getFillingMonth());
|
||||
if (sysTeacherKpiFillingStuMgts != null && !sysTeacherKpiFillingStuMgts.isEmpty()) {
|
||||
throw new ServiceException("已提交,请勿重复提交", 500);
|
||||
}
|
||||
}*/
|
||||
if (sysTeacherKpiFillingStuMgt.getFdyName() == null) {
|
||||
sysTeacherKpiFillingStuMgt.setFdyName(SecurityUtils.getLoginUser().getUser().getNickName());
|
||||
}
|
||||
|
||||
@@ -89,6 +89,14 @@
|
||||
<collection property="visitDormitoryMaterialsList"
|
||||
column="{fdyName = fdy_name, fillingYear = filling_year, fillingMonth = filling_month}"
|
||||
javaType="java.util.ArrayList" select="selectVisitDormitoryMaterialsById"/>
|
||||
<!--职业测评/就业育人佐证材料子表的集合 -->
|
||||
<collection property="edgMaterialsList"
|
||||
column="{fdyName = fdy_name, fillingYear = filling_year, fillingMonth = filling_month}"
|
||||
javaType="java.util.ArrayList" select="selectEdgMaterialsById"/>
|
||||
<!--通知任务佐证材料子表的集合 -->
|
||||
<collection property="noticeMaterialsList"
|
||||
column="{fdyName = fdy_name, fillingYear = filling_year, fillingMonth = filling_month}"
|
||||
javaType="java.util.ArrayList" select="selectNoticeMaterialsById"/>
|
||||
</resultMap>
|
||||
|
||||
<!--个人填报-业务工作子表的映射 -->
|
||||
@@ -401,6 +409,32 @@
|
||||
<result property="fillingYear" column="filling_year"/>
|
||||
<result property="fillingMonth" column="filling_month"/>
|
||||
</resultMap>
|
||||
<!--个人填报-学生管理-职业测评材料子表的映射 -->
|
||||
<resultMap type="SysTeacherStuTestMaterials" id="SysTeacherEdgMaterialsResult">
|
||||
<result property="id" column="id"/>
|
||||
<result property="developmentTime" column="development_time"/>
|
||||
<result property="place" column="place"/>
|
||||
<result property="className" column="class_name"/>
|
||||
<result property="numberOfStudents" column="number_of_students"/>
|
||||
<result property="mainContent" column="main_content"/>
|
||||
<result property="photo" column="photo"/>
|
||||
<result property="fdyName" column="fdy_name"/>
|
||||
<result property="fillingYear" column="filling_year"/>
|
||||
<result property="fillingMonth" column="filling_month"/>
|
||||
</resultMap>
|
||||
<!--个人填报-学生管理-通知任务材料子表的映射 -->
|
||||
<resultMap type="SysTeacherStuNoticeMaterials" id="SysTeacherStuNoticeMaterialsResult">
|
||||
<result property="id" column="id"/>
|
||||
<result property="developmentTime" column="development_time"/>
|
||||
<result property="place" column="place"/>
|
||||
<result property="className" column="class_name"/>
|
||||
<result property="numberOfStudents" column="number_of_students"/>
|
||||
<result property="mainContent" column="main_content"/>
|
||||
<result property="photo" column="photo"/>
|
||||
<result property="fdyName" column="fdy_name"/>
|
||||
<result property="fillingYear" column="filling_year"/>
|
||||
<result property="fillingMonth" column="filling_month"/>
|
||||
</resultMap>
|
||||
<!--个人填报-考勤管理-会议培训佐证材料子子表的映射 -->
|
||||
<resultMap type="SysTeacherConferenceMeetingMaterials" id="SysTeacherConferenceMeetingMaterialsResult">
|
||||
<result property="id" column="id"/>
|
||||
@@ -497,6 +531,40 @@
|
||||
</where>
|
||||
order by id desc
|
||||
</select>
|
||||
<!--查询个人填报-学生管理-职业测评材料子表的数据-->
|
||||
<select id="selectEdgMaterialsById" resultMap="SysTeacherEdgMaterialsResult">
|
||||
select *
|
||||
from sys_teacher_stu_test_materials
|
||||
<where>
|
||||
<if test="fdyName != null and fdyName != ''">
|
||||
and fdy_name = #{fdyName}
|
||||
</if>
|
||||
<if test="fillingYear != null and fillingYear != ''">
|
||||
and filling_year = #{fillingYear}
|
||||
</if>
|
||||
<if test="fillingMonth != null and fillingMonth != ''">
|
||||
and filling_month = #{fillingMonth}
|
||||
</if>
|
||||
</where>
|
||||
order by id desc
|
||||
</select>
|
||||
<!--查询个人填报-学生管理-通知任务材料子表的数据-->
|
||||
<select id="selectNoticeMaterialsById" resultMap="SysTeacherStuNoticeMaterialsResult">
|
||||
select *
|
||||
from sys_teacher_stu_notice_materials
|
||||
<where>
|
||||
<if test="fdyName != null and fdyName != ''">
|
||||
and fdy_name = #{fdyName}
|
||||
</if>
|
||||
<if test="fillingYear != null and fillingYear != ''">
|
||||
and filling_year = #{fillingYear}
|
||||
</if>
|
||||
<if test="fillingMonth != null and fillingMonth != ''">
|
||||
and filling_month = #{fillingMonth}
|
||||
</if>
|
||||
</where>
|
||||
order by id desc
|
||||
</select>
|
||||
<!--个人填报-考勤管理-会议培训佐证材料子子表的数据-->
|
||||
<select id="selectConferenceMeetingMaterialsById" resultMap="SysTeacherConferenceMeetingMaterialsResult">
|
||||
select *
|
||||
|
||||
@@ -29,6 +29,10 @@
|
||||
<collection property="stuTalkMaterialsList" column="{fdyName = fdy_name, fillingYear = filling_year, fillingMonth = filling_month}" javaType="java.util.ArrayList" select="selectStuTalkMaterialsById"/>
|
||||
<!--每周深入学生宿舍佐证材料子表的集合 -->
|
||||
<collection property="visitDormitoryMaterialsList" column="{fdyName = fdy_name, fillingYear = filling_year, fillingMonth = filling_month}" javaType="java.util.ArrayList" select="selectVisitDormitoryMaterialsById"/>
|
||||
<!--职业测评/就业育人佐证材料子表的集合 -->
|
||||
<collection property="edgMaterialsList" column="{fdyName = fdy_name, fillingYear = filling_year, fillingMonth = filling_month}" javaType="java.util.ArrayList" select="selectEdgMaterialsById"/>
|
||||
<!--通知任务佐证材料子表的集合 -->
|
||||
<collection property="noticeMaterialsList" column="{fdyName = fdy_name, fillingYear = filling_year, fillingMonth = filling_month}" javaType="java.util.ArrayList" select="selectNoticeMaterialsById"/>
|
||||
</resultMap>
|
||||
|
||||
<!--干部会议佐证材料子表的映射 -->
|
||||
@@ -95,6 +99,32 @@
|
||||
<result property="fillingYear" column="filling_year"/>
|
||||
<result property="fillingMonth" column="filling_month"/>
|
||||
</resultMap>
|
||||
<!--职业测评/就业育人佐证材料子表的映射 -->
|
||||
<resultMap type="SysTeacherStuTestMaterials" id="SysTeacherEdgMaterialsResult">
|
||||
<result property="id" column="id"/>
|
||||
<result property="developmentTime" column="development_time"/>
|
||||
<result property="place" column="place"/>
|
||||
<result property="className" column="class_name"/>
|
||||
<result property="numberOfStudents" column="number_of_students"/>
|
||||
<result property="mainContent" column="main_content"/>
|
||||
<result property="photo" column="photo"/>
|
||||
<result property="fdyName" column="fdy_name"/>
|
||||
<result property="fillingYear" column="filling_year"/>
|
||||
<result property="fillingMonth" column="filling_month"/>
|
||||
</resultMap>
|
||||
<!--通知任务佐证材料子表的映射 -->
|
||||
<resultMap type="SysTeacherStuNoticeMaterials" id="SysTeacherStuNoticeMaterialsResult">
|
||||
<result property="id" column="id"/>
|
||||
<result property="developmentTime" column="development_time"/>
|
||||
<result property="place" column="place"/>
|
||||
<result property="className" column="class_name"/>
|
||||
<result property="numberOfStudents" column="number_of_students"/>
|
||||
<result property="mainContent" column="main_content"/>
|
||||
<result property="photo" column="photo"/>
|
||||
<result property="fdyName" column="fdy_name"/>
|
||||
<result property="fillingYear" column="filling_year"/>
|
||||
<result property="fillingMonth" column="filling_month"/>
|
||||
</resultMap>
|
||||
|
||||
<!--查询干部会议佐证材料子表的数据-->
|
||||
<select id="selectCadreMeetingMaterialsById" resultMap="SysTeacherCadreMeetingMaterialsResult">
|
||||
@@ -176,6 +206,40 @@
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
<!--职业测评/就业育人佐证材料子表的数据-->
|
||||
<select id="selectEdgMaterialsById" resultMap="SysTeacherEdgMaterialsResult">
|
||||
select *
|
||||
from sys_teacher_stu_test_materials
|
||||
<where>
|
||||
<if test="fdyName != null and fdyName != ''">
|
||||
and fdy_name = #{fdyName}
|
||||
</if>
|
||||
<if test="fillingYear != null and fillingYear != ''">
|
||||
and filling_year = #{fillingYear}
|
||||
</if>
|
||||
<if test="fillingMonth != null and fillingMonth != ''">
|
||||
and filling_month = #{fillingMonth}
|
||||
</if>
|
||||
</where>
|
||||
order by id desc
|
||||
</select>
|
||||
<!--通知任务佐证材料子表的数据-->
|
||||
<select id="selectNoticeMaterialsById" resultMap="SysTeacherStuNoticeMaterialsResult">
|
||||
select *
|
||||
from sys_teacher_stu_notice_materials
|
||||
<where>
|
||||
<if test="fdyName != null and fdyName != ''">
|
||||
and fdy_name = #{fdyName}
|
||||
</if>
|
||||
<if test="fillingYear != null and fillingYear != ''">
|
||||
and filling_year = #{fillingYear}
|
||||
</if>
|
||||
<if test="fillingMonth != null and fillingMonth != ''">
|
||||
and filling_month = #{fillingMonth}
|
||||
</if>
|
||||
</where>
|
||||
order by id desc
|
||||
</select>
|
||||
|
||||
<sql id="selectSysTeacherKpiFillingStuMgtVo">
|
||||
select id,
|
||||
|
||||
Reference in New Issue
Block a user