学生资助、学生奖惩、学籍异动内容修改
This commit is contained in:
@@ -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
|
||||
@@ -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)
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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,16 +165,14 @@ 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) {
|
||||
String stuNo = getUsername();
|
||||
if (srsKnrdApply.getXh().equals(stuNo)) {
|
||||
return success(srsKnrdApply);
|
||||
}
|
||||
else{
|
||||
} else {
|
||||
return error("无权访问");
|
||||
}
|
||||
} else {
|
||||
@@ -184,12 +180,11 @@ public class SrsKnrdApplyController extends BaseController
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
//获取当前学年
|
||||
@PostMapping(value = "/findByXhAndApplyYear")
|
||||
public AjaxResult findByXhAndApplyYear(@RequestBody SrsKnrdApply srsKnrdApply)
|
||||
{
|
||||
public AjaxResult findByXhAndApplyYear(@RequestBody SrsKnrdApply srsKnrdApply) {
|
||||
|
||||
return success(srsKnrdApplyService.selectByXhAndYear(srsKnrdApply));
|
||||
}
|
||||
@@ -197,15 +192,15 @@ public class SrsKnrdApplyController extends BaseController
|
||||
|
||||
@Autowired
|
||||
private TokenService tokenService;
|
||||
|
||||
@GetMapping("/xh")
|
||||
public AjaxResult getInfoxh(HttpServletRequest request)
|
||||
{
|
||||
public AjaxResult getInfoxh(HttpServletRequest request) {
|
||||
LoginUser loginUser = tokenService.getLoginUser(request);
|
||||
return success(srsKnrdApplyService.getInfoxh(loginUser.getUser().getUserName()));
|
||||
}
|
||||
|
||||
@GetMapping("/getStuByXh")
|
||||
public AjaxResult getStuByXh(String xh)
|
||||
{
|
||||
public AjaxResult getStuByXh(String xh) {
|
||||
SrsStudent infoxh = srsKnrdApplyService.getInfoxh(xh);
|
||||
if (infoxh == null) {
|
||||
return error("学号错误,没有这个学生");
|
||||
@@ -213,23 +208,23 @@ public class SrsKnrdApplyController extends BaseController
|
||||
|
||||
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) { //学生只能看不能操作
|
||||
@@ -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,6 +281,7 @@ public class SrsKnrdApplyController extends BaseController
|
||||
private ICphStuExtraInfoService cphStuExtraInfoService;
|
||||
@Autowired
|
||||
private IRtStuDisciplinaryApplicationService rtStuDisciplinaryApplicationService;
|
||||
|
||||
//学生基础信息校验
|
||||
@PostMapping("/infoCheck")
|
||||
public AjaxResult infoCheck() {
|
||||
@@ -432,6 +429,7 @@ public class SrsKnrdApplyController extends BaseController
|
||||
return AjaxResult.success(null);
|
||||
}
|
||||
}
|
||||
|
||||
@PostMapping("/xwNext")
|
||||
@ApiOperation("查询学务下的学生申请的列表")
|
||||
public AjaxResult xwNext(CphSearch param) {
|
||||
@@ -534,7 +532,6 @@ public class SrsKnrdApplyController extends BaseController
|
||||
public AjaxResult updateSignature(@RequestBody CphSearch cphSearch) {
|
||||
|
||||
|
||||
|
||||
return AjaxResult.success(srsKnrdApplyService.updateSignature(cphSearch));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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("新增【贫困生申请】")
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.srs.comprehensive.controller;
|
||||
package com.srs.web.controller.comprehensive;
|
||||
|
||||
import java.util.List;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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());
|
||||
|
||||
@@ -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("修改失败");
|
||||
|
||||
@@ -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());
|
||||
|
||||
@@ -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业务层处理
|
||||
|
||||
@@ -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){
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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}
|
||||
|
||||
@@ -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 *,
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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); // 发送消息的方法
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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,7 +114,6 @@ public class CasAuthenticationSuccessHandler extends SavedRequestAwareAuthentica
|
||||
// getRedirectStrategy().sendRedirect(request, response, weburl);
|
||||
// }
|
||||
// }
|
||||
|
||||
@Override
|
||||
public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response,
|
||||
Authentication authentication) throws ServletException, IOException {
|
||||
@@ -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");
|
||||
@@ -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.*");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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>
|
||||
@@ -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;
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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")) {
|
||||
|
||||
@@ -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()));
|
||||
|
||||
@@ -164,6 +164,14 @@ private static final long serialVersionUID=1L;
|
||||
@Excel(name = "岗位性质")
|
||||
private String jobNature;
|
||||
|
||||
/**
|
||||
* 职业技术职称
|
||||
*/
|
||||
@ApiModelProperty("职称")
|
||||
@TableField("professional_title")
|
||||
@Excel(name = "职称")
|
||||
private String professionalTitle;
|
||||
|
||||
/**
|
||||
* 参加工作时间
|
||||
*/
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user