学生资助、学生奖惩、学籍异动内容修改

This commit is contained in:
2025-12-03 10:00:14 +08:00
parent 310bedb4b5
commit f8b635f060
54 changed files with 518 additions and 389 deletions

View File

@@ -8,7 +8,8 @@ cd ../srs-admin/target
set JAVA_OPTS=-Xms256m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m
java -jar %JAVA_OPTS% srs-admin.jar
rem 正确传递 JVM 参数应放在 -jar 之前
java %JAVA_OPTS% -jar srs-admin.jar
cd bin
pause

View File

@@ -202,7 +202,7 @@ public class KnzzZzqApplyController extends BaseController {
/**
* 获取自治区人民政府奖学金详细信息
*/
@PreAuthorize("@ss.hasPermi('comprehensive:knzzZzqApply:query')")
// @PreAuthorize("@ss.hasPermi('comprehensive:knzzZzqApply:query')")
@GetMapping(value = "/{id}")
@ApiOperation("获取自治区人民政府奖学金详细信息")
public AjaxResult getInfo(@PathVariable("id") Long id)

View File

@@ -7,6 +7,7 @@ import java.text.SimpleDateFormat;
import java.util.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.srs.common.annotation.NotNull;
import com.srs.common.core.domain.model.LoginUser;
import com.srs.common.utils.bean.BeanTrimmer;
@@ -44,8 +45,7 @@ import com.srs.common.core.page.TableDataInfo;
*/
@RestController
@RequestMapping("/knrdApply/apply")
public class SrsKnrdApplyController extends BaseController
{
public class SrsKnrdApplyController extends BaseController {
@Autowired
private ISrsKnrdApplyService srsKnrdApplyService;
@@ -58,16 +58,16 @@ public class SrsKnrdApplyController extends BaseController
@GetMapping("/listJwc")
@ApiOperation("查询学工下的学生申请的列表")
public TableDataInfo listJwc(CphSearch param){
boolean hasRole = RoleBool.isJwc(getUserId(),_postService);
if(hasRole){
public TableDataInfo listJwc(CphSearch param) {
boolean hasRole = RoleBool.isJwc(getUserId(), _postService);
if (hasRole) {
startPage();
if (param.getStep()==null) {
if (param.getStep() == null) {
param.setStep("4");
}
List<SrsKnrdApply> list = srsKnrdApplyService.listView(param);
return getDataTable(list);
}else{
} else {
List<String> list = new ArrayList<>();
return getDataTable(list);
}
@@ -75,19 +75,19 @@ public class SrsKnrdApplyController extends BaseController
@GetMapping("/listXw")
@ApiOperation("查询学务下的学生申请的列表")
public TableDataInfo listXw(CphSearch param){
public TableDataInfo listXw(CphSearch param) {
// boolean hasRole = RoleBool.isXw(getUserId(),_postService);
boolean ejxysj = RoleBool.isEjxysj(getUserId(), _postService);
if(ejxysj){
if (ejxysj) {
param.setDeptId(getDeptId());
startPage();
if (param.getStep()==null) {
if (param.getStep() == null) {
param.setStep("3");
}
param.setUserName(getUsername());
List<SrsKnrdApply> list = srsKnrdApplyService.listView(param);
return getDataTable(list);
}else{
} else {
List<String> list = new ArrayList<>();
return getDataTable(list);
}
@@ -96,14 +96,14 @@ public class SrsKnrdApplyController extends BaseController
@PostMapping("/countXw")
@ApiOperation("查询学务下的学生申请的列表")
public AjaxResult countXw(CphSearch param){
public AjaxResult countXw(CphSearch param) {
boolean ejxysj = RoleBool.isEjxysj(getUserId(), _postService);
if(ejxysj){
if (ejxysj) {
param.setDeptId(getDeptId());
param.setUserName(getUsername());
List<SrsKnrdApply> list = srsKnrdApplyService.countXw(param);
return AjaxResult.success(list);
}else{
} else {
List<String> list = new ArrayList<>();
return AjaxResult.success(list);
}
@@ -111,17 +111,17 @@ public class SrsKnrdApplyController extends BaseController
@GetMapping("/listFdy")
@ApiOperation("查询辅导员下的学生申请的列表")
public TableDataInfo listFdy(CphSearch param){
boolean hasRole = RoleBool.isFdy(getUserId(),_postService);
if(hasRole){
public TableDataInfo listFdy(CphSearch param) {
boolean hasRole = RoleBool.isFdy(getUserId(), _postService);
if (hasRole) {
param.setTNo(getUsername());
startPage();
if (param.getStep()==null) {
if (param.getStep() == null) {
param.setStep("2");
}
List<SrsKnrdApply> list = srsKnrdApplyService.listView(param);
return getDataTable(list);
}else{
} else {
List<String> list = new ArrayList<>();
return getDataTable(list);
}
@@ -130,7 +130,7 @@ public class SrsKnrdApplyController extends BaseController
@GetMapping("/listOwn")
@ApiOperation("查询学生自己申请的列表")
public TableDataInfo listOwn(SrsKnrdApply srsKnrdApply){
public TableDataInfo listOwn(SrsKnrdApply srsKnrdApply) {
String stuNo = getUsername();
startPage();
srsKnrdApply.setXh(stuNo);
@@ -139,7 +139,6 @@ public class SrsKnrdApplyController extends BaseController
}
/**
* 查询困难认定列表
*/
@@ -156,8 +155,7 @@ public class SrsKnrdApplyController extends BaseController
*/
@Log(title = "困难认定", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, SrsKnrdApply srsKnrdApply)
{
public void export(HttpServletResponse response, SrsKnrdApply srsKnrdApply) {
List<SrsKnrdApply> list = srsKnrdApplyService.selectSrsKnrdApplyList(srsKnrdApply);
ExcelUtil<SrsKnrdApply> util = new ExcelUtil<SrsKnrdApply>(SrsKnrdApply.class);
util.exportExcel(response, list, "困难认定数据");
@@ -167,29 +165,26 @@ public class SrsKnrdApplyController extends BaseController
* 获取困难认定详细信息
*/
@GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") Long id)
{
public AjaxResult getInfo(@PathVariable("id") Long id) {
SrsKnrdApply srsKnrdApply = srsKnrdApplyService.selectSrsKnrdApplyById(id);
boolean isStu = RoleBool.isStu(getUserId(), _roleService);
if(isStu){
if (isStu) {
String stuNo = getUsername();
if(srsKnrdApply.getXh().equals(stuNo)){
if (srsKnrdApply.getXh().equals(stuNo)) {
return success(srsKnrdApply);
}
else{
} else {
return error("无权访问");
}
}else{
} else {
return success(srsKnrdApply);
}
}
//获取当前学年
@PostMapping(value = "/findByXhAndApplyYear")
public AjaxResult findByXhAndApplyYear(@RequestBody SrsKnrdApply srsKnrdApply)
{
public AjaxResult findByXhAndApplyYear(@RequestBody SrsKnrdApply srsKnrdApply) {
return success(srsKnrdApplyService.selectByXhAndYear(srsKnrdApply));
}
@@ -197,60 +192,60 @@ public class SrsKnrdApplyController extends BaseController
@Autowired
private TokenService tokenService;
@GetMapping( "/xh")
public AjaxResult getInfoxh(HttpServletRequest request)
{
@GetMapping("/xh")
public AjaxResult getInfoxh(HttpServletRequest request) {
LoginUser loginUser = tokenService.getLoginUser(request);
return success(srsKnrdApplyService.getInfoxh(loginUser.getUser().getUserName()));
}
@GetMapping( "/getStuByXh")
public AjaxResult getStuByXh(String xh)
{
@GetMapping("/getStuByXh")
public AjaxResult getStuByXh(String xh) {
SrsStudent infoxh = srsKnrdApplyService.getInfoxh(xh);
if(infoxh==null){
if (infoxh == null) {
return error("学号错误,没有这个学生");
}
return success();
}
/**
* 新增困难认定
*/
@Log(title = "学生新增困难认定", businessType = BusinessType.INSERT)
@PostMapping("/add")
public AjaxResult add(@RequestBody SrsKnrdApply srsKnrdApply)
{
public AjaxResult add(@RequestBody SrsKnrdApply srsKnrdApply) {
BeanTrimmer.trimFields(srsKnrdApply);
return srsKnrdApplyService.insertSrsKnrdApply(srsKnrdApply);
}
/**
* 修改困难认定
*/
@Log(title = "困难认定", businessType = BusinessType.UPDATE)
@PostMapping("/edit")
public AjaxResult edit(@RequestBody SrsKnrdApply srsKnrdApply)
{
public AjaxResult edit(@RequestBody SrsKnrdApply srsKnrdApply) {
SrsKnrdApply result = srsKnrdApplyService.selectSrsKnrdApplyById(srsKnrdApply.getId());
Long step = result.getStep();
if(step != 1 && step !=0){ //学生只能看不能操作
boolean isStudent = RoleBool.isStu(getUserId(),_roleService);
if(isStudent){
if (step != 1 && step != 0) { //学生只能看不能操作
boolean isStudent = RoleBool.isStu(getUserId(), _roleService);
if (isStudent) {
return AjaxResult.error("操作失败,权限不足!");
}
if(step == 2) {
if (step == 2) {
boolean isFdy = RoleBool.isFdy(getUserId(), _postService);
if (!isFdy) {
return AjaxResult.error("操作失败,权限不足!");
}
}
if(step == 3){
if (step == 3) {
boolean ejxysj = RoleBool.isEjxysj(getUserId(), _postService);
if (!ejxysj) {
return AjaxResult.error("操作失败,权限不足!");
}
}
if(step == 4){
boolean isJwc = RoleBool.isJwc(getUserId(),_postService);
if (step == 4) {
boolean isJwc = RoleBool.isJwc(getUserId(), _postService);
if (!isJwc) {
return AjaxResult.error("操作失败,权限不足!");
}
@@ -260,24 +255,25 @@ public class SrsKnrdApplyController extends BaseController
BeanTrimmer.trimFields(srsKnrdApply);
return toAjax(srsKnrdApplyService.updateSrsKnrdApply(srsKnrdApply));
}
/**
* 批量困难认定
*/
@Log(title = "困难认定", businessType = BusinessType.UPDATE)
@PostMapping("/updateAllSrsKnrdApply")
public AjaxResult updateAllSrsKnrdApply(@RequestBody SrsHandAllKnrd srsKnrdApply)
{
public AjaxResult updateAllSrsKnrdApply(@RequestBody SrsHandAllKnrd srsKnrdApply) {
return toAjax(srsKnrdApplyService.updateAllSrsKnrdApply(srsKnrdApply));
}
/**
* 删除困难认定
*/
@Log(title = "困难认定", businessType = BusinessType.DELETE)
@GetMapping("/delete/{ids}")
public AjaxResult remove(@PathVariable Long[] ids)
{
public AjaxResult remove(@PathVariable Long[] ids) {
return toAjax(srsKnrdApplyService.deleteSrsKnrdApplyByIds(ids));
}
@Autowired
private ISrsStudentService srsStudentService;
@@ -285,9 +281,10 @@ public class SrsKnrdApplyController extends BaseController
private ICphStuExtraInfoService cphStuExtraInfoService;
@Autowired
private IRtStuDisciplinaryApplicationService rtStuDisciplinaryApplicationService;
//学生基础信息校验
@PostMapping("/infoCheck")
public AjaxResult infoCheck(){
public AjaxResult infoCheck() {
AjaxResult ajaxResult = new AjaxResult();
String stuNo = getUsername();
@@ -297,24 +294,24 @@ public class SrsKnrdApplyController extends BaseController
check(res1);
check(res2);
if(rtStuDisciplinaryApplicationService.selectRtStuDisciplinaryApplicationByStuNo(stuNo)){
Map map = new HashMap<String,String>();
map.put("code",1);
ajaxResult.put("code",0 );
ajaxResult.put("data",map);
ajaxResult.put("msg","你当前处于学校处分状态,不允许申请贫困生条件");
if (rtStuDisciplinaryApplicationService.selectRtStuDisciplinaryApplicationByStuNo(stuNo)) {
Map map = new HashMap<String, String>();
map.put("code", 1);
ajaxResult.put("code", 0);
ajaxResult.put("data", map);
ajaxResult.put("msg", "你当前处于学校处分状态,不允许申请贫困生条件");
return ajaxResult;
}
ajaxResult.put("code",200);
ajaxResult.put("code", 200);
return ajaxResult;
}catch (Exception e){
Map map = new HashMap<String,String>();
map.put("code",0);
map.put("info",e.getMessage());
ajaxResult.put("code",0);
ajaxResult.put("data",map);
ajaxResult.put("msg","请先填写完成个人信息中的重要信息和其他信息");
} catch (Exception e) {
Map map = new HashMap<String, String>();
map.put("code", 0);
map.put("info", e.getMessage());
ajaxResult.put("code", 0);
ajaxResult.put("data", map);
ajaxResult.put("msg", "请先填写完成个人信息中的重要信息和其他信息");
return ajaxResult;
}
@@ -324,17 +321,17 @@ public class SrsKnrdApplyController extends BaseController
//获取所有字段
final Class<?> clazz = obj.getClass();
Field[] fields = clazz.getDeclaredFields();
for (Field field:fields) {
for (Field field : fields) {
field.setAccessible(true);
NotNull notNull = field.getAnnotation(NotNull.class);
String name = field.getName();//字段名
Type type = field.getGenericType();//字段类型
if(notNull != null){
if (notNull != null) {
Class<?> fieldClazz = field.getType();
Object fieldObj = field.get(obj);
if(field.get(obj) == null || "".equals(field.get(obj))){
if (field.get(obj) == null || "".equals(field.get(obj))) {
throw new Exception(notNull.value());
}
// //是数组
@@ -350,7 +347,7 @@ public class SrsKnrdApplyController extends BaseController
}
@PostMapping("/valid")
public AjaxResult valid(@RequestBody SrsKnrdApply apply){
public AjaxResult valid(@RequestBody SrsKnrdApply apply) {
AjaxResult ajaxResult = new AjaxResult();
// SrsKnrdApply srsKnrdApply = new SrsKnrdApply();
String stuNo = getUsername();
@@ -358,54 +355,54 @@ public class SrsKnrdApplyController extends BaseController
// SrsStuYear srsStuYear = srsStuYearService.listEnableYear().get(0);
// apply.setStuYearId(srsStuYear.getId());
SrsKnrdApply vaildResult = srsKnrdApplyService.selectByXhAndYear(apply);
if(vaildResult == null ){
ajaxResult.put("valid",1);
}else{
ajaxResult.put("valid",0);
if (vaildResult == null) {
ajaxResult.put("valid", 1);
} else {
ajaxResult.put("valid", 0);
}
return ajaxResult;
}
@PostMapping("/fdySave")
public AjaxResult fdySave(@RequestBody SrsKnrdApply srsKnrdApply){
public AjaxResult fdySave(@RequestBody SrsKnrdApply srsKnrdApply) {
int i = srsKnrdApplyService.fdySave(srsKnrdApply);
return toAjax(i);
}
@PostMapping("/getCurrentYear")
public AjaxResult getCurrentYear(){
public AjaxResult getCurrentYear() {
List<SrsStuYear> srsStuYears = srsStuYearService.listEnableYear();
return success(srsStuYears.get(0));
}
@PostMapping("/reject")
public AjaxResult reject(@RequestBody SrsKnrdApprovalRecord record){
public AjaxResult reject(@RequestBody SrsKnrdApprovalRecord record) {
return success(srsKnrdApplyService.reject(record));
}
@PostMapping("/jwcNext")
@ApiOperation("查询学工下的学生申请的列表")
public AjaxResult jwcNext(CphSearch param){
public AjaxResult jwcNext(CphSearch param) {
boolean hasRole = RoleBool.isJwc(getUserId(),_postService);
if(hasRole){
boolean hasRole = RoleBool.isJwc(getUserId(), _postService);
if (hasRole) {
startPage();
if (param.getStep()==null) {
if (param.getStep() == null) {
param.setStep("4");
}
List<SrsKnrdApply> list = srsKnrdApplyService.listView(param);
if(list.size() != 0){
if (list.size() != 0) {
SrsKnrdApply srsKnrdApply = list.get(0);
//锁定
srsKnrdApplyService.lock(srsKnrdApply);
return AjaxResult.success(srsKnrdApply);
}else{
} else {
return AjaxResult.success(null);
}
}else{
} else {
return AjaxResult.success(null);
}
}
@@ -413,44 +410,45 @@ public class SrsKnrdApplyController extends BaseController
@PostMapping("/fdyNext")
@ApiOperation("查询学工下的学生申请的列表")
public AjaxResult fdyNext(CphSearch param) {
boolean hasRole = RoleBool.isFdy(getUserId(),_postService);
if(hasRole){
boolean hasRole = RoleBool.isFdy(getUserId(), _postService);
if (hasRole) {
param.setTNo(getUsername());
startPage();
if (param.getStep()==null) {
if (param.getStep() == null) {
param.setStep("2");
}
List<SrsKnrdApply> list = srsKnrdApplyService.listView(param);
if(list.size() != 0){
if (list.size() != 0) {
return AjaxResult.success(list.get(0));
}else{
} else {
return AjaxResult.success(null);
}
}else{
} else {
return AjaxResult.success(null);
}
}
@PostMapping("/xwNext")
@ApiOperation("查询学务下的学生申请的列表")
public AjaxResult xwNext(CphSearch param){
public AjaxResult xwNext(CphSearch param) {
// boolean hasRole = RoleBool.isXw(getUserId(),_postService);
boolean ejxysj = RoleBool.isEjxysj(getUserId(), _postService);
if( ejxysj){
if (ejxysj) {
param.setDeptId(getDeptId());
startPage();
if (param.getStep()==null) {
if (param.getStep() == null) {
param.setStep("3");
}
param.setUserName(getUsername());
List<SrsKnrdApply> list = srsKnrdApplyService.listView(param);
if(list.size() != 0){
if (list.size() != 0) {
return AjaxResult.success(list.get(0));
}else{
} else {
return AjaxResult.success(null);
}
}else{
} else {
List<String> list = new ArrayList<>();
return AjaxResult.success(null);
}
@@ -460,9 +458,9 @@ public class SrsKnrdApplyController extends BaseController
@ApiOperation("困难认定撤回")
public AjaxResult revoke(@RequestBody SrsKnrdApply srsKnrdApply) {
int revoke = srsKnrdApplyService.revoke(srsKnrdApply);
if(revoke > 0){
if (revoke > 0) {
return AjaxResult.success("操作成功!");
}else{
} else {
return AjaxResult.error("操作失败!");
}
@@ -473,9 +471,9 @@ public class SrsKnrdApplyController extends BaseController
@ApiOperation("困难认定超级撤回")
public AjaxResult fdyRevoke(@RequestBody SrsKnrdApply srsKnrdApply) {
int revoke = srsKnrdApplyService.fdyRevoke(srsKnrdApply);
if(revoke > 0){
if (revoke > 0) {
return AjaxResult.success("操作成功!");
}else{
} else {
return AjaxResult.error("操作失败!");
}
@@ -484,9 +482,9 @@ public class SrsKnrdApplyController extends BaseController
@PostMapping("/lock")
public AjaxResult lock(@RequestBody SrsKnrdApply srsKnrdApply) {
int lock = srsKnrdApplyService.lock(srsKnrdApply);
if(lock > 0){
if (lock > 0) {
return AjaxResult.success("操作成功!");
}else{
} else {
return AjaxResult.error("操作失败!");
}
@@ -495,9 +493,9 @@ public class SrsKnrdApplyController extends BaseController
@PostMapping("/unlock")
public AjaxResult unlock(@RequestBody SrsKnrdApply srsKnrdApply) {
int unLock = srsKnrdApplyService.unlock(srsKnrdApply);
if(unLock > 0){
if (unLock > 0) {
return AjaxResult.success("操作成功!");
}else{
} else {
return AjaxResult.error("操作失败!");
}
}
@@ -506,11 +504,11 @@ public class SrsKnrdApplyController extends BaseController
//教务处一键审核
@PostMapping("/jwcUpdateAll")
@ApiOperation("查询学工下的学生申请的列表")
public AjaxResult jwcUpdateAll(@RequestBody SrsHandAllKnrd srsKnrdApply){
boolean hasRole = RoleBool.isJwc(getUserId(),_postService);
if(hasRole){
public AjaxResult jwcUpdateAll(@RequestBody SrsHandAllKnrd srsKnrdApply) {
boolean hasRole = RoleBool.isJwc(getUserId(), _postService);
if (hasRole) {
CphSearch param = new CphSearch();
if (param.getStep()==null) {
if (param.getStep() == null) {
param.setStep("4");
}
List<SrsKnrdApply> list = srsKnrdApplyService.listView(param);
@@ -523,7 +521,7 @@ public class SrsKnrdApplyController extends BaseController
String formatDate = format.format(new Date());
srsKnrdApply.setXsqmrq(formatDate);
return toAjax(srsKnrdApplyService.updateAllSrsKnrdApply(srsKnrdApply));
}else{
} else {
return toAjax(0);
}
@@ -531,8 +529,7 @@ public class SrsKnrdApplyController extends BaseController
// 更新签名
@PostMapping("/updateSignature")
public AjaxResult updateSignature(@RequestBody CphSearch cphSearch){
public AjaxResult updateSignature(@RequestBody CphSearch cphSearch) {
return AjaxResult.success(srsKnrdApplyService.updateSignature(cphSearch));

View File

@@ -299,6 +299,16 @@ public class SrsZxjApplyController extends BaseController {
return toAjax(i);
}
@PostMapping("/updateSqly")
@ApiOperation("修改申请理由sqly")
public AjaxResult updateSqly(@RequestBody SrsZxjApply apply) {
if (apply == null || apply.getId() == null || apply.getSqly() == null) {
return AjaxResult.error("参数不完整");
}
int rows = srsZxjApplyService.updateSqly(apply.getId(), apply.getSqly());
return toAjax(rows);
}
@PostMapping("/nopass")
@ApiOperation("新增【贫困生申请】")

View File

@@ -1,4 +1,4 @@
package com.srs.comprehensive.controller;
package com.srs.web.controller.comprehensive;
import java.util.List;
import javax.servlet.http.HttpServletResponse;

View File

@@ -181,6 +181,9 @@ public class SrsDormitoryStudentController extends BaseController {
if (hasRole) {
DomInfo dorm = _dormService.getDormHas(dto.getDormitoryId());
SrsStudent stu = _stuService.getStuInfo(dto.getStuNo());
if (stu == null) {
return AjaxResult.error("学号不存在");
}
QueryWrapper<SrsDormitoryStudent> query = new QueryWrapper<>();
query.eq("stu_no", dto.getStuNo());
SrsDormitoryStudent find = srsDormitoryStudentService.getOne(query);
@@ -229,6 +232,9 @@ public class SrsDormitoryStudentController extends BaseController {
public AjaxResult addCheckInInformation(@RequestBody StudentDormitoryDto dto) {
DomInfo dorm = _dormService.getDormHas(dto.getDormitoryId());
SrsStudent stu = _stuService.getStuInfo(dto.getStuNo());
if (stu == null) {
return AjaxResult.error("学号不存在");
}
QueryWrapper<SrsDormitoryStudent> query = new QueryWrapper<>();
query.eq("stu_no", dto.getStuNo());
SrsDormitoryStudent find = srsDormitoryStudentService.getOne(query);
@@ -331,7 +337,8 @@ public class SrsDormitoryStudentController extends BaseController {
@PostMapping("/update")
public AjaxResult update(@RequestBody StudentDormitoryDto studentDormitoryDto) {
SrsDormitoryStudent dormitoryStudent = new SrsDormitoryStudent();
if(studentDormitoryDto.getIsInStudentsleep().equals("")||studentDormitoryDto.getIsInStudentsleep().equals("外宿")||studentDormitoryDto.getIsInStudentsleep().equals("外出实习")){
String sleep = studentDormitoryDto.getIsInStudentsleep();
if("".equals(sleep) || "外宿".equals(sleep) || "外出实习".equals(sleep)){
dormitoryStudent.setId(studentDormitoryDto.getId());
dormitoryStudent.setDormitoryId(null);
dormitoryStudent.setBedId(null);
@@ -339,9 +346,13 @@ public class SrsDormitoryStudentController extends BaseController {
dormitoryStudent.setIsDormitoryHead(0);
dormitoryStudent.setStatus(0);
dormitoryStudent.setCheckinTime(null);
dormitoryStudent.setIsInStudentsleep(studentDormitoryDto.getIsInStudentsleep());
dormitoryStudent.setIsInStudentsleep(sleep);
}else{
if (studentDormitoryDto.getCheckinTime() != null) {
dormitoryStudent.setCheckinTime(studentDormitoryDto.getCheckinTime().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime());
} else {
dormitoryStudent.setCheckinTime(null);
}
BeanUtils.copyProperties(studentDormitoryDto, dormitoryStudent);
}
//boolean b = srsDormitoryStudentService.updateById(dormitoryStudent);

View File

@@ -15,7 +15,7 @@ srs:
addressEnabled: false
# 验证码类型 math 数组计算 char 字符验证
captchaType: math
url: http://zhxg:gxsdxy.cn/srs/prod_api/
url: https://zhxg.gxsdxy.cn/srs/prod_api/
# 开发环境配置
@@ -64,8 +64,8 @@ spring:
# 国际化资源文件路径
basename: i18n/messages
profiles:
# active: druid #正式环境
active: dev #测试环境
active: druid #正式环境
# active: dev #测试环境
# 文件上传
servlet:
multipart:
@@ -81,15 +81,15 @@ spring:
# redis 配置
redis:
# 地址
# host: localhost #正式环境redis
host: 47.112.118.149 #测试开发地址
host: localhost #正式环境redis
# host: 47.112.118.149 #测试开发地址
# 端口默认为6379
port: 6379
# 数据库索引
database: 0
# 密码SSSS
password: Houpuyfb #测试开发密码
# password: #正式环境密码
# password: Houpuyfb #测试开发密码
password: #正式环境密码
# 连接超时时间
timeout: 10s
lettuce:
@@ -180,15 +180,15 @@ app:
casEnable: false
server:
host:
url: http://zhxgjava.gxsdxy.cn
url: https://zhxgjava.gxsdxy.cn
#应用登录地址
login_url: /
#应用登出地址
logout_url: /logout
#前端登录地址
web_url: http://zhxg.gxsdxy.cn/cas/#/index
web_url: https://zhxg.gxsdxy.cn/cas/#/index
#移动端登录地址
wab_url: http://zhxg.gxsdxy.cn/wab/#/pages/index/index
wab_url: https://zhxg.gxsdxy.cn/wab/
wechat:
corpId: wx129e6bf0f36b8b3d
secret: qoNhKNJc2vCeV0700u5d0F7wLFX2U_uUx3YC1PYuwL0

View File

@@ -4,6 +4,7 @@ import java.util.List;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import com.srs.comprehensive.domain.SrsZxjApply;
import com.srs.comprehensive.domain.Vo.CphSearch;
@@ -107,4 +108,9 @@ public interface SrsZxjApplyMapper extends BaseMapper<SrsZxjApply> {
int updateFdySignature(CphSearch cphSearch);
int updateEjxySignature(CphSearch cphSearch);
int updateScSignature(CphSearch cphSearch);
/**
* 仅更新申请理由sqly
*/
int updateSqly(@Param("id") Long id, @Param("sqly") String sqly);
}

View File

@@ -95,4 +95,9 @@ public interface ISrsZxjApplyService extends IService<SrsZxjApply> {
List<SrsZxjApply> countXw(CphSearch param);
int updateSignature(CphSearch cphSearch);
/**
* 仅更新申请理由sqly
*/
int updateSqly(Long id, String sqly);
}

View File

@@ -47,9 +47,9 @@ public class KnzzTufaApplyServiceImpl extends ServiceImpl<KnzzTufaApplyMapper,Kn
if(!Objects.equals(apply.getStuNo(), getUsername())){
throw new Exception("只能重新申请自己的申请");
}
if(!Objects.equals(apply.getApplyStatus(), "10")){
throw new Exception("申请已处理");
}
// if(!Objects.equals(apply.getApplyStatus(), "10")){
// throw new Exception("申请已处理");
// }
UpdateWrapper<KnzzTufaApply> updateWrapper = new UpdateWrapper<>();
updateWrapper.eq("id", apply.getId())
// 需要重置的审批流程相关字段
@@ -225,9 +225,9 @@ public class KnzzTufaApplyServiceImpl extends ServiceImpl<KnzzTufaApplyMapper,Kn
if(!Objects.equals(apply.getStuNo(), getUsername())){
throw new Exception("只能取消自己的申请");
}
if(!Objects.equals(apply.getApplyStatus(), "1")){
throw new Exception("申请已处理");
}
// if(!Objects.equals(apply.getApplyStatus(), "1")){
// throw new Exception("申请已处理");
// }
int res = knzzTufaApplyMapper.deleteById(id);
if(res == 0){
throw new Exception("取消失败");
@@ -248,13 +248,13 @@ public class KnzzTufaApplyServiceImpl extends ServiceImpl<KnzzTufaApplyMapper,Kn
throw new Exception("申请不存在");
}
if(!Objects.equals(apply.getStuNo(), getUsername())){
throw new Exception("只能修改自己的申请");
}
// if(!Objects.equals(apply.getStuNo(), getUsername())){
// throw new Exception("只能修改自己的申请");
// }
if(!Objects.equals(apply.getApplyStatus(), "1")){
throw new Exception("申请已处理");
}
// if(!Objects.equals(apply.getApplyStatus(), "1")){
// throw new Exception("申请已处理");
// }
apply.helpHis = param.helpHis;
apply.yearMoney = param.yearMoney;
@@ -263,6 +263,15 @@ public class KnzzTufaApplyServiceImpl extends ServiceImpl<KnzzTufaApplyMapper,Kn
apply.applyReason = param.applyReason;
apply.applySign = param.applySign;
apply.hardFile = param.hardFile;
apply.bankCard = param.bankCard;
apply.jthk = param.jthk;
apply.hardCondition = param.hardCondition;
apply.familyAddr = param.familyAddr;
apply.postCode = param.postCode;
// 家庭成员列表不在辅导员修改范围,保留原值
if (param.applyStatus != null && !param.applyStatus.isEmpty()) {
apply.applyStatus = param.applyStatus;
}
apply.setUpdateTime(getNowDate());
apply.setUpdateBy(getUsername());

View File

@@ -142,13 +142,13 @@ public class KnzzZsgApplyServiceImpl extends ServiceImpl<KnzzZsgApplyMapper,Knzz
throw new Exception("申请不存在");
}
if(!Objects.equals(apply.getStuNo(), getUsername())){
throw new Exception("只能修改自己的申请");
}
if(!Objects.equals(apply.getApplyStatus(), "1")){
throw new Exception("申请已处理");
}
// if(!Objects.equals(apply.getStuNo(), getUsername())){
// throw new Exception("只能修改自己的申请");
// }
//
// if(!Objects.equals(apply.getApplyStatus(), "1")){
// throw new Exception("申请已处理");
// }
apply.setBankCard(param.getBankCard());
apply.setBankAddr(param.getBankAddr());
apply.setStuPhone(param.getStuPhone());
@@ -167,6 +167,7 @@ public class KnzzZsgApplyServiceImpl extends ServiceImpl<KnzzZsgApplyMapper,Knzz
apply.setUpdateTime(getNowDate());
apply.setUpdateBy(getUsername());
apply.setDiplomaCertificate(param.getDiplomaCertificate());
apply.setApplyStatus(param.getApplyStatus());
int res = knzzZsgApplyMapper.updateById(apply);
if(res == 0){
throw new Exception("修改失败");

View File

@@ -156,13 +156,13 @@ public class KnzzZzqApplyServiceImpl extends ServiceImpl<KnzzZzqApplyMapper,Knzz
throw new Exception("申请不存在");
}
if(!Objects.equals(apply.getStuNo(), getUsername())){
throw new Exception("只能修改自己的申请");
}
if(!Objects.equals(apply.getApplyStatus(), "1")){
throw new Exception("申请已处理");
}
// if(!Objects.equals(apply.getStuNo(), getUsername())){
// throw new Exception("只能修改自己的申请");
// }
//
// if(!Objects.equals(apply.getApplyStatus(), "1")){
// throw new Exception("申请已处理");
// }
apply.inTime = param.inTime;
apply.helpHis = param.helpHis;
@@ -176,6 +176,7 @@ public class KnzzZzqApplyServiceImpl extends ServiceImpl<KnzzZzqApplyMapper,Knzz
apply.applyReason = param.applyReason;
apply.applyFile = param.applyFile;
apply.applySign = param.applySign;
apply.applyStatus = param.applyStatus;
apply.setUpdateTime(getNowDate());
apply.setUpdateBy(getUsername());

View File

@@ -1,28 +1,30 @@
package com.srs.comprehensive.service.impl;
import java.util.Calendar;
import static com.srs.common.utils.SecurityUtils.getUserId;
import java.util.Date;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.srs.common.core.domain.AjaxResult;
import com.srs.common.core.domain.entity.SysUser;
import com.srs.common.core.domain.model.LoginUser;
import com.srs.common.utils.SecurityUtils;
import com.srs.comprehensive.domain.*;
import com.srs.comprehensive.domain.SrsFemilyMenber;
import com.srs.comprehensive.domain.SrsHandAllKnrd;
import com.srs.comprehensive.domain.SrsKnrdApply;
import com.srs.comprehensive.domain.SrsKnrdApprovalRecord;
import com.srs.comprehensive.domain.SrsStuYear;
import com.srs.comprehensive.domain.SrsStudent;
import com.srs.comprehensive.domain.Vo.CphSearch;
import com.srs.comprehensive.mapper.SrsKnrdApplyMapper;
import com.srs.comprehensive.mapper.SrsKnrdApprovalRecordMapper;
import com.srs.comprehensive.mapper.SrsStuYearMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Service;
import com.srs.comprehensive.mapper.SrsKnrdApplyMapper;
import com.srs.comprehensive.service.ISrsKnrdApplyService;
import org.springframework.transaction.annotation.Transactional;
import static com.srs.common.utils.SecurityUtils.getUserId;
import static com.srs.common.utils.SecurityUtils.getUsername;
/**
* 困难认定Service业务层处理

View File

@@ -276,6 +276,9 @@ public class SrsStudentServiceImpl extends ServiceImpl<SrsStudentMapper, SrsStud
.last("limit 1");
//SrsStudent stu = srsStudentMapper.selectOne(queryWrapper);
SrsStudent stu = srsStudentMapper.selectSrsStudentByStuNo(stuNo);
if(stu == null){
return null;
}
if(stu.getClassId() != null){
SrsClass srsClass = srsClassMapper.selectById(stu.getClassId());
if(srsClass != null){

View File

@@ -334,4 +334,9 @@ public class SrsZxjApplyServiceImpl extends ServiceImpl<SrsZxjApplyMapper, SrsZx
return (row1 + row2 + row3 + row4);
}
@Override
public int updateSqly(Long id, String sqly) {
return srsZxjApplyMapper.updateSqly(id, sqly);
}
}

View File

@@ -267,7 +267,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
left join view_stu_info as b on a.stu_no = b.stu_no
left join srs_stu_year as c on a.stu_year_id = c.id
left join cph_teacher as d on a.fdy_no = d.employee_id
left join qgzx_teacher as e on a.dept_no = d.employee_id
left join qgzx_teacher as e on a.dept_no = e.employee_id
left join qgzx_teacher as f on a.xg_no = f.employee_id
left join qgzx_teacher as g on a.leader_no = g.employee_id
<where>

View File

@@ -192,7 +192,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<sql id="selectSrsKnrdApplyVo">
select * from srs_knrd_apply
select t.knrd_type as knlx, a.*
from srs_knrd_apply as a
left join srs_knrd_type as t
on t.stu_no = a.xh
and t.stu_year_id = a.stu_year_id
</sql>
<select id="selectSrsKnrdApplyList" parameterType="SrsKnrdApply" resultMap="SrsKnrdApplyResult">
@@ -247,11 +251,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="selectSrsKnrdApplyById" parameterType="Long" resultMap="SrsKnrdApplyResult">
<include refid="selectSrsKnrdApplyVo"/>
where id = #{id}
where a.id = #{id}
</select>
<select id="selectSrsKnrdApplyBysfz" resultType="com.srs.comprehensive.domain.SrsKnrdApply">
<include refid="selectSrsKnrdApplyVo"/>
where sfzhm = #{sfzhm} and stu_year_id = #{stuYearId}
where a.sfzhm = #{sfzhm} and a.stu_year_id = #{stuYearId}
</select>
<select id="selectsfzhm" resultType="com.srs.comprehensive.domain.SrsKnrdApply">
select * from srs_student where id_card=#{sfzhm}

View File

@@ -75,79 +75,90 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap>
<sql id="selectSrsZxjApplyVo">
select id, step, xm, xb, mz, zzmm, xh, rxsj, csny, dh, nj, xy, zy, bj, kndj, knlx, knlx2, rkzs, yzsr, rjyr, srly, jtcy, sqly, fdyqm, fdyqmrq, ejxyldqm, ejxyldqmrq, xsqm, xsqmrq, csdj, zzdj, zzls, zp,affix_id,status1,status2,status3,dz,yb,xxyjrq,apply_year,locked,level,
EXISTS(SELECT application_id FROM rt_stu_disciplinary_application rsda WHERE rsda.stu_no = srs_zxj_apply.xh and (penalty_status = 0 or penalty_status = 2)) as penalty_status0,
EXISTS(SELECT application_id FROM rt_stu_disciplinary_application rsda WHERE rsda.stu_no = srs_zxj_apply.xh and (penalty_status = 1 )) as penalty_status1,
EXISTS(SELECT application_id FROM rt_stu_disciplinary_application rsda WHERE rsda.stu_no = srs_zxj_apply.xh and (penalty_status = 3 )) as penalty_status3,
sfzhm,
gyhd,
bankCard,
bankAddr,
rjnsr,
bjyj,
bjyjdj,
ejxyyj,
ejxyyjdj,
xxyj,
xxqm,
stu_year_id,fdygh,fdymc,ejxyldmc,ejxyldgh,xxmc,xxgh
from srs_zxj_apply
select a.id, a.step, a.xm, a.xb, a.mz, a.zzmm, a.xh, a.rxsj, a.csny, a.dh, a.nj, a.xy, a.zy, a.bj, a.kndj,
t.knrd_type as knlx,
a.knlx2, a.rkzs, a.yzsr, a.rjyr, a.srly, a.jtcy, a.sqly, a.fdyqm, a.fdyqmrq, a.ejxyldqm, a.ejxyldqmrq,
a.xsqm, a.xsqmrq, a.csdj, a.zzdj, a.zzls, a.zp, a.affix_id, a.status1, a.status2, a.status3, a.dz, a.yb,
a.xxyjrq, a.apply_year, a.locked, a.level,
EXISTS(SELECT application_id FROM rt_stu_disciplinary_application rsda WHERE rsda.stu_no = a.xh and (penalty_status = 0 or penalty_status = 2)) as penalty_status0,
EXISTS(SELECT application_id FROM rt_stu_disciplinary_application rsda WHERE rsda.stu_no = a.xh and (penalty_status = 1 )) as penalty_status1,
EXISTS(SELECT application_id FROM rt_stu_disciplinary_application rsda WHERE rsda.stu_no = a.xh and (penalty_status = 3 )) as penalty_status3,
a.sfzhm,
a.gyhd,
a.bankCard,
a.bankAddr,
a.rjnsr,
a.bjyj,
a.bjyjdj,
a.ejxyyj,
a.ejxyyjdj,
a.xxyj,
a.xxqm,
a.stu_year_id, a.fdygh, a.fdymc, a.ejxyldmc, a.ejxyldgh, a.xxmc, a.xxgh
from srs_zxj_apply as a
left join srs_knrd_type as t
on t.stu_no = a.xh
and t.stu_year_id = a.stu_year_id
</sql>
<select id="selectSrsZxjApplyList" parameterType="SrsZxjApply" resultMap="SrsZxjApplyResult">
<include refid="selectSrsZxjApplyVo"/>
<where>
<if test="step != null "> and step = #{step}</if>
<if test="xm != null and xm != ''"> and xm = #{xm}</if>
<if test="xb != null and xb != ''"> and xb = #{xb}</if>
<if test="mz != null and mz != ''"> and mz = #{mz}</if>
<if test="zzmm != null and zzmm != ''"> and zzmm = #{zzmm}</if>
<if test="xh != null and xh != ''"> and xh = #{xh}</if>
<if test="rxsj != null and rxsj != ''"> and rxsj = #{rxsj}</if>
<if test="csny != null and csny != ''"> and csny = #{csny}</if>
<if test="dh != null and dh != ''"> and dh = #{dh}</if>
<if test="nj != null and nj != ''"> and nj = #{nj}</if>
<if test="xy != null and xy != ''"> and xy = #{xy}</if>
<if test="zy != null and zy != ''"> and zy = #{zy}</if>
<if test="bj != null and bj != ''"> and bj = #{bj}</if>
<if test="kndj != null and kndj != ''"> and kndj = #{kndj}</if>
<if test="knlx != null and knlx != ''"> and knlx = #{knlx}</if>
<if test="knlx2 != null and knlx2 != ''"> and knlx2 = #{knlx2}</if>
<if test="rkzs != null and rkzs != ''"> and rkzs = #{rkzs}</if>
<if test="yzsr != null and yzsr != ''"> and yzsr = #{yzsr}</if>
<if test="rjyr != null and rjyr != ''"> and rjyr = #{rjyr}</if>
<if test="srly != null and srly != ''"> and srly = #{srly}</if>
<if test="jtcy != null and jtcy != ''"> and jtcy = #{jtcy}</if>
<if test="sqly != null and sqly != ''"> and sqly = #{sqly}</if>
<if test="fdyqm != null and fdyqm != ''"> and fdyqm = #{fdyqm}</if>
<if test="fdyqmrq != null and fdyqmrq != ''"> and fdyqmrq = #{fdyqmrq}</if>
<if test="ejxyldqm != null and ejxyldqm != ''"> and ejxyldqm = #{ejxyldqm}</if>
<if test="ejxyldqmrq != null and ejxyldqmrq != ''"> and ejxyldqmrq = #{ejxyldqmrq}</if>
<if test="xsqm != null and xsqm != ''"> and xsqm = #{xsqm}</if>
<if test="xsqmrq != null and xsqmrq != ''"> and xsqmrq = #{xsqmrq}</if>
<if test="csdj != null and csdj != ''"> and csdj = #{csdj}</if>
<if test="zzdj != null and zzdj != ''"> and zzdj = #{zzdj}</if>
<if test="zzls != null and zzls != ''"> and zzls = #{zzls}</if>
<if test="zp != null and zp != ''"> and zp = #{zp}</if>
<if test="affixId != null and affixId != ''"> and affix_id = #{affixId}</if>
<if test="status1 != null and status1 != ''"> and status1 = #{status1}</if>
<if test="status2 != null and status2 != ''"> and status2 = #{status2}</if>
<if test="status3 != null and status3 != ''"> and status3 = #{status3}</if>
<if test="dz != null and dz != ''"> and dz = #{dz}</if>
<if test="yb != null and yb != ''"> and yb = #{yb}</if>
<if test="xxyjrq != null and xxyjrq != ''"> and xxyjrq = #{xxyjrq}</if>
<if test="applyYear != null and applyYear != ''"> and apply_year = #{applyYear}</if>
<if test="stuYearId != null and stuYearId != ''"> and stu_year_id = #{stuYearId}</if>
<if test="step != null "> and a.step = #{step}</if>
<if test="xm != null and xm != ''"> and a.xm = #{xm}</if>
<if test="xb != null and xb != ''"> and a.xb = #{xb}</if>
<if test="mz != null and mz != ''"> and a.mz = #{mz}</if>
<if test="zzmm != null and zzmm != ''"> and a.zzmm = #{zzmm}</if>
<if test="xh != null and xh != ''"> and a.xh = #{xh}</if>
<if test="rxsj != null and rxsj != ''"> and a.rxsj = #{rxsj}</if>
<if test="csny != null and csny != ''"> and a.csny = #{csny}</if>
<if test="dh != null and dh != ''"> and a.dh = #{dh}</if>
<if test="nj != null and nj != ''"> and a.nj = #{nj}</if>
<if test="xy != null and xy != ''"> and a.xy = #{xy}</if>
<if test="zy != null and zy != ''"> and a.zy = #{zy}</if>
<if test="bj != null and bj != ''"> and a.bj = #{bj}</if>
<if test="kndj != null and kndj != ''"> and a.kndj = #{kndj}</if>
<if test="knlx != null and knlx != ''"> and t.knrd_type = #{knlx}</if>
<if test="knlx2 != null and knlx2 != ''"> and a.knlx2 = #{knlx2}</if>
<if test="rkzs != null and rkzs != ''"> and a.rkzs = #{rkzs}</if>
<if test="yzsr != null and yzsr != ''"> and a.yzsr = #{yzsr}</if>
<if test="rjyr != null and rjyr != ''"> and a.rjyr = #{rjyr}</if>
<if test="srly != null and srly != ''"> and a.srly = #{srly}</if>
<if test="jtcy != null and jtcy != ''"> and a.jtcy = #{jtcy}</if>
<if test="sqly != null and sqly != ''"> and a.sqly = #{sqly}</if>
<if test="fdyqm != null and fdyqm != ''"> and a.fdyqm = #{fdyqm}</if>
<if test="fdyqmrq != null and fdyqmrq != ''"> and a.fdyqmrq = #{fdyqmrq}</if>
<if test="ejxyldqm != null and ejxyldqm != ''"> and a.ejxyldqm = #{ejxyldqm}</if>
<if test="ejxyldqmrq != null and ejxyldqmrq != ''"> and a.ejxyldqmrq = #{ejxyldqmrq}</if>
<if test="xsqm != null and xsqm != ''"> and a.xsqm = #{xsqm}</if>
<if test="xsqmrq != null and xsqmrq != ''"> and a.xsqmrq = #{xsqmrq}</if>
<if test="csdj != null and csdj != ''"> and a.csdj = #{csdj}</if>
<if test="zzdj != null and zzdj != ''"> and a.zzdj = #{zzdj}</if>
<if test="zzls != null and zzls != ''"> and a.zzls = #{zzls}</if>
<if test="zp != null and zp != ''"> and a.zp = #{zp}</if>
<if test="affixId != null and affixId != ''"> and a.affix_id = #{affixId}</if>
<if test="status1 != null and status1 != ''"> and a.status1 = #{status1}</if>
<if test="status2 != null and status2 != ''"> and a.status2 = #{status2}</if>
<if test="status3 != null and status3 != ''"> and a.status3 = #{status3}</if>
<if test="dz != null and dz != ''"> and a.dz = #{dz}</if>
<if test="yb != null and yb != ''"> and a.yb = #{yb}</if>
<if test="xxyjrq != null and xxyjrq != ''"> and a.xxyjrq = #{xxyjrq}</if>
<if test="applyYear != null and applyYear != ''"> and a.apply_year = #{applyYear}</if>
<if test="stuYearId != null and stuYearId != ''"> and a.stu_year_id = #{stuYearId}</if>
</where>
</select>
<select id="selectSrsZxjApplyById" parameterType="Long" resultMap="SrsZxjApplyResult">
<include refid="selectSrsZxjApplyVo"/>
where id = #{id}
where a.id = #{id}
</select>
<!-- 仅更新申请理由sqly -->
<update id="updateSqly">
update srs_zxj_apply
set sqly = #{sqly}
where id = #{id}
</update>
<!-- 获取下一个未审批的-->
<select id="nextApply" parameterType="CphSearch" resultMap="SrsZxjApplyResult">
select a.*
@@ -245,7 +256,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
a.zy as zy,
a.bj as bj,
a.kndj as kndj,
a.knlx as knlx,
t.knrd_type as knlx,
a.knlx2 as knlx2,
a.rkzs as rkzs,
a.yzsr as yzsr,
@@ -291,6 +302,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
left join srs_class as c on b.class_id = c.class_id
left join srs_majors as d on c.major_id = d.major_id
left join cph_teacher as e on c.teacher_id = e.teacher_id
left join srs_knrd_type as t on t.stu_no = a.xh and t.stu_year_id = a.stu_year_id
left join (
SELECT * FROM (
SELECT *,

View File

@@ -81,6 +81,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
right join srs_zxj_approval_record as r on r.apply_id = a.id
where
r.step != 0 and r.step != 1
and a.step != 0
<if test="step != null "> and r.step = #{step}</if>
<if test="tNo != null "> and e.employee_id = #{tNo}</if>
<if test="deptId != null "> and d.college_id = #{deptId}</if>

View File

@@ -17,6 +17,12 @@ public class FlowQueryVo {
@ApiModelProperty("流程名称")
private String name;
@ApiModelProperty("流程发起人名称")
private String startUserName;
@ApiModelProperty("提交时间(yyyy-MM-dd)")
private String deployTime;
@ApiModelProperty("开始时间")
private String startTime;

View File

@@ -80,7 +80,7 @@ public class BoStartListener implements ExecutionListener {
WeChatUtil weChatUtil = SpringUtils.getBean(WeChatUtil.class);
// 构造包含超链接的消息内容
String content = "您有待处理任务,<a href='http://zhxg.gxsdxy.cn/wab/#/pages/Approval/index'>请点击前往处理</a>";
String content = "您有待处理任务,<a href='https://zhxg.gxsdxy.cn/wab/#/pages/Approval/index'>请点击前往处理</a>";
// 步骤 4: 使用 userName 作为接收人发送消息
//weChatUtil.sendTextMessage(userName, content);
@@ -122,7 +122,7 @@ public class BoStartListener implements ExecutionListener {
WeChatUtil weChatUtil = SpringUtils.getBean(WeChatUtil.class);
// 构造包含超链接的消息内容
String content = "您有待处理任务,<a href='http://zhxg.gxsdxy.cn/wab/#/pages/Approval/index'>请点击前往处理</a>";
String content = "您有待处理任务,<a href='https://zhxg.gxsdxy.cn/wab/#/pages/Approval/index'>请点击前往处理</a>";
// 步骤 4: 使用 userName 作为接收人发送消息
weChatUtil.sendTextMessage(userName, content);

View File

@@ -90,7 +90,7 @@ public class CounselorListener implements ExecutionListener {
WeChatUtil weChatUtil = SpringUtils.getBean(WeChatUtil.class);
// 构造包含超链接的消息内容
String content = "您有待处理任务,<a href='http://zhxg.gxsdxy.cn/wab/#/pages/Approval/index'>请点击前往处理</a>";
String content = "您有待处理任务,<a href='https://zhxg.gxsdxy.cn/wab/#/pages/Approval/index'>请点击前往处理</a>";
// 步骤 4: 使用 userName 作为接收人发送消息
weChatUtil.sendTextMessage(userName, content);

View File

@@ -107,7 +107,9 @@ public class LeadAuditListener implements ExecutionListener {
//获取学工领导信息
String roleKey = "xgldsp"; //角色key
List<TeacherVo> xueDataInfo = leaveMapper.getShenDataInfo(roleKey);
if (xueDataInfo == null || xueDataInfo.isEmpty()) {
log.warn("未找到学工领导(roleKey={})信息,跳过该环节通知。", roleKey);
} else {
//查询指定用户的通知信息
notificationManage.setContent("您有一条【二级学院书记已提交请假申请审批】需待处理"); // 消息内容
notificationManage.setReceiver(Long.parseLong(xueDataInfo.get(0).getUserId().toString())); //接收人需添加appvoval//185043
@@ -122,11 +124,14 @@ public class LeadAuditListener implements ExecutionListener {
notificationManage.setContent("您有一条【学工领导已提交请假申请审批】需待处理"); // 消息内容
notificationManage.setSender(Long.parseLong(approval)); // 发送方
}
}
if(leaveDay >= 15 && leaveDay <= 30) {
//获取校领导信息
String roleKey = "xldsp"; //角色key
List<TeacherVo> lingDataInfo = leaveMapper.getShenDataInfo(roleKey);
if (lingDataInfo == null || lingDataInfo.isEmpty()) {
log.warn("未找到校领导(roleKey={})信息,跳过该环节通知。", roleKey);
} else {
notificationManage.setContent("您有一条【学工领导已提交请假申请审批】需待处理"); // 消息内容
notificationManage.setReceiver(lingDataInfo.get(0).getUserId()); //接收人185362
NotificationManage userManage = leaveMapper.selectCphMsgListForFlowable(notificationManage);
@@ -140,6 +145,7 @@ public class LeadAuditListener implements ExecutionListener {
notificationManage.setContent("您有一条【学院领导已提交请假申请审批】待处理"); // 消息内容
notificationManage.setSender(lingDataInfo.get(0).getUserId()); // 发送方185362
}
}
notificationManage.setReceiver(shenUserInfo.getUserId());
notificationManage.setCreateTime(DateUtils.getNowDate());
int res = leaveMapper.insertCphMsg(notificationManage);
@@ -149,7 +155,7 @@ public class LeadAuditListener implements ExecutionListener {
WeChatUtil weChatUtil = SpringUtils.getBean(WeChatUtil.class);
// 构造包含超链接的消息内容
String content = "您有待处理任务,<a href='http://zhxg.gxsdxy.cn/wab/#/pages/Approval/index'>请点击前往处理</a>";
String content = "您有待处理任务,<a href='https://zhxg.gxsdxy.cn/wab/#/pages/Approval/index'>请点击前往处理</a>";
// 步骤 4: 使用 userName 作为接收人发送消息
weChatUtil.sendTextMessage(userName, content);

View File

@@ -106,7 +106,7 @@ public class LeadEentListener implements ExecutionListener {
WeChatUtil weChatUtil = SpringUtils.getBean(WeChatUtil.class);
// 构造包含超链接的消息内容
String content = "您有待处理任务,<a href='http://zhxg.gxsdxy.cn/wab/#/pages/Approval/index'>请点击前往处理</a>";
String content = "您有待处理任务,<a href='https://zhxg.gxsdxy.cn/wab/#/pages/Approval/index'>请点击前往处理</a>";
// 步骤 4: 使用 userName 作为接收人发送消息
weChatUtil.sendTextMessage(userName, content);

View File

@@ -58,7 +58,7 @@ public class LeadStartListener implements ExecutionListener {
if (userName != null && !userName.isEmpty()) {
//查询指定用户的通知信息
NotificationManage notificationManage = new NotificationManage();
notificationManage.setContent("您有一条【辅导员已提交请假审批】待处理"); // 消息内容
notificationManage.setContent("您有一条【请假审批】待处理"); // 消息内容
notificationManage.setReceiver(Long.parseLong(approval));
NotificationManage userManage = leaveMapper.selectCphMsgListForFlowable(notificationManage);
if(userManage != null) {
@@ -68,7 +68,7 @@ public class LeadStartListener implements ExecutionListener {
}
//向系统发送通知
notificationManage.setContent("您有一条【二级学院书记已提交请假申请审批】待处理"); // 消息内容
notificationManage.setContent("您有一条【请假申请审批】待处理"); // 消息内容
notificationManage.setSender(Long.parseLong(approval)); // 发送方
notificationManage.setReceiver(updateDeptIdInfo.get(0).getUserId()); // 接收方
NotificationManage userManages = leaveMapper.selectCphMsgListForFlowable(notificationManage);
@@ -82,7 +82,7 @@ public class LeadStartListener implements ExecutionListener {
WeChatUtil weChatUtil = SpringUtils.getBean(WeChatUtil.class);
// 构造包含超链接的消息内容
String content = "您有待处理任务,<a href='http://zhxg.gxsdxy.cn/wab/#/pages/Approval/index'>请点击前往处理</a>";
String content = "您有待处理任务,<a href='https://zhxg.gxsdxy.cn/wab/#/pages/Approval/index'>请点击前往处理</a>";
// 步骤 4: 使用 userName 作为接收人发送消息
weChatUtil.sendTextMessage(userName, content);

View File

@@ -105,7 +105,7 @@ public class LeaveApproveListener implements ExecutionListener {
WeChatUtil weChatUtil = SpringUtils.getBean(WeChatUtil.class);
// 构造包含超链接的消息内容
String content = "您有待处理任务,<a href='http://zhxg.gxsdxy.cn/wab/#/pages/Approval/index'>请点击前往处理</a>";
String content = "您有待处理任务,<a href='https://zhxg.gxsdxy.cn/wab/#/pages/Approval/index'>请点击前往处理</a>";
// 步骤 4: 使用 userName 作为接收人发送消息
weChatUtil.sendTextMessage(userName, content); // 发送消息的方法

View File

@@ -81,7 +81,7 @@ public class LeaveStartApproveListener implements ExecutionListener {
WeChatUtil weChatUtil = SpringUtils.getBean(WeChatUtil.class);
// 构造包含超链接的消息内容
String content = "您有待处理任务,<a href='http://zhxg.gxsdxy.cn/wab/#/pages/Approval/index'>请点击前往处理</a>";
String content = "您有待处理任务,<a href='https://zhxg.gxsdxy.cn/wab/#/pages/Approval/index'>请点击前往处理</a>";
// 步骤 4: 使用 userName 作为接收人发送消息
weChatUtil.sendTextMessage(userName, content);

View File

@@ -40,6 +40,11 @@ public class SecondaryLeaderListener implements ExecutionListener {
//TeacherVo secondaryLeaderInfo = leaveMapper.getSecondaryLeaderInfo(deptId);
//delegateExecution.setVariable("approval", secondaryLeaderInfo.getUserId());
List<TeacherVo> secondaryLeaderInfo = leaveMapper.getSecondaryLeaderInfo(deptId);
// 空数据防护:未查询到二级学院书记信息则跳过设置与通知
if (secondaryLeaderInfo == null || secondaryLeaderInfo.isEmpty()) {
log.warn("未找到二级学院书记信息deptId={},跳过审批人设置与通知。", deptId);
return;
}
//由于这里查到了多个数据,由于时间原因,暂时还没有研究到工作流中多用户节点的同时进行(所以取了第一条数据用于发消息)
delegateExecution.setVariable("approval", secondaryLeaderInfo.get(0).getUserId());
@@ -85,7 +90,7 @@ public class SecondaryLeaderListener implements ExecutionListener {
// WeChatUtil weChatUtil = SpringUtils.getBean(WeChatUtil.class);
//
// // 构造包含超链接的消息内容
// String content = "您有待处理任务,<a href='http://zhxg.gxsdxy.cn/wab/#/pages/Approval/index'>请点击前往处理</a>";
// String content = "您有待处理任务,<a href='https://zhxg.gxsdxy.cn/wab/#/pages/Approval/index'>请点击前往处理</a>";
//
// // 步骤 4: 使用 userName 作为接收人发送消息
// //weChatUtil.sendTextMessage(userName, content);
@@ -117,7 +122,7 @@ public class SecondaryLeaderListener implements ExecutionListener {
WeChatUtil weChatUtil = SpringUtils.getBean(WeChatUtil.class);
// 构造包含超链接的消息内容
String content = "您有待处理任务,<a href='http://zhxg.gxsdxy.cn/wab/#/pages/Approval/index'>请点击前往处理</a>";
String content = "您有待处理任务,<a href='https://zhxg.gxsdxy.cn/wab/#/pages/Approval/index'>请点击前往处理</a>";
// 步骤 4: 使用 userName 作为接收人发送消息
weChatUtil.sendTextMessage(userName, content);

View File

@@ -60,7 +60,7 @@ public class ArchivingNotifyListener implements ExecutionListener {
List<String> userNameList = disciplinaryMapper.getUserNamesByUserIdList(userIdList);
if (userNameList != null && !userNameList.isEmpty()) {
String toUser = String.join("|", userNameList);
String weChatMessage = "您有一条新的学生违纪归档任务待处理,<a href='http://zhxg.gxsdxy.cn/wab/#/pages/Approval/index'>请点击前往处理</a>。";
String weChatMessage = "您有一条新的学生违纪归档任务待处理,<a href='https://zhxg.gxsdxy.cn/wab/#/pages/Approval/index'>请点击前往处理</a>。";
weChatUtil.sendTextMessage(toUser, weChatMessage);
log.info("已成功向归档角色 ({}) 发送企业微信通知。", ARCHIVING_ROLE_KEY);
} else {
@@ -73,7 +73,7 @@ public class ArchivingNotifyListener implements ExecutionListener {
String activityId = (nextElement != null) ? nextElement.getId() : "Activity_1agoizv"; // 节点的ID作为备用
String messageText = "您有一条新的【" + taskName + "】待办任务需要处理。";
String link = "<a href='http://zhxg.gxsdxy.cn/wab/#/pages/Approval/index'>请点击前往处理</a>。";
String link = "<a href='https://zhxg.gxsdxy.cn/wab/#/pages/Approval/index'>请点击前往处理</a>。";
String hiddenIdentifier = String.format("<span id='flow-identifier' data-proc-inst-id='%s' data-activity-id='%s' style='display:none;'></span>",
execution.getProcessInstanceId(), activityId);
String internalMessageContent = messageText + link + hiddenIdentifier;

View File

@@ -39,7 +39,7 @@ public class EJXYSJListener implements ExecutionListener {
// 构造包含超链接的消息内容
String content = "您有一条新的学生违纪审批任务待处理," +
"<a href='http://zhxg.gxsdxy.cn/wab/#/pages/Approval/index'>请点击前往处理</a>";
"<a href='https://zhxg.gxsdxy.cn/wab/#/pages/Approval/index'>请点击前往处理</a>";
// 步骤 4: 使用 userName 作为接收人发送消息
weChatUtil.sendTextMessage(userName, content);

View File

@@ -50,12 +50,12 @@ public class InitiatorNotificationListener implements ExecutionListener {
// --- 2. 准备通知内容 (解决taskName为空的问题) ---
String nextTaskName = getNextTaskName(execution);
String weChatMessage = "您提交的学生违纪处分申请已有最终处理结果,<a href='http://zhxg.gxsdxy.cn/wab/#/pages/Approval/index'>请点击前往处理</a>。";
String weChatMessage = "您提交的学生违纪处分申请已有最终处理结果,<a href='https://zhxg.gxsdxy.cn/wab/#/pages/Approval/index'>请点击前往处理</a>。";
String internalMessageText = "您有一条新的【" + nextTaskName + "】待办任务需要处理。";
String hiddenIdentifier = String.format("<span id='flow-identifier' data-proc-inst-id='%s' data-activity-id='%s' style='display:none;'></span>",
execution.getProcessInstanceId(),
((SequenceFlow) execution.getCurrentFlowElement()).getTargetRef());
String internalMessageContent = internalMessageText + "<a href='http://zhxg.gxsdxy.cn/wab/#/pages/Approval/index'>请点击前往处理</a>。" + hiddenIdentifier;
String internalMessageContent = internalMessageText + "<a href='https://zhxg.gxsdxy.cn/wab/#/pages/Approval/index'>请点击前往处理</a>。" + hiddenIdentifier;
// --- 3. 发送企业微信通知 ---
sendWeChatNotification(initiatorUserId, weChatMessage);

View File

@@ -46,7 +46,7 @@ public class InitiatorResultListener implements ExecutionListener {
if (initiatorUserName != null && !initiatorUserName.isEmpty()) {
// 4. 发送通知
WeChatUtil weChatUtil = SpringUtils.getBean(WeChatUtil.class);
String content = "您提交的学生违纪处分申请已有最终处理结果,<a href='http://zhxg.gxsdxy.cn/wab/#/pages/Approval/index'>请点击前往处理</a>。\"";
String content = "您提交的学生违纪处分申请已有最终处理结果,<a href='https://zhxg.gxsdxy.cn/wab/#/pages/Approval/index'>请点击前往处理</a>。\"";
weChatUtil.sendTextMessage(initiatorUserName, content);
log.info("已成功向流程发起人 ({}) 发送结果通知。", initiatorUserName);

View File

@@ -47,7 +47,7 @@ public class MultiInstanceMessageListener implements ExecutionListener {
// --- 步骤 3: 准备消息内容 ---
String messageText = "您有一条新的【" + taskName + "】待办任务需要处理。";
String link = "<a href='http://zhxg.gxsdxy.cn/wab/#/pages/Approval/index'>请点击前往处理</a>。";
String link = "<a href='https://zhxg.gxsdxy.cn/wab/#/pages/Approval/index'>请点击前往处理</a>。";
String hiddenIdentifier = String.format("<span id='flow-identifier' data-proc-inst-id='%s' data-activity-id='%s' style='display:none;'></span>",
execution.getProcessInstanceId(),
activityId);

View File

@@ -60,7 +60,7 @@ public class SchoolLeaderApprovalListener implements ExecutionListener {
List<String> userNameList = disciplinaryMapper.getUserNamesByUserIdList(userIdList);
if (userNameList != null && !userNameList.isEmpty()) {
String toUser = String.join("|", userNameList);
String weChatMessage = "校领导您有一条新的学生违纪审批任务待处理,<a href='http://zhxg.gxsdxy.cn/wab/#/pages/Approval/index'>请点击前往处理</a>。";
String weChatMessage = "校领导您有一条新的学生违纪审批任务待处理,<a href='https://zhxg.gxsdxy.cn/wab/#/pages/Approval/index'>请点击前往处理</a>。";
weChatUtil.sendTextMessage(toUser, weChatMessage);
log.info("已成功向校领导 (角色: {}) 发送企业微信通知。", LEADER_ROLE_KEY);
}
@@ -71,7 +71,7 @@ public class SchoolLeaderApprovalListener implements ExecutionListener {
String activityId = (nextElement != null) ? nextElement.getId() : "Activity_0ftj9eo";
String messageText = "您有一条新的【" + taskName + "】待办任务需要处理。";
String link = "<a href='http://zhxg.gxsdxy.cn/wab/#/pages/Approval/index'>请点击前往处理</a>。";
String link = "<a href='https://zhxg.gxsdxy.cn/wab/#/pages/Approval/index'>请点击前往处理</a>。";
String hiddenIdentifier = String.format("<span id='flow-identifier' data-proc-inst-id='%s' data-activity-id='%s' style='display:none;'></span>",
execution.getProcessInstanceId(), activityId);
String internalMessageContent = messageText + link + hiddenIdentifier;

View File

@@ -106,7 +106,7 @@ public class StuInfoListener implements ExecutionListener {
String messageText = "您有一条新的【" + taskName + "】待办任务需要处理。";
String link = "<a href='http://zhxg.gxsdxy.cn/wab/#/pages/Approval/index'>请点击前往处理</a>。";
String link = "<a href='https://zhxg.gxsdxy.cn/wab/#/pages/Approval/index'>请点击前往处理</a>。";
String hiddenIdentifier = String.format("<span id='flow-identifier' data-proc-inst-id='%s' data-activity-id='%s' style='display:none;'></span>",
execution.getProcessInstanceId(), activityId);
String internalMessageContent = messageText + link + hiddenIdentifier;

View File

@@ -43,7 +43,7 @@ public class WSSListener implements ExecutionListener {
String toUser = String.join("|", userNameList);
WeChatUtil weChatUtil = SpringUtils.getBean(WeChatUtil.class);
String content = "您有一条新的学生违纪审批任务待处理,<a href='http://zhxg.gxsdxy.cn/wab/#/pages/Approval/index'>请点击前往处理</a>。";
String content = "您有一条新的学生违纪审批任务待处理,<a href='https://zhxg.gxsdxy.cn/wab/#/pages/Approval/index'>请点击前往处理</a>。";
weChatUtil.sendTextMessage(toUser, content);
log.info("已成功向角色 '{}' 的成员发送通知。接收人: {}", TARGET_ROLE_KEY, toUser);

View File

@@ -54,7 +54,7 @@ public class XGLDSHListener implements ExecutionListener {
String toUser = String.join("|", userNameList);
String content = "您有一条新的学生违纪审批任务待处理," +
"<a href='http://zhxg.gxsdxy.cn/wab/#/pages/Approval/index'>请点击前往处理</a>";
"<a href='https://zhxg.gxsdxy.cn/wab/#/pages/Approval/index'>请点击前往处理</a>";
weChatUtil.sendTextMessage(toUser, content);
log.info("流程实例 [{}]: 已成功向角色 '{}' 成员发送企微通知,接收人: {}", processInstanceId, roleKey, toUser);

View File

@@ -43,7 +43,7 @@ public class XLZXListener implements ExecutionListener {
String toUser = String.join("|", userNameList);
WeChatUtil weChatUtil = SpringUtils.getBean(WeChatUtil.class);
String content = "您有一条新的学生违纪审批任务待处理,<a href='http://zhxg.gxsdxy.cn/wab/#/pages/Approval/index'>请点击前往处理</a>。";
String content = "您有一条新的学生违纪审批任务待处理,<a href='https://zhxg.gxsdxy.cn/wab/#/pages/Approval/index'>请点击前往处理</a>。";
weChatUtil.sendTextMessage(toUser, content);
log.info("已成功向角色 '{}' 的成员发送通知。接收人: {}", TARGET_ROLE_KEY, toUser);

View File

@@ -58,7 +58,7 @@ public class XSJYGLKListener implements ExecutionListener {
String toUser = String.join("|", userNameList);
WeChatUtil weChatUtil = SpringUtils.getBean(WeChatUtil.class);
String content = "您有一条新的学生违纪审批任务待处理,<a href='http://zhxg.gxsdxy.cn/wab/#/pages/Approval/index'>请点击前往处理</a>。";
String content = "您有一条新的学生违纪审批任务待处理,<a href='https://zhxg.gxsdxy.cn/wab/#/pages/Approval/index'>请点击前往处理</a>。";
weChatUtil.sendTextMessage(toUser, content);
log.info("已成功向角色 '{}' 的成员发送企业微信通知。接收人: {}", roleKey, toUser);

View File

@@ -45,7 +45,7 @@ public class XWGSListener implements ExecutionListener {
WeChatUtil weChatUtil = SpringUtils.getBean(WeChatUtil.class);
// 构造包含超链接的消息内容
String content = "您有一条新的学生违纪审批任务待处理,<a href='http://zhxg.gxsdxy.cn/wab/#/pages/Approval/index'>请点击前往处理</a>。";
String content = "您有一条新的学生违纪审批任务待处理,<a href='https://zhxg.gxsdxy.cn/wab/#/pages/Approval/index'>请点击前往处理</a>。";
// 步骤 4: 使用 userName 作为接收人发送消息
weChatUtil.sendTextMessage(userName, content);

View File

@@ -62,7 +62,7 @@ public class XYWJCLWYHListener implements ExecutionListener {
return;
}
String toUser = String.join("|", userNameList);
String content = "您有一条新的学生违纪审批任务待处理,<a href='http://zhxg.gxsdxy.cn/wab/#/pages/Approval/index'>请点击前往处理</a>。";
String content = "您有一条新的学生违纪审批任务待处理,<a href='https://zhxg.gxsdxy.cn/wab/#/pages/Approval/index'>请点击前往处理</a>。";
weChatUtil.sendTextMessage(toUser, content);
log.info("流程实例 [{}]: 已成功向'委员会'发送企微通知。", processInstanceId);
} catch (Exception e) {

View File

@@ -50,7 +50,7 @@ public class StuCounselorListener implements ExecutionListener {
// 构造包含超链接的消息内容
String content = "您有一条新的学生违纪审批任务待处理," +
"<a href='http://zhxg.gxsdxy.cn/wab/#/pages/Approval/index'>点此查看</a>";
"<a href='https://zhxg.gxsdxy.cn/wab/#/pages/Approval/index'>点此查看</a>";
// 发送企业微信消息
weChatUtil.sendTextMessage(userName, content);

View File

@@ -37,7 +37,7 @@ public class StuReceiveListener implements ExecutionListener {
String content = "您的违纪处理流程有新的进展:" +
approveResult + "" +
"<a href='http://zhxg.gxsdxy.cn/wab/#/pages/Approval/index'>点此查看详情</a>";
"<a href='https://zhxg.gxsdxy.cn/wab/#/pages/Approval/index'>点此查看详情</a>";
// 发送企业微信消息
weChatUtil.sendTextMessage(stuUserName, content);

View File

@@ -218,6 +218,9 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
// 如果父级任务多于 1 个,说明当前节点不是并行节点,原因为不考虑多对多情况
if (targetIds.size() > 1) {
// 1 对 多任务跳转currentIds 当前节点(1)targetIds 跳转到的节点(多)
if (CollectionUtils.isEmpty(currentIds)) {
throw new CustomException("未找到可驳回的当前任务节点");
}
runtimeService.createChangeActivityStateBuilder()
.processInstanceId(task.getProcessInstanceId()).
moveSingleActivityIdToActivityIds(currentIds.get(0), targetIds).changeState();
@@ -520,10 +523,16 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
.startedBy(userId.toString())
.orderByProcessInstanceStartTime()
.desc();
List<HistoricProcessInstance> historicProcessInstances = historicProcessInstanceQuery.listPage(queryVo.getPageSize() * (queryVo.getPageNum() - 1), queryVo.getPageSize());
page.setTotal(historicProcessInstanceQuery.count());
List<HistoricProcessInstance> historicProcessInstances = historicProcessInstanceQuery.list();
List<FlowTaskDto> flowList = new ArrayList<>();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
for (HistoricProcessInstance hisIns : historicProcessInstances) {
if (org.apache.commons.lang3.StringUtils.isNotBlank(queryVo.getDeployTime())) {
String startDate = dateFormat.format(hisIns.getStartTime());
if (!startDate.equals(queryVo.getDeployTime())) {
continue;
}
}
FlowTaskDto flowTask = new FlowTaskDto();
flowTask.setCreateTime(hisIns.getStartTime());
flowTask.setFinishTime(hisIns.getEndTime());
@@ -576,7 +585,11 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
}
flowList.add(flowTask);
}
page.setRecords(flowList);
int total = flowList.size();
page.setTotal(total);
int fromIndex = Math.max(0, (queryVo.getPageNum() - 1) * queryVo.getPageSize());
int toIndex = Math.min(total, fromIndex + queryVo.getPageSize());
page.setRecords(fromIndex < toIndex ? flowList.subList(fromIndex, toIndex) : new ArrayList<>());
return AjaxResult.success(page);
}
@@ -700,9 +713,9 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
// if (StringUtils.isNotBlank(queryVo.getName())){
// taskQuery.processDefinitionNameLike(queryVo.getName());
// }
page.setTotal(taskQuery.count());
List<Task> taskList = taskQuery.listPage(queryVo.getPageSize() * (queryVo.getPageNum() - 1), queryVo.getPageSize());
List<Task> taskList = taskQuery.list();
List<FlowTaskDto> flowList = new ArrayList<>();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
for (Task task : taskList) {
FlowTaskDto flowTask = new FlowTaskDto();
// 当前流程信息
@@ -730,10 +743,24 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
flowTask.setStartUserId(startUser.getUserId().toString());
flowTask.setStartUserName(startUser.getNickName());
flowTask.setStartDeptName(Objects.nonNull(startUser.getDept()) ? startUser.getDept().getDeptName() : "");
if (org.apache.commons.lang3.StringUtils.isNotBlank(queryVo.getStartUserName())) {
if (flowTask.getStartUserName() == null || !flowTask.getStartUserName().contains(queryVo.getStartUserName())) {
continue;
}
}
if (org.apache.commons.lang3.StringUtils.isNotBlank(queryVo.getDeployTime())) {
String startDate = dateFormat.format(historicProcessInstance.getStartTime());
if (!startDate.equals(queryVo.getDeployTime())) {
continue;
}
}
flowList.add(flowTask);
}
page.setRecords(flowList);
int total = flowList.size();
page.setTotal(total);
int fromIndex = Math.max(0, (queryVo.getPageNum() - 1) * queryVo.getPageSize());
int toIndex = Math.min(total, fromIndex + queryVo.getPageSize());
page.setRecords(fromIndex < toIndex ? flowList.subList(fromIndex, toIndex) : new ArrayList<>());
return AjaxResult.success(page);
}
@@ -774,7 +801,7 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
taskInstanceQuery.taskCompletedBefore(endTime);
}
List<HistoricTaskInstance> historicTaskInstanceList = taskInstanceQuery.listPage(queryVo.getPageSize() * (queryVo.getPageNum() - 1), queryVo.getPageSize());
List<HistoricTaskInstance> historicTaskInstanceList = taskInstanceQuery.list();
List<FlowTaskDto> hisTaskList = new ArrayList<>();
for (HistoricTaskInstance histTask : historicTaskInstanceList) {
FlowTaskDto flowTask = new FlowTaskDto();
@@ -809,10 +836,18 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
flowTask.setStartUserId(startUser.getNickName());
flowTask.setStartUserName(startUser.getNickName());
flowTask.setStartDeptName(startUser.getDept()!=null?startUser.getDept().getDeptName():"");
if (org.apache.commons.lang3.StringUtils.isNotBlank(queryVo.getStartUserName())) {
if (flowTask.getStartUserName() == null || !flowTask.getStartUserName().contains(queryVo.getStartUserName())) {
continue;
}
}
hisTaskList.add(flowTask);
}
page.setTotal(taskInstanceQuery.count());
page.setRecords(hisTaskList);
int totalFinished = hisTaskList.size();
page.setTotal(totalFinished);
int fromIndexFinished = Math.max(0, (queryVo.getPageNum() - 1) * queryVo.getPageSize());
int toIndexFinished = Math.min(totalFinished, fromIndexFinished + queryVo.getPageSize());
page.setRecords(fromIndexFinished < toIndexFinished ? hisTaskList.subList(fromIndexFinished, toIndexFinished) : new ArrayList<>());
return AjaxResult.success(page);
}

View File

@@ -20,6 +20,8 @@ import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.config.annotation.web.configurers.ExpressionUrlAuthorizationConfigurer;
import org.springframework.security.config.http.SessionCreationPolicy;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;
@@ -38,6 +40,7 @@ import com.srs.framework.security.handle.LogoutSuccessHandlerImpl;
*/
@EnableGlobalMethodSecurity(prePostEnabled = true, securedEnabled = true)
public class SecurityConfig extends WebSecurityConfigurerAdapter {
private static final Logger log = LoggerFactory.getLogger(SecurityConfig.class);
@Autowired
private CasProperties casProperties;
@@ -232,7 +235,9 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Bean
public ServiceProperties serviceProperties() {
ServiceProperties serviceProperties = new ServiceProperties();
serviceProperties.setService(casProperties.getAppServerUrl() + casProperties.getAppLoginUrl());
String service = casProperties.getAppServerUrl() + casProperties.getAppLoginUrl();
serviceProperties.setService(service);
log.info("cas_service=" + service);
serviceProperties.setAuthenticateAllArtifacts(true);
return serviceProperties;
}

View File

@@ -71,7 +71,7 @@ public class CasAuthenticationSuccessHandler extends SavedRequestAwareAuthentica
// httpSession.setAttribute(Constants.CAS_TOKEN, token);
// //登录成功后跳转到前端登录页面
// if(com.srs.common.utils.StringUtils.isNotNull(qqtype)){
// String webindex="http://zhxg.gxsdxy.cn/hh/#/pages/index/index";
// String webindex="https://zhxg.gxsdxy.cn/hh/#/pages/index/index";
// getRedirectStrategy().sendRedirect(request, response, casProperties.getWebUrl()+"?jwt="+token);
// }else{
// getRedirectStrategy().sendRedirect(request, response, casProperties.getWebUrl()+"?jwt="+token);
@@ -105,7 +105,8 @@ public class CasAuthenticationSuccessHandler extends SavedRequestAwareAuthentica
// httpSession.setAttribute(Constants.CAS_TOKEN, token);
// // 登录成功后跳转到前端登录页面
// if (isMobileDevice(request)) {
//// String webindex = "http://zhxg.gxsdxy.cn/wab/#/pages/index/index";
/// / String webindex = "https://zhxg.gxsdxy.cn/wab/#/pages/index/index";
// String waburl = casProperties.getWabUrl()+"?jwt="+ token;
// getRedirectStrategy().sendRedirect(request, response, waburl);
// } else {
@@ -113,9 +114,8 @@ public class CasAuthenticationSuccessHandler extends SavedRequestAwareAuthentica
// getRedirectStrategy().sendRedirect(request, response, weburl);
// }
// }
@Override
public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response,
public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response,
Authentication authentication) throws ServletException, IOException {
String targetUrlParameter = getTargetUrlParameter();
if (isAlwaysUseDefaultTargetUrl()
@@ -133,12 +133,16 @@ public void onAuthenticationSuccess(HttpServletRequest request, HttpServletRespo
httpSession.setAttribute(Constants.CAS_TOKEN, token);
// 构造跳转 URL
String ua = request.getHeader("User-Agent");
String referer = request.getHeader("Referer");
String requestUrl = request.getRequestURL().toString();
String redirectUrl;
if (isMobileDevice(request)) {
redirectUrl = casProperties.getWabUrl() + "?jwt=" + token;
} else {
redirectUrl = casProperties.getWebUrl() + "?jwt=" + token;
}
logger.info("cas_login_success ua=" + ua + " referer=" + referer + " requestUrl=" + requestUrl + " redirectUrl=" + redirectUrl);
// 使用客户端 JS 跳转替代 sendRedirect
response.setContentType("text/html;charset=UTF-8");
@@ -157,7 +161,7 @@ public void onAuthenticationSuccess(HttpServletRequest request, HttpServletRespo
"</body>\n" +
"</html>");
writer.flush();
}
}
private boolean isMobileDevice(HttpServletRequest request) {
@@ -165,7 +169,7 @@ public void onAuthenticationSuccess(HttpServletRequest request, HttpServletRespo
if (userAgent == null) {
return false;
}
return userAgent.matches("(?i).*\\b(mobi|android|iphone|ipad|ipod)\\b.*");
return userAgent.matches("(?i).*\\b(mobi|android|iphone|ipad|ipod|wxwork)\\b.*");
}
}

View File

@@ -29,10 +29,17 @@
</exclusions>
</dependency>
<!-- Spring Context for @Component/@EnableScheduling -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
</dependency>
<!-- 通用工具-->
<dependency>
<groupId>com.srs</groupId>
<artifactId>srs-common</artifactId>
<version>3.8.5</version>
</dependency>
<!--宿舍管理模块-->
@@ -60,13 +67,15 @@
<groupId>com.srs</groupId>
<artifactId>srs-routine</artifactId>
<version>3.8.5</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.srs</groupId>
<artifactId>srs-staff</artifactId>
<version>3.8.5</version>
</dependency>
</dependencies>
</project>

View File

@@ -5,19 +5,13 @@ import com.srs.common.utils.DateUtils;
import com.srs.comprehensive.domain.SrsStuYear;
import com.srs.comprehensive.mapper.SrsStuYearMapper;
import com.srs.comprehensive.service.ICphTestForService;
import com.srs.quartz.domain.SysJob;
import com.srs.quartz.mapper.SysJobMapper;
import org.mybatis.logging.Logger;
import org.mybatis.logging.LoggerFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;
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 java.text.ParseException;
import java.text.SimpleDateFormat;

View File

@@ -57,24 +57,7 @@
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-annotation</artifactId>
<version>3.5.3.1</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-core</artifactId>
<version>3.5.3.1</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-extension</artifactId>
<version>3.5.3.1</version>
<scope>compile</scope>
</dependency>
<!--阿里云核心API-->
<dependency>
<groupId>com.aliyun</groupId>

View File

@@ -194,6 +194,7 @@ public class RtStuDisciplinaryRelieveServiceImpl extends ServiceImpl<RtStuDiscip
variables.put("penaltyType", rtStuDisciplinaryRelieve.getPenaltyType());
variables.put("stuUserId", SecurityUtils.getUserId());
AjaxResult ajaxResult = flowDefinitionService.startProcessInstanceById("flow_d46199lc:18:832592", variables);
String code = ajaxResult.get("code").toString();
if (code.equals("200")) {

View File

@@ -147,7 +147,7 @@ public class SurItineraryServiceImpl extends ServiceImpl<SurItineraryMapper, Sur
int batchSize = 900;
SurSurvey surSurvey = surSurveyMapper.selectById(param.surveyId);
String msg = "你还未填写" + surSurvey.getSurveyName()
+ "去向调查,请<a href=\"http://zhxg.gxsdxy.cn/wab/#/pages/sub/StuApply\">点击前往</a>填写";
+ "去向调查,请<a href=\"https://zhxg.gxsdxy.cn/wab/#/pages/sub/StuApply\">点击前往</a>填写";
// List<String> test = new ArrayList<>();
// test.add("20240116");
@@ -245,7 +245,7 @@ public class SurItineraryServiceImpl extends ServiceImpl<SurItineraryMapper, Sur
int batchSize = 900;
SurSurvey surSurvey = surSurveyMapper.selectById(param.surveyId);
String msg = "你还未填写" + surSurvey.getSurveyName()
+ "去向调查,请<a href=\\\"http://zhxg.gxsdxy.cn/wab/#/pages/sub/StuApply\\\">点击前往</a>填写";
+ "去向调查,请<a href=\\\"https://zhxg.gxsdxy.cn/wab/#/pages/sub/StuApply\\\">点击前往</a>填写";
for (int i = 0; i < notStuNos.size(); i += batchSize) {
List<String> batch = notStuNos.subList(i, Math.min(i + batchSize, stuNos.size()));

View File

@@ -164,6 +164,14 @@ private static final long serialVersionUID=1L;
@Excel(name = "岗位性质")
private String jobNature;
/**
* 职业技术职称
*/
@ApiModelProperty("职称")
@TableField("professional_title")
@Excel(name = "职称")
private String professionalTitle;
/**
* 参加工作时间
*/

View File

@@ -22,6 +22,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="level2units" column="level2units" />
<result property="serviceHours" column="serviceHours" />
<result property="jobNature" column="jobNature" />
<result property="professionalTitle" column="professional_title" />
<result property="joinWorkHours" column="joinWorkHours" />
<result property="highestEducation" column="highestEducation" />
<result property="educated" column="educated" />
@@ -46,7 +47,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap>
<sql id="selectSysTeacherBasicmessageVo">
select teacher_id, name, gender, birthday, nation, photo, political, wechat, phone, address, identity, qqnumber, marriage, anotherDuties, level2units, serviceHours, jobNature, joinWorkHours, highestEducation, educated, study, lastestEducation, awardingInstitutions, email, college from sys_teacher_basicmessage
select teacher_id, name, gender, birthday, nation, photo, political, wechat, phone, address, identity, qqnumber, marriage, anotherDuties, level2units, serviceHours, jobNature, professional_title, joinWorkHours, highestEducation, educated, study, lastestEducation, awardingInstitutions, email, college from sys_teacher_basicmessage
</sql>
<select id="selectSysTeacherBasicmessageList" parameterType="SysTeacherBasicmessage" resultMap="SysTeacherBasicmessageResult">
@@ -68,6 +69,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="level2units != null and level2units != ''"> and level2units = #{level2units}</if>
<if test="serviceHours != null and serviceHours != ''"> and serviceHours = #{serviceHours}</if>
<if test="jobNature != null and jobNature != ''"> and jobNature = #{jobNature}</if>
<if test="professionalTitle != null and professionalTitle != ''"> and professional_title = #{professionalTitle}</if>
<if test="joinWorkHours != null and joinWorkHours != ''"> and joinWorkHours = #{joinWorkHours}</if>
<if test="highestEducation != null and highestEducation != ''"> and highestEducation = #{highestEducation}</if>
<if test="educated != null and educated != ''"> and educated = #{educated}</if>
@@ -80,7 +82,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</select>
<select id="selectSysTeacherBasicmessageByTeacherId" parameterType="Long" resultMap="SysTeacherBasicmessageSysTeacherTakeclassResult">
select a.teacher_id, a.name, a.gender, a.birthday, a.nation, a.photo, a.political, a.wechat, a.phone, a.address, a.identity, a.qqnumber, a.marriage, a.anotherDuties, a.level2units, a.serviceHours, a.jobNature, a.joinWorkHours, a.highestEducation, a.educated, a.study, a.lastestEducation, a.awardingInstitutions, a.email, a.college,
select a.teacher_id, a.name, a.gender, a.birthday, a.nation, a.photo, a.political, a.wechat, a.phone, a.address, a.identity, a.qqnumber, a.marriage, a.anotherDuties, a.level2units, a.serviceHours, a.jobNature, a.professional_title, a.joinWorkHours, a.highestEducation, a.educated, a.study, a.lastestEducation, a.awardingInstitutions, a.email, a.college,
b.takeclass_id as sub_takeclass_id, b.teacher_id as sub_teacher_id, b.college as sub_college, b.grade as sub_grade, b.classteam as sub_classteam, b.number as sub_number
from sys_teacher_basicmessage a
left join sys_teacher_takeclass b on b.teacher_id = a.teacher_id
@@ -107,6 +109,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="level2units != null">level2units,</if>
<if test="serviceHours != null">serviceHours,</if>
<if test="jobNature != null">jobNature,</if>
<if test="professionalTitle != null">professional_title,</if>
<if test="joinWorkHours != null">joinWorkHours,</if>
<if test="highestEducation != null">highestEducation,</if>
<if test="educated != null">educated,</if>
@@ -134,6 +137,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="level2units != null">#{level2units},</if>
<if test="serviceHours != null">#{serviceHours},</if>
<if test="jobNature != null">#{jobNature},</if>
<if test="professionalTitle != null">#{professionalTitle},</if>
<if test="joinWorkHours != null">#{joinWorkHours},</if>
<if test="highestEducation != null">#{highestEducation},</if>
<if test="educated != null">#{educated},</if>
@@ -164,6 +168,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="level2units != null">level2units = #{level2units},</if>
<if test="serviceHours != null">serviceHours = #{serviceHours},</if>
<if test="jobNature != null">jobNature = #{jobNature},</if>
<if test="professionalTitle != null">professional_title = #{professionalTitle},</if>
<if test="joinWorkHours != null">joinWorkHours = #{joinWorkHours},</if>
<if test="highestEducation != null">highestEducation = #{highestEducation},</if>
<if test="educated != null">educated = #{educated},</if>

View File

@@ -218,7 +218,7 @@ public class QgzxStuPostServiceImpl extends ServiceImpl<QgzxStuPostMapper, QgzxS
Long postId = stuPost.getPostId();
Long zdlsYes = qgzxStuPostMapper.countZdlsYes(postId);
if (zdlsYes >= Integer.parseInt(post.postCount)) {
throw new Exception("该岗位已有别的记录被其指导老师审核通过,不能申请通过");
throw new Exception("请检查该岗位的在岗人数是否正确");
}
param.applyStatus = QgzxApplyStatus.INSTRUCTOR_APPROVED.getCode();