Compare commits
92 Commits
e3a07249c6
...
0cae408ca8
| Author | SHA1 | Date |
|---|---|---|
|
|
0cae408ca8 | 4 weeks ago |
|
|
81c916200f | 4 weeks ago |
|
|
0c4d039295 | 4 weeks ago |
|
|
f5a668de86 | 4 weeks ago |
|
|
e8a6832346 | 2 months ago |
|
|
bb71f4591c | 2 months ago |
|
|
436fe5dd4a | 2 months ago |
|
|
241aa741c3 | 2 months ago |
|
|
76a76ffc45 | 2 months ago |
|
|
614c0659eb | 2 months ago |
|
|
8e2cdfcf59 | 2 months ago |
|
|
5163fbce59 | 2 months ago |
|
|
30bca20890 | 2 months ago |
|
|
471a642fc5 | 2 months ago |
|
|
3b972c0a14 | 2 months ago |
|
|
42473449e6 | 2 months ago |
|
|
61e72df22c | 2 months ago |
|
|
adaf38510f | 2 months ago |
|
|
b9a77e17f7 | 2 months ago |
|
|
96fd344cbb | 2 months ago |
|
|
85ec34adec | 2 months ago |
|
|
f686c5485e | 2 months ago |
|
|
67015eae7e | 2 months ago |
|
|
31ff261cdf | 2 months ago |
|
|
e0ac5b176e | 2 months ago |
|
|
7533ba755b | 2 months ago |
|
|
25b7a3fceb | 2 months ago |
|
|
9157033253 | 2 months ago |
|
|
2ce4a9fe5e | 2 months ago |
|
|
060234e421 | 2 months ago |
|
|
1562f03036 | 2 months ago |
|
|
298da7e827 | 2 months ago |
|
|
2ac7e38168 | 2 months ago |
|
|
c0f8f92ade | 2 months ago |
|
|
64213f7a8e | 2 months ago |
|
|
70351b2426 | 2 months ago |
|
|
dca849b4c8 | 2 months ago |
|
|
62a3faf704 | 2 months ago |
|
|
bbc423a9c5 | 2 months ago |
|
|
0181523a93 | 2 months ago |
|
|
42f4c651cd | 2 months ago |
|
|
a0ef2af990 | 2 months ago |
|
|
fd9ce7c95f | 2 months ago |
|
|
4e552b8475 | 2 months ago |
|
|
936b8f0a4f | 2 months ago |
|
|
2587576138 | 2 months ago |
|
|
374fafe6bf | 2 months ago |
|
|
4d9925d6e6 | 2 months ago |
|
|
a4c20c70d3 | 2 months ago |
|
|
a5be53cd52 | 2 months ago |
|
|
cadff2d84f | 2 months ago |
|
|
8e68204920 | 2 months ago |
|
|
37eb7a4eff | 2 months ago |
|
|
34017ef8ae | 2 months ago |
|
|
848ad417af | 2 months ago |
|
|
45ebc28f09 | 2 months ago |
|
|
3423650542 | 2 months ago |
|
|
f4b1eaa53c | 2 months ago |
|
|
862a619f8a | 2 months ago |
|
|
38780e2070 | 2 months ago |
|
|
527bb68021 | 2 months ago |
|
|
96f6ae2635 | 2 months ago |
|
|
bcdf7d71e8 | 2 months ago |
|
|
55b5c945d4 | 2 months ago |
|
|
64bc5e3f17 | 2 months ago |
|
|
1a826543d9 | 2 months ago |
|
|
bb44201b86 | 2 months ago |
|
|
c39a45b573 | 2 months ago |
|
|
a9c0ed8bec | 2 months ago |
|
|
458c49f3f0 | 2 months ago |
|
|
8d55017e46 | 2 months ago |
|
|
ec1a86f606 | 2 months ago |
|
|
41f577e6e9 | 2 months ago |
|
|
7fa215bf35 | 2 months ago |
|
|
cd6152df5e | 2 months ago |
|
|
5c8563e3ac | 2 months ago |
|
|
1b809fd969 | 2 months ago |
|
|
4b3bc225c6 | 2 months ago |
|
|
6943f3ebb0 | 2 months ago |
|
|
2f357d792a | 2 months ago |
|
|
074e6932fb | 2 months ago |
|
|
3897f6061d | 2 months ago |
|
|
50470898ac | 2 months ago |
|
|
a05c947590 | 2 months ago |
|
|
93631f8702 | 2 months ago |
|
|
bf9a510a89 | 2 months ago |
|
|
230769ab2a | 2 months ago |
|
|
11c265b175 | 2 months ago |
|
|
cbb367418e | 2 months ago |
|
|
54ad1628ee | 2 months ago |
|
|
f1998a445f | 2 months ago |
|
|
3753f76777 | 2 months ago |
1205 changed files with 113376 additions and 4182 deletions
@ -1,128 +1,158 @@ |
|||
package com.research.web.controller.client.task; |
|||
|
|||
import cn.hutool.core.collection.CollUtil; |
|||
import com.github.pagehelper.PageHelper; |
|||
import com.github.pagehelper.PageInfo; |
|||
import com.research.common.core.domain.BaseDto; |
|||
import com.research.common.core.domain.JsonResponse; |
|||
import com.research.system.domain.dto.CommonDto; |
|||
import com.research.common.core.domain.entity.SysRole; |
|||
import com.research.common.core.domain.model.LoginUser; |
|||
import com.research.common.utils.SecurityUtils; |
|||
import com.research.system.domain.dto.TaskDto; |
|||
import com.research.system.domain.vo.TaskVo; |
|||
import com.research.system.service.TaskService; |
|||
import com.research.system.service.ITaskService; |
|||
import io.swagger.annotations.Api; |
|||
import io.swagger.annotations.ApiOperation; |
|||
import io.swagger.annotations.ApiParam; |
|||
import liquibase.pro.packaged.J; |
|||
import lombok.extern.slf4j.Slf4j; |
|||
import org.springframework.validation.annotation.Validated; |
|||
import org.springframework.web.bind.annotation.RequestBody; |
|||
import org.springframework.web.bind.annotation.RequestMapping; |
|||
import org.springframework.web.bind.annotation.RequestMethod; |
|||
import org.springframework.web.bind.annotation.RestController; |
|||
import org.springframework.web.bind.annotation.*; |
|||
|
|||
import javax.annotation.Resource; |
|||
import javax.servlet.http.HttpServletResponse; |
|||
import java.util.List; |
|||
|
|||
import static com.research.common.utils.PageUtils.startPage; |
|||
import static com.research.common.utils.SecurityUtils.getLoginUser; |
|||
|
|||
/** |
|||
* @Author zzc |
|||
* @Package com.research.web.controller.client |
|||
* @Date 2025/8/17 15:49 |
|||
* @description: |
|||
* @author zy |
|||
* @date 2026/04/15 |
|||
*/ |
|||
@Slf4j |
|||
@Api(tags = "任务相关") |
|||
@RestController |
|||
@RequestMapping("/task") |
|||
@Api(tags = "任务相关") |
|||
@Slf4j |
|||
public class TaskController { |
|||
|
|||
@Resource |
|||
private TaskService taskService; |
|||
private ITaskService taskService; |
|||
|
|||
@ApiOperation(value = "查询任务") |
|||
@RequestMapping(value = "/query", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) |
|||
public JsonResponse<PageInfo<TaskVo.TaskResult>> queryList(@ApiParam @Validated @RequestBody BaseDto<TaskDto.QueryTask> query) { |
|||
if (query.getPageNum() > 0) { |
|||
PageHelper.startPage(query.getPageNum(), query.getPageSize()); |
|||
} |
|||
return JsonResponse.ok(new PageInfo<>(taskService.queryList(query.getParam()))); |
|||
@ApiOperation(value = "获取当前用户关联的课题组列表") |
|||
@PostMapping("/getMyGroupList") |
|||
public JsonResponse<List<TaskVo.KtGroupInfo>> getMyGroupList() { |
|||
log.info("获取当前用户关联的课题组列表开始"); |
|||
//检查当前用户的角色是否是合作单位管理员,如果是,查询合作单位下所有的课题组,如果不是查看自己关联的课题组
|
|||
|
|||
List<TaskVo.KtGroupInfo> result = taskService.getMyGroupList(); |
|||
log.info("获取当前用户关联的课题组列表结束, 共{}个", result.size()); |
|||
return JsonResponse.ok(result); |
|||
} |
|||
|
|||
@ApiOperation(value = "查询任务") |
|||
@RequestMapping(value = "/queryListClient", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) |
|||
public JsonResponse<List<TaskVo.ClientList>> queryListClient(@ApiParam @Validated @RequestBody BaseDto<TaskDto.QueryTask> query){ |
|||
return JsonResponse.ok(taskService.queryListClient(query.getParam())); |
|||
@ApiOperation(value = "获取课题组成员列表") |
|||
@PostMapping("/getGroupMembers") |
|||
public JsonResponse<List<TaskVo.GroupMemberInfo>> getGroupMembers( |
|||
@ApiParam @Validated @RequestBody BaseDto<TaskDto.GetGroupMembers> params) { |
|||
log.info("获取课题组成员列表开始{}", params); |
|||
List<TaskVo.GroupMemberInfo> result = taskService.getGroupMembers(params.getParam()); |
|||
log.info("获取课题组成员列表结束, 共{}个", result.size()); |
|||
return JsonResponse.ok(result); |
|||
} |
|||
|
|||
@ApiOperation(value = "查询任务") |
|||
@RequestMapping(value = "/detail", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) |
|||
public JsonResponse<TaskVo.TaskResult> detail(@ApiParam @Validated @RequestBody TaskDto.QueryDetail dto){ |
|||
return JsonResponse.ok(taskService.detail(dto.getId())); |
|||
@ApiOperation(value = "创建任务") |
|||
@PostMapping("/create") |
|||
public JsonResponse<TaskVo.CreateTaskResult> create( |
|||
@ApiParam @Validated @RequestBody BaseDto<TaskDto.CreateTask> params) { |
|||
Long userId = SecurityUtils.getUserId(); |
|||
log.info("创建任务开始{}, userId:{}", params, userId); |
|||
TaskVo.CreateTaskResult result = taskService.createTask(params.getParam(), userId); |
|||
log.info("创建任务结束{}", result); |
|||
return JsonResponse.ok(result); |
|||
} |
|||
|
|||
@ApiOperation(value = "新增任务") |
|||
@RequestMapping(value = "/add", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) |
|||
public JsonResponse<Integer> add(@ApiParam @Validated @RequestBody TaskDto.AddTask dto) { |
|||
taskService.add(dto); |
|||
@ApiOperation(value = "修改任务") |
|||
@PostMapping("/update") |
|||
public JsonResponse<Integer> update( |
|||
@ApiParam @Validated @RequestBody BaseDto<TaskDto.UpdateTask> params) throws Exception { |
|||
log.info("修改任务开始{}", params); |
|||
taskService.updateTask(params.getParam()); |
|||
log.info("修改任务结束"); |
|||
return JsonResponse.ok(); |
|||
} |
|||
|
|||
@ApiOperation(value = "删除任务") |
|||
@RequestMapping(value = "/del", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) |
|||
public JsonResponse<Integer> del(@ApiParam @Validated @RequestBody CommonDto.DelDto dto) { |
|||
taskService.del(dto); |
|||
@ApiOperation(value = "批量删除任务") |
|||
@PostMapping("/batchDelete") |
|||
public JsonResponse<Integer> batchDelete( |
|||
@ApiParam @Validated @RequestBody BaseDto<TaskDto.BatchDeleteTask> params) { |
|||
log.info("批量删除任务开始{}", params); |
|||
taskService.batchDeleteTask(params.getParam()); |
|||
log.info("批量删除任务结束"); |
|||
return JsonResponse.ok(); |
|||
} |
|||
|
|||
@ApiOperation(value = "查询应交付物") |
|||
@RequestMapping(value = "/queryExecutorList", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) |
|||
public JsonResponse<PageInfo<TaskVo.ExecutorResult>> queryExecutorList(@ApiParam @Validated @RequestBody BaseDto<TaskDto.QueryExecutor> query) { |
|||
if (query.getPageNum() > 0) { |
|||
PageHelper.startPage(query.getPageNum(), query.getPageSize()); |
|||
@ApiOperation(value = "查询任务列表") |
|||
@PostMapping("/list") |
|||
public JsonResponse<PageInfo<TaskVo.TaskInfo>> list( |
|||
@ApiParam @Validated @RequestBody BaseDto<TaskDto.QueryTaskList> params) { |
|||
Long userId = SecurityUtils.getUserId(); |
|||
log.info("查询任务列表开始{}, userId:{}", params, userId); |
|||
if (params.getPageNum() > 0) { |
|||
PageHelper.startPage(params.getPageNum(), params.getPageSize()); |
|||
} |
|||
return JsonResponse.ok(new PageInfo<>(taskService.queryExecutorList(query.getParam()))); |
|||
} |
|||
|
|||
@ApiOperation(value = "新增应交付物") |
|||
@RequestMapping(value = "/addExecutor", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) |
|||
public JsonResponse<Integer> addExecutor(@ApiParam @Validated @RequestBody TaskDto.AddExecutor dto) { |
|||
taskService.addExecutor(dto); |
|||
return JsonResponse.ok(); |
|||
List<TaskVo.TaskInfo> result = taskService.queryTaskList(params.getParam(), userId); |
|||
log.info("查询任务列表结束,共查询到{}条记录", result.size()); |
|||
return JsonResponse.ok(new PageInfo<>(result)); |
|||
} |
|||
|
|||
@ApiOperation(value = "删除应交付物") |
|||
@RequestMapping(value = "/delExecutor", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) |
|||
public JsonResponse<Integer> delExecutor(@ApiParam @Validated @RequestBody CommonDto.DelDto dto) { |
|||
taskService.delExecutor(dto); |
|||
return JsonResponse.ok(); |
|||
@ApiOperation(value = "导出任务列表") |
|||
@PostMapping("/export") |
|||
public void exportTask(HttpServletResponse response, @ApiParam @Validated @RequestBody TaskDto.QueryTaskList params) { |
|||
taskService.exportTask(response, params, SecurityUtils.getUserId()); |
|||
} |
|||
|
|||
@ApiOperation(value = "查询交付物") |
|||
@RequestMapping(value = "/queryDeliverableList", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) |
|||
public JsonResponse<PageInfo<TaskVo.DeliverableResult>> queryDeliverableList(@ApiParam @Validated @RequestBody BaseDto<TaskDto.QueryDeliverable> query) { |
|||
if (query.getPageNum() > 0) { |
|||
PageHelper.startPage(query.getPageNum(), query.getPageSize()); |
|||
@ApiOperation(value = "查询交付物列表") |
|||
@PostMapping("/getDeliverableList") |
|||
public JsonResponse<PageInfo<TaskVo.DeliverableInfo>> getDeliverableList( |
|||
@ApiParam @Validated @RequestBody BaseDto<TaskDto.QueryDeliverableList> params) { |
|||
log.info("查询交付物列表开始{}", params); |
|||
if (params.getPageNum() > 0) { |
|||
PageHelper.startPage(params.getPageNum(), params.getPageSize()); |
|||
} |
|||
return JsonResponse.ok(new PageInfo<>(taskService.queryDeliverableList(query.getParam()))); |
|||
List<TaskVo.DeliverableInfo> result = taskService.getDeliverableList(params.getParam()); |
|||
log.info("查询交付物列表结束,共查询到{}条记录", result.size()); |
|||
return JsonResponse.ok(new PageInfo<>(result)); |
|||
} |
|||
|
|||
@ApiOperation(value = "新增交付物") |
|||
@RequestMapping(value = "/addDeliverable", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) |
|||
public JsonResponse<Integer> addDeliverable(@ApiParam @Validated @RequestBody TaskDto.AddDeliverable dto) { |
|||
taskService.addDeliverable(dto); |
|||
@ApiOperation(value = "提交交付物") |
|||
@PostMapping("/submitDeliverable") |
|||
public JsonResponse<Integer> submitDeliverable( |
|||
@ApiParam @Validated @RequestBody BaseDto<TaskDto.SubmitDeliverable> params) { |
|||
Long userId = SecurityUtils.getUserId(); |
|||
log.info("提交交付物开始{}, userId:{}", params, userId); |
|||
taskService.submitDeliverable(params.getParam(), userId); |
|||
log.info("提交交付物结束"); |
|||
return JsonResponse.ok(); |
|||
} |
|||
|
|||
@ApiOperation(value = "删除交付物") |
|||
@RequestMapping(value = "/delDeliverable", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) |
|||
public JsonResponse<Integer> delDeliverable(@ApiParam @Validated @RequestBody CommonDto.DelDto dto) { |
|||
taskService.delDeliverable(dto); |
|||
@ApiOperation(value = "审核任务") |
|||
@PostMapping("/audit") |
|||
public JsonResponse<Integer> audit( |
|||
@ApiParam @Validated @RequestBody BaseDto<TaskDto.AuditTask> params) { |
|||
Long userId = SecurityUtils.getUserId(); |
|||
log.info("审核任务开始{}, userId:{}", params, userId); |
|||
taskService.auditTask(params.getParam(), userId); |
|||
log.info("审核任务结束"); |
|||
return JsonResponse.ok(); |
|||
} |
|||
|
|||
@ApiOperation(value = "交付物审核") |
|||
@RequestMapping(value = "/aduitDeliverable", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) |
|||
public JsonResponse<Integer> aduit(@ApiParam @Validated @RequestBody TaskDto.AduitDeliverable dto){ |
|||
taskService.aduit(dto.getTaskId(), dto.getDeliverableId(), dto.getStatus()); |
|||
@ApiOperation(value = "审核交付物") |
|||
@PostMapping("/auditDeliverable") |
|||
public JsonResponse<Integer> auditDeliverable( |
|||
@ApiParam @Validated @RequestBody BaseDto<TaskDto.AuditDeliverable> params) { |
|||
Long userId = SecurityUtils.getUserId(); |
|||
log.info("审核交付物开始{}, userId:{}", params, userId); |
|||
taskService.auditDeliverable(params.getParam(), userId); |
|||
log.info("审核交付物结束"); |
|||
return JsonResponse.ok(); |
|||
} |
|||
|
|||
} |
|||
} |
|||
@ -0,0 +1,162 @@ |
|||
package com.research.common.wechat; |
|||
|
|||
import cn.hutool.core.map.MapBuilder; |
|||
import cn.hutool.core.util.ObjectUtil; |
|||
import cn.hutool.core.util.StrUtil; |
|||
import cn.hutool.http.HttpRequest; |
|||
import cn.hutool.http.HttpResponse; |
|||
import cn.hutool.json.JSONUtil; |
|||
import com.alibaba.fastjson2.JSON; |
|||
import com.alibaba.fastjson2.JSONArray; |
|||
import com.alibaba.fastjson2.JSONObject; |
|||
import com.research.common.exception.ServiceException; |
|||
import com.research.common.exception.base.BaseException; |
|||
import com.research.common.wechat.bean.MiniProgramUser; |
|||
import lombok.extern.slf4j.Slf4j; |
|||
import org.springframework.beans.factory.annotation.Value; |
|||
import org.springframework.stereotype.Service; |
|||
|
|||
import java.util.HashMap; |
|||
import java.util.Map; |
|||
|
|||
/** |
|||
* @author zhangsan |
|||
* @date 2022-09-01 17:34 |
|||
* @description TODO |
|||
*/ |
|||
@Service |
|||
@Slf4j |
|||
public class ExternalService { |
|||
|
|||
private static String miniAppId; |
|||
private static String miniSecret; |
|||
private static String externalUrl; |
|||
|
|||
private static String sender; |
|||
private static String host; |
|||
private static Integer port; |
|||
private static String username; |
|||
private static String password; |
|||
|
|||
@Value("${mail.sender:}") |
|||
public void setSender(String sender) { |
|||
ExternalService.sender = sender; |
|||
} |
|||
|
|||
@Value("${mail.host:}") |
|||
public void setHost(String host) { |
|||
ExternalService.host = host; |
|||
} |
|||
|
|||
@Value("${mail.port:465}") |
|||
public void setPort(Integer port) { |
|||
ExternalService.port = port; |
|||
} |
|||
|
|||
@Value("${mail.username:}") |
|||
public void setUsername(String username) { |
|||
ExternalService.username = username; |
|||
} |
|||
|
|||
@Value("${mail.password:}") |
|||
public void setPassword(String password) { |
|||
ExternalService.password = password; |
|||
} |
|||
|
|||
@Value("${wxmp.appId:}") |
|||
public void setMiniAppId(String miniAppId) { |
|||
ExternalService.miniAppId = miniAppId; |
|||
} |
|||
|
|||
@Value("${wxmp.secret:}") |
|||
public void setMiniSecret(String miniSecret) { |
|||
ExternalService.miniSecret = miniSecret; |
|||
} |
|||
|
|||
@Value("${externalUrl:}") |
|||
public void setExternalUrl(String externalUrl) { |
|||
ExternalService.externalUrl = externalUrl; |
|||
} |
|||
private static final Integer EXTERNAL_HTTP_TIMEOUT = 5000; |
|||
|
|||
public MiniProgramUser sendWxmpLoginRequest(String wxmpCode){ |
|||
String url = externalUrl + "external/wxLoginAppId"; |
|||
Map<String, Object> params = new HashMap<>(); |
|||
params.put("appId", miniAppId); |
|||
params.put("secret", miniSecret); |
|||
params.put("wxmpCode", wxmpCode); |
|||
|
|||
MiniProgramUser miniProgramUser = null; |
|||
|
|||
try { |
|||
HttpResponse execute = HttpRequest.post(url) |
|||
.timeout(EXTERNAL_HTTP_TIMEOUT) |
|||
.header("Content-Type", "application/json;charset=UTF-8") |
|||
.body(JSONUtil.toJsonStr(params)) |
|||
.execute(); |
|||
log.info("请求小程序登录接口{},{}", url, execute.body()); |
|||
|
|||
if (execute.getStatus() == 200) { |
|||
String body = execute.body(); |
|||
JSONObject jsonObject = JSONObject.parseObject(body); |
|||
if (jsonObject.getBoolean("success")) { |
|||
JSONArray dataArray = jsonObject.getJSONArray("data"); |
|||
if (dataArray != null && !dataArray.isEmpty()) { |
|||
miniProgramUser = dataArray.getObject(0, MiniProgramUser.class); |
|||
} |
|||
} |
|||
} |
|||
} catch (Exception e) { |
|||
log.error("微信小程序登录失败", e); |
|||
} |
|||
return miniProgramUser; |
|||
} |
|||
|
|||
public Object sendSmsCode(String phone, String smsCode, long expireTime){ |
|||
String url = externalUrl + "external/sendBaiDuSms"; |
|||
Map<String, Object> params = new HashMap<>(); |
|||
params.put("to", phone); |
|||
params.put("text", smsCode); |
|||
params.put("validSeconds", expireTime); |
|||
Object result = null; |
|||
try { |
|||
result = HttpRequest.post(url) |
|||
.timeout(EXTERNAL_HTTP_TIMEOUT) |
|||
.header("Content-Type", "application/json;charset=UTF-8") |
|||
.body(JSONUtil.toJsonStr(params)) |
|||
.execute() |
|||
.body(); |
|||
log.info("发送短信结果{}", result); |
|||
} catch (Exception e) { |
|||
log.error("发送短信失败", e); |
|||
} |
|||
return result; |
|||
} |
|||
|
|||
public Object sendMail(String to, String subject, String text) { |
|||
String url = externalUrl + "external/sendSimpleMailSender"; |
|||
Map<String, Object> params = new HashMap<>(); |
|||
params.put("to", to); |
|||
params.put("subject", subject); |
|||
params.put("text", text); |
|||
params.put("sender", sender); |
|||
params.put("host", host); |
|||
params.put("port", port); |
|||
params.put("username", username); |
|||
params.put("password", password); |
|||
|
|||
Object result = null; |
|||
try { |
|||
HttpResponse execute = HttpRequest.post(url) |
|||
.timeout(EXTERNAL_HTTP_TIMEOUT) |
|||
.header("Content-Type", "application/json;charset=UTF-8") |
|||
.body(JSONUtil.toJsonStr(params)) |
|||
.execute(); |
|||
result = execute.body(); |
|||
log.info("发送邮件结果{}", result); |
|||
} catch (Exception e) { |
|||
log.error("发送邮件失败", e); |
|||
} |
|||
return result; |
|||
} |
|||
} |
|||
@ -0,0 +1,123 @@ |
|||
package com.research.common.wechat; |
|||
|
|||
import java.util.HashMap; |
|||
import java.util.Map; |
|||
|
|||
/** |
|||
* @author 逗 |
|||
*/ |
|||
public class WxConstant { |
|||
|
|||
/*** 默认小程序 */ |
|||
public static final String ANYRING = "anyring"; |
|||
/*** 获取微信服务器IP地址 */ |
|||
public static final String URL_GET_WX_IP = "https://api.weixin.qq.com/cgi-bin/get_api_domain_ip?access_token=%1$s"; |
|||
/*** 公众号获取accessToken */ |
|||
public static final String URL_GET_OAUTH2_ACCESS_TOKEN = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=%1$s&secret=%2$s&code=%3$s&grant_type=authorization_code"; |
|||
/*** 公众号通过模板发送订阅消息 */ |
|||
public static final String MESSAGE_TEMPLATE_SEND = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=%1$s"; |
|||
/*** 公众号发送订阅消息 */ |
|||
public static final String OFFICIAL_MESSAGE_SEND = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=%1$s"; |
|||
/** 创建二维码 */ |
|||
public static final String QR_CODE_CREATE = "https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token={}"; |
|||
/**根据openId获取用户信息*/ |
|||
public static final String USER_INFO = "https://api.weixin.qq.com/cgi-bin/user/info?access_token=%1$s&openid=%2$s&lang=zh_CN"; |
|||
/*** 获取临时票据api_ticket */ |
|||
public static final String URL_GET_API_TICKET = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=%1$s&type=jsapi"; |
|||
|
|||
|
|||
/*** 小程序登录路径 */ |
|||
public static final String MINI_PROGRAM_LOGIN = "https://api.weixin.qq.com/sns/jscode2session?appid=%1$s&secret=%2$s&js_code=%3$s&grant_type=%4$s"; |
|||
/*** 通过网页授权和openId获取用户信息 */ |
|||
public static final String URL_GET_OAUTH2_USER_INFO = "https://api.weixin.qq.com/sns/userinfo?access_token=%1$s&openid=%2$s"; |
|||
/*** 获取小程序码A */ |
|||
public static final String URL_GET_WX_CODE_A = "https://api.weixin.qq.com/wxa/getwxacode?access_token=%1$s"; |
|||
/*** 获取小程序码B */ |
|||
public static final String URL_GET_WX_CODE_B = "https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=%1$s"; |
|||
/*** 获取小程序码C */ |
|||
public static final String URL_GET_WX_CODE_C = "https://api.weixin.qq.com/cgi-bin/wxaapp/createwxaqrcode?access_token=%1$s"; |
|||
/*** 小程序获取accessToken */ |
|||
public static final String URL_GET_ACCESS_TOKEN = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=%1$s&secret=%2$s"; |
|||
/*** 小程序发送订阅消息 */ |
|||
public static final String URL_SEND_SUBSCRIBE_MESSAGE = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=%1$s"; |
|||
/*** 小程序消息模板--审核结果通知 */ |
|||
public static String MINI_MSG_AUDIT = "KCjeY59SAB77fBco0_TWPn52tJd43PJIsuQm-VOwVb4"; |
|||
/*** 小程序消息模板--订单倒计时通知 */ |
|||
public static String MINI_MSG_COUNT_DOWN = "L4kn558ytvmdBpLq6wTU-WY5RsfQUzVPQ8aH9sDMBjA"; |
|||
/*** 小程序消息模板--订单结算通知 */ |
|||
public static String MINI_MSG_SETTLEMENT = "q9JrGcjvoSXy5MqSPm00lOKlGyss-jjG920nw-U6JSI"; |
|||
/*** 小程序消息模板--审核管理员接收审核通知 */ |
|||
public static String MINI_MSG_ADMIN_AUDIT = "q0JOvt6PnovniJEB2Iv-dRu3KomVaIlMMCN5jPDJttE"; |
|||
|
|||
|
|||
/*** 小程序登录路径内的type */ |
|||
public static final String GRANT_TYPE = "authorization_code"; |
|||
|
|||
/*** redis内存储AccessToken的Key */ |
|||
public static final String ACCESS_TOKEN = "tall_wx_access_token_"; |
|||
|
|||
/*** 机器人消息类型--文本 */ |
|||
public static final String TEXT = "text"; |
|||
/*** 机器人消息类型--markdown */ |
|||
public static final String MARKDOWN = "markdown"; |
|||
|
|||
/*** 小程序appId */ |
|||
public static final Map<String, String> APP_ID = new HashMap<>(); |
|||
static { |
|||
//默认小程序
|
|||
APP_ID.put("anyring", "wx356e01c7eb01d55d"); |
|||
//tall3小程序
|
|||
APP_ID.put("tall", "wxf72a76c2ea24a472"); |
|||
//赛跑小程序
|
|||
APP_ID.put("SP", "wx2ebb5cf926fe1ddb"); |
|||
//数钱小程序
|
|||
APP_ID.put("SQ", "wx55fa235267ca11e6"); |
|||
//拔河小程序
|
|||
APP_ID.put("BH", "wxd06d18fe7c75b498"); |
|||
//健康码小程序
|
|||
APP_ID.put("health", "wx2f9ef33e08053bbf"); |
|||
//企业微信
|
|||
APP_ID.put("enterprise", "wx808fa75921bd8f22"); |
|||
} |
|||
|
|||
/*** 小程序secret */ |
|||
public static final Map<String, String> SECRET = new HashMap<>(); |
|||
static { |
|||
//默认小程序
|
|||
SECRET.put("anyring", "353033db85d4b5a35f05d1c0176a0cc6"); |
|||
//tall3小程序
|
|||
SECRET.put("tall", "5aa3fc421a149ec1e59a4a4f472e1223"); |
|||
//赛跑小程序
|
|||
SECRET.put("SP", "38e4425b8e3647015b439c6d38172b49"); |
|||
//数钱小程序
|
|||
SECRET.put("SQ", "d75a5a7538ff9c72f781738850817081"); |
|||
//拔河小程序
|
|||
SECRET.put("BH", "202ad7f3d95b0532948c667c468c9a56"); |
|||
//健康码小程序
|
|||
SECRET.put("health", "af90801c26bc177681b2c39a603605b9"); |
|||
//企业微信
|
|||
SECRET.put("enterprise", "8d2e95462bfeab363ee84776bc807859"); |
|||
} |
|||
|
|||
/** |
|||
* 小程序订阅消息类型 |
|||
*/ |
|||
public enum MiniMessageType { |
|||
/** |
|||
* 消息类型 |
|||
*/ |
|||
Audit(1, "审核结果通知"), |
|||
CountDown(2, "倒计时提醒通知"), |
|||
Settlement(3, "订单结算提醒"), |
|||
AdminAudit(4, "管理员收到的审核通知"); |
|||
|
|||
public int value; |
|||
public String phase; |
|||
|
|||
MiniMessageType(int value, String thePhase) { |
|||
this.value = value; |
|||
this.phase = thePhase; |
|||
} |
|||
} |
|||
|
|||
} |
|||
@ -0,0 +1,140 @@ |
|||
package com.research.common.wechat.bean; |
|||
|
|||
import cn.hutool.core.collection.CollectionUtil; |
|||
import lombok.Data; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @author 逗 |
|||
*/ |
|||
@Data |
|||
public class MiniMessageTemplate { |
|||
|
|||
@Data |
|||
public static class SubscribeEntity<T> { |
|||
private String touser; |
|||
private String template_id; |
|||
private String page; |
|||
private T data; |
|||
} |
|||
|
|||
|
|||
@Data |
|||
private static class CommonEntity { |
|||
private String value; |
|||
} |
|||
|
|||
@Data |
|||
public static class AuditData { |
|||
public AuditData(List<String> params) { |
|||
if (CollectionUtil.isNotEmpty(params) && params.size() >= 2) { |
|||
thing7 = new CommonEntity(); |
|||
character_string8 = new CommonEntity(); |
|||
phrase2 = new CommonEntity(); |
|||
thing9 = new CommonEntity(); |
|||
|
|||
thing7.setValue(params.get(0)); |
|||
character_string8.setValue(params.get(1)); |
|||
phrase2.setValue(params.get(2)); |
|||
thing9.setValue(params.get(3)); |
|||
} |
|||
} |
|||
|
|||
//商品名称
|
|||
private CommonEntity thing7; |
|||
//订单编号
|
|||
private CommonEntity character_string8; |
|||
//审核结果
|
|||
private CommonEntity phrase2; |
|||
//温馨提示
|
|||
private CommonEntity thing9; |
|||
|
|||
} |
|||
|
|||
@Data |
|||
public static class CountDownData { |
|||
public CountDownData(List<String> params) { |
|||
if (CollectionUtil.isNotEmpty(params) && params.size() >= 2) { |
|||
thing1 = new CommonEntity(); |
|||
character_string2 = new CommonEntity(); |
|||
thing3 = new CommonEntity(); |
|||
|
|||
thing1.setValue(params.get(0)); |
|||
character_string2.setValue(params.get(1)); |
|||
thing3.setValue(params.get(2)); |
|||
} |
|||
} |
|||
|
|||
//商品名称
|
|||
private CommonEntity thing1; |
|||
//订单编号
|
|||
private CommonEntity character_string2; |
|||
//温馨提示
|
|||
private CommonEntity thing3; |
|||
|
|||
} |
|||
|
|||
@Data |
|||
public static class SettlementData { |
|||
public SettlementData(List<String> params) { |
|||
if (CollectionUtil.isNotEmpty(params) && params.size() >= 2) { |
|||
thing1 = new CommonEntity(); |
|||
character_string2 = new CommonEntity(); |
|||
amount3 = new CommonEntity(); |
|||
thing4 = new CommonEntity(); |
|||
thing5 = new CommonEntity(); |
|||
|
|||
thing1.setValue(params.get(0)); |
|||
character_string2.setValue(params.get(1)); |
|||
amount3.setValue(params.get(2)); |
|||
thing4.setValue(params.get(3)); |
|||
thing5.setValue(params.get(4)); |
|||
} |
|||
} |
|||
|
|||
//商品名称
|
|||
private CommonEntity thing1; |
|||
//订单编号
|
|||
private CommonEntity character_string2; |
|||
//结算金额
|
|||
private CommonEntity amount3; |
|||
//备注信息
|
|||
private CommonEntity thing4; |
|||
//操作人员
|
|||
private CommonEntity thing5; |
|||
|
|||
} |
|||
|
|||
@Data |
|||
public static class AdminAudit { |
|||
public AdminAudit(List<String> params) { |
|||
if (CollectionUtil.isNotEmpty(params) && params.size() >= 2) { |
|||
thing1 = new CommonEntity(); |
|||
thing4 = new CommonEntity(); |
|||
// time3 = new CommonEntity();
|
|||
// thing6 = new CommonEntity();
|
|||
|
|||
thing1.setValue(params.get(0)); |
|||
thing4.setValue(params.get(1)); |
|||
// time3.setValue(params.get(2));
|
|||
// thing6.setValue(params.get(3));
|
|||
} |
|||
} |
|||
|
|||
//申请类型
|
|||
private CommonEntity thing1; |
|||
//申请人
|
|||
private CommonEntity thing4; |
|||
// //申请类型
|
|||
// private CommonEntity thing5;
|
|||
// //申请人
|
|||
// private CommonEntity thing2;
|
|||
// //申请时间
|
|||
// private CommonEntity time3;
|
|||
// //备注
|
|||
// private CommonEntity thing6;
|
|||
|
|||
} |
|||
|
|||
} |
|||
@ -0,0 +1,14 @@ |
|||
package com.research.common.wechat.bean; |
|||
|
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* @author 逗 |
|||
*/ |
|||
@Data |
|||
public class MiniProgramUser extends WxBaseEntity { |
|||
|
|||
public String openid; |
|||
public String session_key; |
|||
public String unionid; |
|||
} |
|||
@ -0,0 +1,67 @@ |
|||
package com.research.common.wechat.bean; |
|||
|
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* @author 逗 |
|||
*/ |
|||
@Data |
|||
public class WechatCode { |
|||
/** |
|||
* 获取小程序码--方案A |
|||
*/ |
|||
@Data |
|||
public static class WechatCodeA{ |
|||
// 扫码进入的小程序页面路径,最大长度 128 字节,不能为空;
|
|||
public String path; |
|||
//二维码的宽度,单位 px,最小 280px,最大 1280px 默认430
|
|||
public Integer width; |
|||
//默认false 自动配置线条颜色,如果颜色依然是黑色,则说明不建议配置主色调,默认 false
|
|||
public Boolean auto_color; |
|||
//auto_color 为 false 时生效,使用 rgb 设置颜色 例如 {"r":"xxx","g":"xxx","b":"xxx"} 十进制表示
|
|||
public LineColor line_color; |
|||
//默认false 是否需要透明底色,为 true 时,生成透明底色的小程序
|
|||
public Boolean is_hyaline; |
|||
} |
|||
|
|||
/** |
|||
* 获取小程序码--方案B |
|||
*/ |
|||
@Data |
|||
public static class WechatCodeB{ |
|||
//参数 --最大32个可见字符
|
|||
public String scene; |
|||
//小程序地址
|
|||
public String page; |
|||
//二维码的宽度,单位 px,最小 280px,最大 1280px 默认430
|
|||
public Integer width; |
|||
//默认false 自动配置线条颜色,如果颜色依然是黑色,则说明不建议配置主色调,默认 false
|
|||
public Boolean auto_color; |
|||
//auto_color 为 false 时生效,使用 rgb 设置颜色 例如 {"r":"xxx","g":"xxx","b":"xxx"} 十进制表示
|
|||
public LineColor line_color; |
|||
//默认false 是否需要透明底色,为 true 时,生成透明底色的小程序
|
|||
public Boolean is_hyaline; |
|||
} |
|||
|
|||
/** |
|||
* rgb颜色 |
|||
*/ |
|||
@Data |
|||
public static class LineColor{ |
|||
public String r; |
|||
public String g; |
|||
public String b; |
|||
} |
|||
|
|||
/** |
|||
* 获取小程序码--方案C |
|||
*/ |
|||
@Data |
|||
public static class WechatCodeC{ |
|||
// 扫码进入的小程序页面路径,最大长度 128 字节,不能为空;
|
|||
public String path; |
|||
//二维码的宽度,单位 px,最小 280px,最大 1280px 默认430
|
|||
public Integer width; |
|||
} |
|||
|
|||
} |
|||
@ -0,0 +1,21 @@ |
|||
package com.research.common.wechat.bean; |
|||
|
|||
import com.fasterxml.jackson.annotation.JsonIgnore; |
|||
import com.fasterxml.jackson.annotation.JsonProperty; |
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* @author __zHangSan |
|||
*/ |
|||
@Data |
|||
public class WxAccessToken extends WxBaseEntity { |
|||
@JsonProperty("access_token") |
|||
private String accessToken; |
|||
@JsonProperty("expires_in") |
|||
private Long expiresIn; |
|||
/** |
|||
* 查询到token时添加,单位:秒 |
|||
*/ |
|||
@JsonIgnore |
|||
private Long createdAt; |
|||
} |
|||
@ -0,0 +1,12 @@ |
|||
package com.research.common.wechat.bean; |
|||
|
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* @author __zHangSan |
|||
*/ |
|||
@Data |
|||
public class WxBaseEntity { |
|||
private Integer errcode; |
|||
private String errmsg; |
|||
} |
|||
@ -0,0 +1,15 @@ |
|||
package com.research.common.wechat.bean; |
|||
|
|||
import com.fasterxml.jackson.annotation.JsonProperty; |
|||
import lombok.Data; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @author __zHangSan |
|||
*/ |
|||
@Data |
|||
public class WxGetIp extends WxBaseEntity{ |
|||
@JsonProperty("ipList") |
|||
private List<String> ip_list; |
|||
} |
|||
@ -0,0 +1,42 @@ |
|||
package com.research.framework.security.provider; |
|||
|
|||
import com.research.framework.security.token.DmsUserAuthenticationToken; |
|||
import com.research.framework.security.token.WxmpAuthenticationToken; |
|||
import com.research.framework.web.service.UserDetailsServiceImpl; |
|||
import lombok.extern.slf4j.Slf4j; |
|||
import org.springframework.security.authentication.AuthenticationProvider; |
|||
import org.springframework.security.core.Authentication; |
|||
import org.springframework.security.core.AuthenticationException; |
|||
import org.springframework.security.core.userdetails.UserDetails; |
|||
|
|||
import javax.annotation.Resource; |
|||
import java.util.Collections; |
|||
|
|||
@Slf4j |
|||
public class WxmpAuthenticationProvider implements AuthenticationProvider { |
|||
/** |
|||
* 用户输入用户名密码,匹配主库dms_user租户用户表,根据dms_user表中tenant_id租户ID字段匹配dms_tenant租户表中的id, |
|||
* 如租户用户正常,且租户正常、数据源正常,则创建返回token,token中存用户信息、组织信息、数据源信息; 数据源找不到或错误,则异常 |
|||
*/ |
|||
|
|||
@Resource |
|||
private UserDetailsServiceImpl userDetailsService; |
|||
|
|||
@Override |
|||
public Authentication authenticate(Authentication authentication) throws AuthenticationException { |
|||
WxmpAuthenticationToken authenticationToken = (WxmpAuthenticationToken) authentication; |
|||
String exmpCode = (String) authenticationToken.getPrincipal(); |
|||
//通过openId获取用户
|
|||
log.info("通过code获取用户和openId:{}", exmpCode); |
|||
UserDetails userDetails = userDetailsService.loadUserByWxmpOpenId(exmpCode); |
|||
//返回用户信息
|
|||
WxmpAuthenticationToken result = new WxmpAuthenticationToken(userDetails, Collections.emptyList()); |
|||
result.setDetails(authentication.getDetails()); |
|||
return result; |
|||
} |
|||
|
|||
@Override |
|||
public boolean supports(Class<?> authentication) { |
|||
return (WxmpAuthenticationToken.class.isAssignableFrom(authentication)); |
|||
} |
|||
} |
|||
@ -0,0 +1,62 @@ |
|||
package com.research.framework.security.token; |
|||
|
|||
import org.springframework.security.authentication.AbstractAuthenticationToken; |
|||
import org.springframework.security.core.GrantedAuthority; |
|||
import org.springframework.security.core.SpringSecurityCoreVersion; |
|||
|
|||
import java.util.Collection; |
|||
|
|||
public class WxmpAuthenticationToken extends AbstractAuthenticationToken { |
|||
private static final long serialVersionUID = SpringSecurityCoreVersion.SERIAL_VERSION_UID; |
|||
|
|||
private final Object principal; |
|||
private String credentials; |
|||
|
|||
/** |
|||
* 准备登录时调用 |
|||
* 此构造函数用来初始化未授信凭据. |
|||
*/ |
|||
|
|||
public WxmpAuthenticationToken(Object principal, String credentials) { |
|||
super(null); |
|||
this.principal = principal; |
|||
this.credentials = credentials; |
|||
setAuthenticated(false); |
|||
} |
|||
|
|||
/** |
|||
* 登录成功时调用 |
|||
* 此构函数用来初始化已授信凭据. |
|||
*/ |
|||
public WxmpAuthenticationToken(Object principal, Collection<? extends GrantedAuthority> authorities) { |
|||
super(null); |
|||
this.principal = principal; |
|||
this.credentials = null; |
|||
super.setAuthenticated(true); |
|||
} |
|||
|
|||
@Override |
|||
public Object getPrincipal() { |
|||
return principal; |
|||
} |
|||
|
|||
@Override |
|||
public Object getCredentials() { |
|||
return credentials; |
|||
} |
|||
|
|||
@Override |
|||
public void setAuthenticated(boolean isAuthenticated) throws IllegalArgumentException { |
|||
if (isAuthenticated) { |
|||
throw new IllegalArgumentException( |
|||
"Cannot set this token to trusted - use constructor which takes a GrantedAuthority list instead"); |
|||
} |
|||
super.setAuthenticated(false); |
|||
} |
|||
|
|||
@Override |
|||
public void eraseCredentials() { |
|||
super.eraseCredentials(); |
|||
credentials = null; |
|||
} |
|||
} |
|||
@ -0,0 +1,23 @@ |
|||
package com.research.system.domain; |
|||
|
|||
import cn.hutool.core.util.StrUtil; |
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* @author zy |
|||
* @date 2026/4/17 9:44 |
|||
*/ |
|||
@Data |
|||
public class WxUser { |
|||
|
|||
@Data |
|||
@ApiModel("微信登录返回结果") |
|||
public static class LoginResult{ |
|||
@ApiModelProperty("openId") |
|||
private String openId; |
|||
@ApiModelProperty("token") |
|||
private String token; |
|||
} |
|||
} |
|||
@ -1,162 +1,191 @@ |
|||
package com.research.system.domain.dto; |
|||
|
|||
import cn.hutool.core.collection.CollectionUtil; |
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import com.research.common.utils.SecurityUtils; |
|||
import com.research.system.domain.po.TaskDeliverable; |
|||
import com.research.system.domain.po.TaskExecutor; |
|||
import com.research.system.domain.po.TaskList; |
|||
import com.research.system.domain.vo.TaskVo; |
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import javax.validation.constraints.NotBlank; |
|||
import javax.validation.constraints.NotNull; |
|||
import java.util.ArrayList; |
|||
import java.util.Date; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @Author zzc |
|||
* @Package com.research.system.domain.dto |
|||
* @Date 2025/8/17 15:49 |
|||
* @description: |
|||
*/ |
|||
@Data |
|||
public class TaskDto { |
|||
|
|||
@Data |
|||
public static class QueryTask{ |
|||
private String taskName; |
|||
@ApiModelProperty("日期查询 0全部 1今日 2本周 3本月") |
|||
private Integer dateType; |
|||
|
|||
@ApiModelProperty("任务状态 0全部 1未完成 2已完成 3待审核") |
|||
private Integer completedStatus; |
|||
private Long groupId; |
|||
|
|||
private Date startTime; |
|||
private Date endTime; |
|||
@ApiModelProperty("是否我的任务 0全部 1我的") |
|||
private Byte isMine; |
|||
private Long userId; |
|||
// private Long getUserId(){
|
|||
// return SecurityUtils.getUserId();
|
|||
// }
|
|||
private String getUserName(){ |
|||
return SecurityUtils.getUsername(); |
|||
} |
|||
} |
|||
|
|||
@Data |
|||
public static class QueryDetail{ |
|||
private Long id; |
|||
} |
|||
@ApiModel("创建任务") |
|||
public static class CreateTask { |
|||
@ApiModelProperty("课题ID") |
|||
@NotNull(message = "课题ID不能为空") |
|||
private Long ktGroupId; |
|||
|
|||
@Data |
|||
public static class AddTask{ |
|||
private Long id; |
|||
@ApiModelProperty("合作单位ID") |
|||
private Long projOrgId; |
|||
|
|||
@ApiModelProperty("项目ID") |
|||
private Long projId; |
|||
|
|||
private Long projOrgId; |
|||
@ApiModelProperty("任务名称") |
|||
@NotBlank(message = "任务名称不能为空") |
|||
private String taskName; |
|||
|
|||
private Long ktGroupId; |
|||
@ApiModelProperty("任务说明") |
|||
@NotBlank(message = "任务说明不能为空") |
|||
private String taskDescription; |
|||
|
|||
private String taskName; |
|||
@ApiModelProperty("优先级:1-低 2-中 3-高") |
|||
@NotNull(message = "优先级不能为空") |
|||
private Byte priority; |
|||
|
|||
private String taskType; |
|||
@ApiModelProperty("任务类型:1-单人任务 2-多人协作任务") |
|||
@NotNull(message = "任务类型不能为空") |
|||
private Byte taskType; |
|||
|
|||
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") |
|||
private Date cycleStart; |
|||
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") |
|||
private Date cycleEnd; |
|||
@ApiModelProperty("应交付物描述") |
|||
private String description; |
|||
|
|||
private String cyclePeriod; |
|||
@ApiModelProperty("负责人ID列表") |
|||
@NotNull(message = "负责人不能为空") |
|||
private List<Long> memberIds; |
|||
|
|||
private String generationCycle; |
|||
@ApiModelProperty("截止时间") |
|||
private String endTime; |
|||
|
|||
private Integer batchSize; |
|||
@ApiModelProperty("应交付物") |
|||
private List<String> requiredDeliverable; |
|||
} |
|||
|
|||
private Integer parentId; |
|||
@Data |
|||
@ApiModel("修改任务") |
|||
public static class UpdateTask { |
|||
@ApiModelProperty("任务ID") |
|||
@NotNull(message = "任务ID不能为空") |
|||
private Long taskMemberId; |
|||
|
|||
private String relatedProject; |
|||
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") |
|||
private Date startTime; |
|||
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") |
|||
private Date endTime; |
|||
@ApiModelProperty("任务名称") |
|||
private String taskName; |
|||
|
|||
private String initiator; |
|||
@ApiModelProperty("任务说明") |
|||
private String taskDescription; |
|||
|
|||
@ApiModelProperty("优先级:1-低 2-中 3-高") |
|||
private Integer priority; |
|||
|
|||
private Byte status; |
|||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm") |
|||
@ApiModelProperty("截止时间") |
|||
private String endTime; |
|||
|
|||
@ApiModelProperty("应交付物描述") |
|||
private String description; |
|||
private List<AddExecutor> executorList; |
|||
|
|||
@ApiModelProperty("应交付物") |
|||
private List<String> deliverableList; |
|||
|
|||
public String getDeliverableList() { |
|||
if (CollectionUtil.isNotEmpty(deliverableList)) { |
|||
StringBuilder sb = new StringBuilder(); |
|||
for (String deliverable : deliverableList) { |
|||
sb.append(deliverable).append(","); |
|||
} |
|||
return sb.toString(); |
|||
} |
|||
return null; |
|||
} |
|||
private List<String> requiredDeliverable; |
|||
} |
|||
|
|||
@Data |
|||
public static class QueryExecutor{ |
|||
|
|||
@ApiModel("批量删除任务") |
|||
public static class BatchDeleteTask { |
|||
@ApiModelProperty("任务ID列表") |
|||
@NotNull(message = "任务ID列表不能为空") |
|||
private List<Long> taskMemberIds; |
|||
} |
|||
|
|||
@Data |
|||
public static class AddExecutor{ |
|||
private Long id; |
|||
@ApiModel("查询任务列表") |
|||
public static class QueryTaskList { |
|||
@ApiModelProperty("课题组ID") |
|||
private Long ktGroupId; |
|||
|
|||
@ApiModelProperty("任务名称") |
|||
private String taskName; |
|||
|
|||
@ApiModelProperty("任务负责人ID") |
|||
private Long memberId; |
|||
|
|||
private Long taskId; |
|||
@ApiModelProperty("优先级:1-低 2-中 3-高") |
|||
private Integer priority; |
|||
|
|||
@ApiModelProperty("截止时间开始") |
|||
private String startEndTime; |
|||
|
|||
@ApiModelProperty("截止时间结束") |
|||
private String endEndTime; |
|||
|
|||
@ApiModelProperty("完成状态:0-未开始 1-进行中 2-已完成") |
|||
private Integer taskStatus; |
|||
|
|||
private Long executorId; |
|||
@ApiModelProperty("审核状态:0-待审核 1-审核通过 2-审核驳回") |
|||
private Integer auditStatus; |
|||
|
|||
@ApiModelProperty("任务类型:0-我创建的 1-分配给我的") |
|||
@NotNull(message = "任务类型不能为空") |
|||
private Integer taskType; |
|||
} |
|||
|
|||
@Data |
|||
public static class QueryDeliverable{ |
|||
private Long taskId; |
|||
@ApiModel("查询交付物列表") |
|||
public static class QueryDeliverableList { |
|||
@ApiModelProperty("任务ID") |
|||
@NotNull(message = "任务ID不能为空") |
|||
private Long taskMemberId; |
|||
} |
|||
|
|||
@Data |
|||
public static class AddDeliverable{ |
|||
private Long id; |
|||
@ApiModel("提交交付物") |
|||
public static class SubmitDeliverable { |
|||
@ApiModelProperty("任务ID") |
|||
@NotNull(message = "任务ID不能为空") |
|||
private Long taskMemberId; |
|||
|
|||
private String taskId; |
|||
@ApiModelProperty("交付物说明") |
|||
private String description; |
|||
|
|||
private String deliverableName; |
|||
@ApiModelProperty("文件ID列表") |
|||
private List<String> fileUrls; |
|||
} |
|||
|
|||
private String deliverableUrl; |
|||
@Data |
|||
@ApiModel("审核任务") |
|||
public static class AuditTask { |
|||
@ApiModelProperty("任务ID") |
|||
@NotNull(message = "任务ID不能为空") |
|||
private Long taskMemberId; |
|||
|
|||
private String deliveryInstructions; |
|||
private Byte deliveryStatus; |
|||
@ApiModelProperty("审核状态:1-审核通过 2-审核驳回") |
|||
@NotNull(message = "审核状态不能为空") |
|||
private Integer auditStatus; |
|||
|
|||
@ApiModelProperty("驳回原因") |
|||
private String rejectReason; |
|||
} |
|||
|
|||
@Data |
|||
@ApiModel("获取课题组成员") |
|||
public static class GetGroupMembers { |
|||
@ApiModelProperty("课题组ID") |
|||
private Long ktGroupId; |
|||
|
|||
private String submitterAccount; |
|||
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") |
|||
private Date submissionTime; |
|||
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") |
|||
private String reviewerAccount; |
|||
private List<Long> ktGroupIds = new ArrayList<>(); |
|||
|
|||
private Date reviewTime; |
|||
@ApiModelProperty("成员姓名") |
|||
private String memberName; |
|||
} |
|||
|
|||
@Data |
|||
public static class AduitDeliverable{ |
|||
@ApiModelProperty("任务ID") |
|||
@NotNull(message = "任务ID不能为空") |
|||
private Long taskId; |
|||
@NotNull(message = "交付物ID不能为空") |
|||
@ApiModel("审核交付物") |
|||
public static class AuditDeliverable { |
|||
@ApiModelProperty("交付物ID") |
|||
@NotNull(message = "交付物ID不能为空") |
|||
private Long deliverableId; |
|||
|
|||
@ApiModelProperty("审核状态:1-审核通过 2-审核驳回") |
|||
@NotNull(message = "审核状态不能为空") |
|||
@ApiModelProperty("审核状态 0未审核 1通过 2未通过") |
|||
private Byte status; |
|||
private Integer auditStatus; |
|||
|
|||
@ApiModelProperty("驳回原因") |
|||
private String rejectReason; |
|||
} |
|||
} |
|||
|
|||
@ -0,0 +1,150 @@ |
|||
package com.research.system.domain.po; |
|||
|
|||
import java.io.Serializable; |
|||
import java.util.Date; |
|||
|
|||
public class ComFile implements Serializable { |
|||
private Long id; |
|||
|
|||
private String fileName; |
|||
|
|||
private String filePath; |
|||
|
|||
private Long fileSize; |
|||
|
|||
private String fileType; |
|||
|
|||
private Long relateId; |
|||
|
|||
private String relateType; |
|||
|
|||
private Byte delFlag; |
|||
|
|||
private String createBy; |
|||
|
|||
private Date createTime; |
|||
|
|||
private String updateBy; |
|||
|
|||
private Date updateTime; |
|||
|
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
public Long getId() { |
|||
return id; |
|||
} |
|||
|
|||
public void setId(Long id) { |
|||
this.id = id; |
|||
} |
|||
|
|||
public String getFileName() { |
|||
return fileName; |
|||
} |
|||
|
|||
public void setFileName(String fileName) { |
|||
this.fileName = fileName == null ? null : fileName.trim(); |
|||
} |
|||
|
|||
public String getFilePath() { |
|||
return filePath; |
|||
} |
|||
|
|||
public void setFilePath(String filePath) { |
|||
this.filePath = filePath == null ? null : filePath.trim(); |
|||
} |
|||
|
|||
public Long getFileSize() { |
|||
return fileSize; |
|||
} |
|||
|
|||
public void setFileSize(Long fileSize) { |
|||
this.fileSize = fileSize; |
|||
} |
|||
|
|||
public String getFileType() { |
|||
return fileType; |
|||
} |
|||
|
|||
public void setFileType(String fileType) { |
|||
this.fileType = fileType == null ? null : fileType.trim(); |
|||
} |
|||
|
|||
public Long getRelateId() { |
|||
return relateId; |
|||
} |
|||
|
|||
public void setRelateId(Long relateId) { |
|||
this.relateId = relateId; |
|||
} |
|||
|
|||
public String getRelateType() { |
|||
return relateType; |
|||
} |
|||
|
|||
public void setRelateType(String relateType) { |
|||
this.relateType = relateType == null ? null : relateType.trim(); |
|||
} |
|||
|
|||
public Byte getDelFlag() { |
|||
return delFlag; |
|||
} |
|||
|
|||
public void setDelFlag(Byte delFlag) { |
|||
this.delFlag = delFlag; |
|||
} |
|||
|
|||
public String getCreateBy() { |
|||
return createBy; |
|||
} |
|||
|
|||
public void setCreateBy(String createBy) { |
|||
this.createBy = createBy == null ? null : createBy.trim(); |
|||
} |
|||
|
|||
public Date getCreateTime() { |
|||
return createTime; |
|||
} |
|||
|
|||
public void setCreateTime(Date createTime) { |
|||
this.createTime = createTime; |
|||
} |
|||
|
|||
public String getUpdateBy() { |
|||
return updateBy; |
|||
} |
|||
|
|||
public void setUpdateBy(String updateBy) { |
|||
this.updateBy = updateBy == null ? null : updateBy.trim(); |
|||
} |
|||
|
|||
public Date getUpdateTime() { |
|||
return updateTime; |
|||
} |
|||
|
|||
public void setUpdateTime(Date updateTime) { |
|||
this.updateTime = updateTime; |
|||
} |
|||
|
|||
@Override |
|||
public String toString() { |
|||
StringBuilder sb = new StringBuilder(); |
|||
sb.append(getClass().getSimpleName()); |
|||
sb.append(" ["); |
|||
sb.append("Hash = ").append(hashCode()); |
|||
sb.append(", id=").append(id); |
|||
sb.append(", fileName=").append(fileName); |
|||
sb.append(", filePath=").append(filePath); |
|||
sb.append(", fileSize=").append(fileSize); |
|||
sb.append(", fileType=").append(fileType); |
|||
sb.append(", relateId=").append(relateId); |
|||
sb.append(", relateType=").append(relateType); |
|||
sb.append(", delFlag=").append(delFlag); |
|||
sb.append(", createBy=").append(createBy); |
|||
sb.append(", createTime=").append(createTime); |
|||
sb.append(", updateBy=").append(updateBy); |
|||
sb.append(", updateTime=").append(updateTime); |
|||
sb.append("]"); |
|||
return sb.toString(); |
|||
} |
|||
} |
|||
@ -0,0 +1,981 @@ |
|||
package com.research.system.domain.po; |
|||
|
|||
import java.util.ArrayList; |
|||
import java.util.Date; |
|||
import java.util.List; |
|||
|
|||
public class ComFileExample { |
|||
protected String orderByClause; |
|||
|
|||
protected boolean distinct; |
|||
|
|||
protected List<Criteria> oredCriteria; |
|||
|
|||
public ComFileExample() { |
|||
oredCriteria = new ArrayList<Criteria>(); |
|||
} |
|||
|
|||
public void setOrderByClause(String orderByClause) { |
|||
this.orderByClause = orderByClause; |
|||
} |
|||
|
|||
public String getOrderByClause() { |
|||
return orderByClause; |
|||
} |
|||
|
|||
public void setDistinct(boolean distinct) { |
|||
this.distinct = distinct; |
|||
} |
|||
|
|||
public boolean isDistinct() { |
|||
return distinct; |
|||
} |
|||
|
|||
public List<Criteria> getOredCriteria() { |
|||
return oredCriteria; |
|||
} |
|||
|
|||
public void or(Criteria criteria) { |
|||
oredCriteria.add(criteria); |
|||
} |
|||
|
|||
public Criteria or() { |
|||
Criteria criteria = createCriteriaInternal(); |
|||
oredCriteria.add(criteria); |
|||
return criteria; |
|||
} |
|||
|
|||
public Criteria createCriteria() { |
|||
Criteria criteria = createCriteriaInternal(); |
|||
if (oredCriteria.size() == 0) { |
|||
oredCriteria.add(criteria); |
|||
} |
|||
return criteria; |
|||
} |
|||
|
|||
protected Criteria createCriteriaInternal() { |
|||
Criteria criteria = new Criteria(); |
|||
return criteria; |
|||
} |
|||
|
|||
public void clear() { |
|||
oredCriteria.clear(); |
|||
orderByClause = null; |
|||
distinct = false; |
|||
} |
|||
|
|||
protected abstract static class GeneratedCriteria { |
|||
protected List<Criterion> criteria; |
|||
|
|||
protected GeneratedCriteria() { |
|||
super(); |
|||
criteria = new ArrayList<Criterion>(); |
|||
} |
|||
|
|||
public boolean isValid() { |
|||
return criteria.size() > 0; |
|||
} |
|||
|
|||
public List<Criterion> getAllCriteria() { |
|||
return criteria; |
|||
} |
|||
|
|||
public List<Criterion> getCriteria() { |
|||
return criteria; |
|||
} |
|||
|
|||
protected void addCriterion(String condition) { |
|||
if (condition == null) { |
|||
throw new RuntimeException("Value for condition cannot be null"); |
|||
} |
|||
criteria.add(new Criterion(condition)); |
|||
} |
|||
|
|||
protected void addCriterion(String condition, Object value, String property) { |
|||
if (value == null) { |
|||
throw new RuntimeException("Value for " + property + " cannot be null"); |
|||
} |
|||
criteria.add(new Criterion(condition, value)); |
|||
} |
|||
|
|||
protected void addCriterion(String condition, Object value1, Object value2, String property) { |
|||
if (value1 == null || value2 == null) { |
|||
throw new RuntimeException("Between values for " + property + " cannot be null"); |
|||
} |
|||
criteria.add(new Criterion(condition, value1, value2)); |
|||
} |
|||
|
|||
public Criteria andIdIsNull() { |
|||
addCriterion("id is null"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andIdIsNotNull() { |
|||
addCriterion("id is not null"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andIdEqualTo(Long value) { |
|||
addCriterion("id =", value, "id"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andIdNotEqualTo(Long value) { |
|||
addCriterion("id <>", value, "id"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andIdGreaterThan(Long value) { |
|||
addCriterion("id >", value, "id"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andIdGreaterThanOrEqualTo(Long value) { |
|||
addCriterion("id >=", value, "id"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andIdLessThan(Long value) { |
|||
addCriterion("id <", value, "id"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andIdLessThanOrEqualTo(Long value) { |
|||
addCriterion("id <=", value, "id"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andIdIn(List<Long> values) { |
|||
addCriterion("id in", values, "id"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andIdNotIn(List<Long> values) { |
|||
addCriterion("id not in", values, "id"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andIdBetween(Long value1, Long value2) { |
|||
addCriterion("id between", value1, value2, "id"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andIdNotBetween(Long value1, Long value2) { |
|||
addCriterion("id not between", value1, value2, "id"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andFileNameIsNull() { |
|||
addCriterion("file_name is null"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andFileNameIsNotNull() { |
|||
addCriterion("file_name is not null"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andFileNameEqualTo(String value) { |
|||
addCriterion("file_name =", value, "fileName"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andFileNameNotEqualTo(String value) { |
|||
addCriterion("file_name <>", value, "fileName"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andFileNameGreaterThan(String value) { |
|||
addCriterion("file_name >", value, "fileName"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andFileNameGreaterThanOrEqualTo(String value) { |
|||
addCriterion("file_name >=", value, "fileName"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andFileNameLessThan(String value) { |
|||
addCriterion("file_name <", value, "fileName"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andFileNameLessThanOrEqualTo(String value) { |
|||
addCriterion("file_name <=", value, "fileName"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andFileNameLike(String value) { |
|||
addCriterion("file_name like", value, "fileName"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andFileNameNotLike(String value) { |
|||
addCriterion("file_name not like", value, "fileName"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andFileNameIn(List<String> values) { |
|||
addCriterion("file_name in", values, "fileName"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andFileNameNotIn(List<String> values) { |
|||
addCriterion("file_name not in", values, "fileName"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andFileNameBetween(String value1, String value2) { |
|||
addCriterion("file_name between", value1, value2, "fileName"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andFileNameNotBetween(String value1, String value2) { |
|||
addCriterion("file_name not between", value1, value2, "fileName"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andFilePathIsNull() { |
|||
addCriterion("file_path is null"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andFilePathIsNotNull() { |
|||
addCriterion("file_path is not null"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andFilePathEqualTo(String value) { |
|||
addCriterion("file_path =", value, "filePath"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andFilePathNotEqualTo(String value) { |
|||
addCriterion("file_path <>", value, "filePath"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andFilePathGreaterThan(String value) { |
|||
addCriterion("file_path >", value, "filePath"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andFilePathGreaterThanOrEqualTo(String value) { |
|||
addCriterion("file_path >=", value, "filePath"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andFilePathLessThan(String value) { |
|||
addCriterion("file_path <", value, "filePath"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andFilePathLessThanOrEqualTo(String value) { |
|||
addCriterion("file_path <=", value, "filePath"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andFilePathLike(String value) { |
|||
addCriterion("file_path like", value, "filePath"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andFilePathNotLike(String value) { |
|||
addCriterion("file_path not like", value, "filePath"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andFilePathIn(List<String> values) { |
|||
addCriterion("file_path in", values, "filePath"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andFilePathNotIn(List<String> values) { |
|||
addCriterion("file_path not in", values, "filePath"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andFilePathBetween(String value1, String value2) { |
|||
addCriterion("file_path between", value1, value2, "filePath"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andFilePathNotBetween(String value1, String value2) { |
|||
addCriterion("file_path not between", value1, value2, "filePath"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andFileSizeIsNull() { |
|||
addCriterion("file_size is null"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andFileSizeIsNotNull() { |
|||
addCriterion("file_size is not null"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andFileSizeEqualTo(Long value) { |
|||
addCriterion("file_size =", value, "fileSize"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andFileSizeNotEqualTo(Long value) { |
|||
addCriterion("file_size <>", value, "fileSize"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andFileSizeGreaterThan(Long value) { |
|||
addCriterion("file_size >", value, "fileSize"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andFileSizeGreaterThanOrEqualTo(Long value) { |
|||
addCriterion("file_size >=", value, "fileSize"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andFileSizeLessThan(Long value) { |
|||
addCriterion("file_size <", value, "fileSize"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andFileSizeLessThanOrEqualTo(Long value) { |
|||
addCriterion("file_size <=", value, "fileSize"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andFileSizeIn(List<Long> values) { |
|||
addCriterion("file_size in", values, "fileSize"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andFileSizeNotIn(List<Long> values) { |
|||
addCriterion("file_size not in", values, "fileSize"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andFileSizeBetween(Long value1, Long value2) { |
|||
addCriterion("file_size between", value1, value2, "fileSize"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andFileSizeNotBetween(Long value1, Long value2) { |
|||
addCriterion("file_size not between", value1, value2, "fileSize"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andFileTypeIsNull() { |
|||
addCriterion("file_type is null"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andFileTypeIsNotNull() { |
|||
addCriterion("file_type is not null"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andFileTypeEqualTo(String value) { |
|||
addCriterion("file_type =", value, "fileType"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andFileTypeNotEqualTo(String value) { |
|||
addCriterion("file_type <>", value, "fileType"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andFileTypeGreaterThan(String value) { |
|||
addCriterion("file_type >", value, "fileType"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andFileTypeGreaterThanOrEqualTo(String value) { |
|||
addCriterion("file_type >=", value, "fileType"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andFileTypeLessThan(String value) { |
|||
addCriterion("file_type <", value, "fileType"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andFileTypeLessThanOrEqualTo(String value) { |
|||
addCriterion("file_type <=", value, "fileType"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andFileTypeLike(String value) { |
|||
addCriterion("file_type like", value, "fileType"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andFileTypeNotLike(String value) { |
|||
addCriterion("file_type not like", value, "fileType"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andFileTypeIn(List<String> values) { |
|||
addCriterion("file_type in", values, "fileType"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andFileTypeNotIn(List<String> values) { |
|||
addCriterion("file_type not in", values, "fileType"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andFileTypeBetween(String value1, String value2) { |
|||
addCriterion("file_type between", value1, value2, "fileType"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andFileTypeNotBetween(String value1, String value2) { |
|||
addCriterion("file_type not between", value1, value2, "fileType"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andRelateIdIsNull() { |
|||
addCriterion("relate_id is null"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andRelateIdIsNotNull() { |
|||
addCriterion("relate_id is not null"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andRelateIdEqualTo(Long value) { |
|||
addCriterion("relate_id =", value, "relateId"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andRelateIdNotEqualTo(Long value) { |
|||
addCriterion("relate_id <>", value, "relateId"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andRelateIdGreaterThan(Long value) { |
|||
addCriterion("relate_id >", value, "relateId"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andRelateIdGreaterThanOrEqualTo(Long value) { |
|||
addCriterion("relate_id >=", value, "relateId"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andRelateIdLessThan(Long value) { |
|||
addCriterion("relate_id <", value, "relateId"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andRelateIdLessThanOrEqualTo(Long value) { |
|||
addCriterion("relate_id <=", value, "relateId"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andRelateIdIn(List<Long> values) { |
|||
addCriterion("relate_id in", values, "relateId"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andRelateIdNotIn(List<Long> values) { |
|||
addCriterion("relate_id not in", values, "relateId"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andRelateIdBetween(Long value1, Long value2) { |
|||
addCriterion("relate_id between", value1, value2, "relateId"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andRelateIdNotBetween(Long value1, Long value2) { |
|||
addCriterion("relate_id not between", value1, value2, "relateId"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andRelateTypeIsNull() { |
|||
addCriterion("relate_type is null"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andRelateTypeIsNotNull() { |
|||
addCriterion("relate_type is not null"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andRelateTypeEqualTo(String value) { |
|||
addCriterion("relate_type =", value, "relateType"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andRelateTypeNotEqualTo(String value) { |
|||
addCriterion("relate_type <>", value, "relateType"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andRelateTypeGreaterThan(String value) { |
|||
addCriterion("relate_type >", value, "relateType"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andRelateTypeGreaterThanOrEqualTo(String value) { |
|||
addCriterion("relate_type >=", value, "relateType"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andRelateTypeLessThan(String value) { |
|||
addCriterion("relate_type <", value, "relateType"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andRelateTypeLessThanOrEqualTo(String value) { |
|||
addCriterion("relate_type <=", value, "relateType"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andRelateTypeLike(String value) { |
|||
addCriterion("relate_type like", value, "relateType"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andRelateTypeNotLike(String value) { |
|||
addCriterion("relate_type not like", value, "relateType"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andRelateTypeIn(List<String> values) { |
|||
addCriterion("relate_type in", values, "relateType"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andRelateTypeNotIn(List<String> values) { |
|||
addCriterion("relate_type not in", values, "relateType"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andRelateTypeBetween(String value1, String value2) { |
|||
addCriterion("relate_type between", value1, value2, "relateType"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andRelateTypeNotBetween(String value1, String value2) { |
|||
addCriterion("relate_type not between", value1, value2, "relateType"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andDelFlagIsNull() { |
|||
addCriterion("del_flag is null"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andDelFlagIsNotNull() { |
|||
addCriterion("del_flag is not null"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andDelFlagEqualTo(Byte value) { |
|||
addCriterion("del_flag =", value, "delFlag"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andDelFlagNotEqualTo(Byte value) { |
|||
addCriterion("del_flag <>", value, "delFlag"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andDelFlagGreaterThan(Byte value) { |
|||
addCriterion("del_flag >", value, "delFlag"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andDelFlagGreaterThanOrEqualTo(Byte value) { |
|||
addCriterion("del_flag >=", value, "delFlag"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andDelFlagLessThan(Byte value) { |
|||
addCriterion("del_flag <", value, "delFlag"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andDelFlagLessThanOrEqualTo(Byte value) { |
|||
addCriterion("del_flag <=", value, "delFlag"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andDelFlagIn(List<Byte> values) { |
|||
addCriterion("del_flag in", values, "delFlag"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andDelFlagNotIn(List<Byte> values) { |
|||
addCriterion("del_flag not in", values, "delFlag"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andDelFlagBetween(Byte value1, Byte value2) { |
|||
addCriterion("del_flag between", value1, value2, "delFlag"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andDelFlagNotBetween(Byte value1, Byte value2) { |
|||
addCriterion("del_flag not between", value1, value2, "delFlag"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andCreateByIsNull() { |
|||
addCriterion("create_by is null"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andCreateByIsNotNull() { |
|||
addCriterion("create_by is not null"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andCreateByEqualTo(String value) { |
|||
addCriterion("create_by =", value, "createBy"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andCreateByNotEqualTo(String value) { |
|||
addCriterion("create_by <>", value, "createBy"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andCreateByGreaterThan(String value) { |
|||
addCriterion("create_by >", value, "createBy"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andCreateByGreaterThanOrEqualTo(String value) { |
|||
addCriterion("create_by >=", value, "createBy"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andCreateByLessThan(String value) { |
|||
addCriterion("create_by <", value, "createBy"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andCreateByLessThanOrEqualTo(String value) { |
|||
addCriterion("create_by <=", value, "createBy"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andCreateByLike(String value) { |
|||
addCriterion("create_by like", value, "createBy"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andCreateByNotLike(String value) { |
|||
addCriterion("create_by not like", value, "createBy"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andCreateByIn(List<String> values) { |
|||
addCriterion("create_by in", values, "createBy"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andCreateByNotIn(List<String> values) { |
|||
addCriterion("create_by not in", values, "createBy"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andCreateByBetween(String value1, String value2) { |
|||
addCriterion("create_by between", value1, value2, "createBy"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andCreateByNotBetween(String value1, String value2) { |
|||
addCriterion("create_by not between", value1, value2, "createBy"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andCreateTimeIsNull() { |
|||
addCriterion("create_time is null"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andCreateTimeIsNotNull() { |
|||
addCriterion("create_time is not null"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andCreateTimeEqualTo(Date value) { |
|||
addCriterion("create_time =", value, "createTime"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andCreateTimeNotEqualTo(Date value) { |
|||
addCriterion("create_time <>", value, "createTime"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andCreateTimeGreaterThan(Date value) { |
|||
addCriterion("create_time >", value, "createTime"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) { |
|||
addCriterion("create_time >=", value, "createTime"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andCreateTimeLessThan(Date value) { |
|||
addCriterion("create_time <", value, "createTime"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andCreateTimeLessThanOrEqualTo(Date value) { |
|||
addCriterion("create_time <=", value, "createTime"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andCreateTimeIn(List<Date> values) { |
|||
addCriterion("create_time in", values, "createTime"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andCreateTimeNotIn(List<Date> values) { |
|||
addCriterion("create_time not in", values, "createTime"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andCreateTimeBetween(Date value1, Date value2) { |
|||
addCriterion("create_time between", value1, value2, "createTime"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andCreateTimeNotBetween(Date value1, Date value2) { |
|||
addCriterion("create_time not between", value1, value2, "createTime"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andUpdateByIsNull() { |
|||
addCriterion("update_by is null"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andUpdateByIsNotNull() { |
|||
addCriterion("update_by is not null"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andUpdateByEqualTo(String value) { |
|||
addCriterion("update_by =", value, "updateBy"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andUpdateByNotEqualTo(String value) { |
|||
addCriterion("update_by <>", value, "updateBy"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andUpdateByGreaterThan(String value) { |
|||
addCriterion("update_by >", value, "updateBy"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andUpdateByGreaterThanOrEqualTo(String value) { |
|||
addCriterion("update_by >=", value, "updateBy"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andUpdateByLessThan(String value) { |
|||
addCriterion("update_by <", value, "updateBy"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andUpdateByLessThanOrEqualTo(String value) { |
|||
addCriterion("update_by <=", value, "updateBy"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andUpdateByLike(String value) { |
|||
addCriterion("update_by like", value, "updateBy"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andUpdateByNotLike(String value) { |
|||
addCriterion("update_by not like", value, "updateBy"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andUpdateByIn(List<String> values) { |
|||
addCriterion("update_by in", values, "updateBy"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andUpdateByNotIn(List<String> values) { |
|||
addCriterion("update_by not in", values, "updateBy"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andUpdateByBetween(String value1, String value2) { |
|||
addCriterion("update_by between", value1, value2, "updateBy"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andUpdateByNotBetween(String value1, String value2) { |
|||
addCriterion("update_by not between", value1, value2, "updateBy"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andUpdateTimeIsNull() { |
|||
addCriterion("update_time is null"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andUpdateTimeIsNotNull() { |
|||
addCriterion("update_time is not null"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andUpdateTimeEqualTo(Date value) { |
|||
addCriterion("update_time =", value, "updateTime"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andUpdateTimeNotEqualTo(Date value) { |
|||
addCriterion("update_time <>", value, "updateTime"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andUpdateTimeGreaterThan(Date value) { |
|||
addCriterion("update_time >", value, "updateTime"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andUpdateTimeGreaterThanOrEqualTo(Date value) { |
|||
addCriterion("update_time >=", value, "updateTime"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andUpdateTimeLessThan(Date value) { |
|||
addCriterion("update_time <", value, "updateTime"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andUpdateTimeLessThanOrEqualTo(Date value) { |
|||
addCriterion("update_time <=", value, "updateTime"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andUpdateTimeIn(List<Date> values) { |
|||
addCriterion("update_time in", values, "updateTime"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andUpdateTimeNotIn(List<Date> values) { |
|||
addCriterion("update_time not in", values, "updateTime"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andUpdateTimeBetween(Date value1, Date value2) { |
|||
addCriterion("update_time between", value1, value2, "updateTime"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andUpdateTimeNotBetween(Date value1, Date value2) { |
|||
addCriterion("update_time not between", value1, value2, "updateTime"); |
|||
return (Criteria) this; |
|||
} |
|||
} |
|||
|
|||
public static class Criteria extends GeneratedCriteria { |
|||
|
|||
protected Criteria() { |
|||
super(); |
|||
} |
|||
} |
|||
|
|||
public static class Criterion { |
|||
private String condition; |
|||
|
|||
private Object value; |
|||
|
|||
private Object secondValue; |
|||
|
|||
private boolean noValue; |
|||
|
|||
private boolean singleValue; |
|||
|
|||
private boolean betweenValue; |
|||
|
|||
private boolean listValue; |
|||
|
|||
private String typeHandler; |
|||
|
|||
public String getCondition() { |
|||
return condition; |
|||
} |
|||
|
|||
public Object getValue() { |
|||
return value; |
|||
} |
|||
|
|||
public Object getSecondValue() { |
|||
return secondValue; |
|||
} |
|||
|
|||
public boolean isNoValue() { |
|||
return noValue; |
|||
} |
|||
|
|||
public boolean isSingleValue() { |
|||
return singleValue; |
|||
} |
|||
|
|||
public boolean isBetweenValue() { |
|||
return betweenValue; |
|||
} |
|||
|
|||
public boolean isListValue() { |
|||
return listValue; |
|||
} |
|||
|
|||
public String getTypeHandler() { |
|||
return typeHandler; |
|||
} |
|||
|
|||
protected Criterion(String condition) { |
|||
super(); |
|||
this.condition = condition; |
|||
this.typeHandler = null; |
|||
this.noValue = true; |
|||
} |
|||
|
|||
protected Criterion(String condition, Object value, String typeHandler) { |
|||
super(); |
|||
this.condition = condition; |
|||
this.value = value; |
|||
this.typeHandler = typeHandler; |
|||
if (value instanceof List<?>) { |
|||
this.listValue = true; |
|||
} else { |
|||
this.singleValue = true; |
|||
} |
|||
} |
|||
|
|||
protected Criterion(String condition, Object value) { |
|||
this(condition, value, null); |
|||
} |
|||
|
|||
protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { |
|||
super(); |
|||
this.condition = condition; |
|||
this.value = value; |
|||
this.secondValue = secondValue; |
|||
this.typeHandler = typeHandler; |
|||
this.betweenValue = true; |
|||
} |
|||
|
|||
protected Criterion(String condition, Object value, Object secondValue) { |
|||
this(condition, value, secondValue, null); |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,161 @@ |
|||
package com.research.system.domain.po; |
|||
|
|||
import java.io.Serializable; |
|||
import java.util.Date; |
|||
|
|||
public class TasDeliverable implements Serializable { |
|||
private Long id; |
|||
|
|||
private Long taskMemberId; |
|||
|
|||
private Long userId; |
|||
|
|||
private Date submitTime; |
|||
|
|||
private String description; |
|||
|
|||
private Byte auditStatus; |
|||
|
|||
private String rejectReason; |
|||
|
|||
private Date auditTime; |
|||
|
|||
private Byte delFlag; |
|||
|
|||
private String createBy; |
|||
|
|||
private Date createTime; |
|||
|
|||
private String updateBy; |
|||
|
|||
private Date updateTime; |
|||
|
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
public Long getId() { |
|||
return id; |
|||
} |
|||
|
|||
public void setId(Long id) { |
|||
this.id = id; |
|||
} |
|||
|
|||
public Long getTaskMemberId() { |
|||
return taskMemberId; |
|||
} |
|||
|
|||
public void setTaskMemberId(Long taskMemberId) { |
|||
this.taskMemberId = taskMemberId; |
|||
} |
|||
|
|||
public Long getUserId() { |
|||
return userId; |
|||
} |
|||
|
|||
public void setUserId(Long userId) { |
|||
this.userId = userId; |
|||
} |
|||
|
|||
public Date getSubmitTime() { |
|||
return submitTime; |
|||
} |
|||
|
|||
public void setSubmitTime(Date submitTime) { |
|||
this.submitTime = submitTime; |
|||
} |
|||
|
|||
public String getDescription() { |
|||
return description; |
|||
} |
|||
|
|||
public void setDescription(String description) { |
|||
this.description = description == null ? null : description.trim(); |
|||
} |
|||
|
|||
public Byte getAuditStatus() { |
|||
return auditStatus; |
|||
} |
|||
|
|||
public void setAuditStatus(Byte auditStatus) { |
|||
this.auditStatus = auditStatus; |
|||
} |
|||
|
|||
public String getRejectReason() { |
|||
return rejectReason; |
|||
} |
|||
|
|||
public void setRejectReason(String rejectReason) { |
|||
this.rejectReason = rejectReason == null ? null : rejectReason.trim(); |
|||
} |
|||
|
|||
public Date getAuditTime() { |
|||
return auditTime; |
|||
} |
|||
|
|||
public void setAuditTime(Date auditTime) { |
|||
this.auditTime = auditTime; |
|||
} |
|||
|
|||
public Byte getDelFlag() { |
|||
return delFlag; |
|||
} |
|||
|
|||
public void setDelFlag(Byte delFlag) { |
|||
this.delFlag = delFlag; |
|||
} |
|||
|
|||
public String getCreateBy() { |
|||
return createBy; |
|||
} |
|||
|
|||
public void setCreateBy(String createBy) { |
|||
this.createBy = createBy == null ? null : createBy.trim(); |
|||
} |
|||
|
|||
public Date getCreateTime() { |
|||
return createTime; |
|||
} |
|||
|
|||
public void setCreateTime(Date createTime) { |
|||
this.createTime = createTime; |
|||
} |
|||
|
|||
public String getUpdateBy() { |
|||
return updateBy; |
|||
} |
|||
|
|||
public void setUpdateBy(String updateBy) { |
|||
this.updateBy = updateBy == null ? null : updateBy.trim(); |
|||
} |
|||
|
|||
public Date getUpdateTime() { |
|||
return updateTime; |
|||
} |
|||
|
|||
public void setUpdateTime(Date updateTime) { |
|||
this.updateTime = updateTime; |
|||
} |
|||
|
|||
@Override |
|||
public String toString() { |
|||
StringBuilder sb = new StringBuilder(); |
|||
sb.append(getClass().getSimpleName()); |
|||
sb.append(" ["); |
|||
sb.append("Hash = ").append(hashCode()); |
|||
sb.append(", id=").append(id); |
|||
sb.append(", taskMemberId=").append(taskMemberId); |
|||
sb.append(", userId=").append(userId); |
|||
sb.append(", submitTime=").append(submitTime); |
|||
sb.append(", description=").append(description); |
|||
sb.append(", auditStatus=").append(auditStatus); |
|||
sb.append(", rejectReason=").append(rejectReason); |
|||
sb.append(", auditTime=").append(auditTime); |
|||
sb.append(", delFlag=").append(delFlag); |
|||
sb.append(", createBy=").append(createBy); |
|||
sb.append(", createTime=").append(createTime); |
|||
sb.append(", updateBy=").append(updateBy); |
|||
sb.append(", updateTime=").append(updateTime); |
|||
sb.append("]"); |
|||
return sb.toString(); |
|||
} |
|||
} |
|||
File diff suppressed because it is too large
@ -0,0 +1,216 @@ |
|||
package com.research.system.domain.po; |
|||
|
|||
import java.io.Serializable; |
|||
import java.util.Date; |
|||
|
|||
public class TasTask implements Serializable { |
|||
private Long id; |
|||
|
|||
private Long ktGroupId; |
|||
|
|||
private Long projOrgId; |
|||
|
|||
private Long projId; |
|||
|
|||
private String taskName; |
|||
|
|||
private Byte priority; |
|||
|
|||
private Byte taskType; |
|||
|
|||
private Date startTime; |
|||
|
|||
private Date endTime; |
|||
|
|||
private Long taskCreatorId; |
|||
|
|||
private Byte delFlag; |
|||
|
|||
private String createBy; |
|||
|
|||
private Date createTime; |
|||
|
|||
private String updateBy; |
|||
|
|||
private Date updateTime; |
|||
|
|||
private String remark; |
|||
|
|||
private String description; |
|||
|
|||
private String taskDescription; |
|||
|
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
public Long getId() { |
|||
return id; |
|||
} |
|||
|
|||
public void setId(Long id) { |
|||
this.id = id; |
|||
} |
|||
|
|||
public Long getKtGroupId() { |
|||
return ktGroupId; |
|||
} |
|||
|
|||
public void setKtGroupId(Long ktGroupId) { |
|||
this.ktGroupId = ktGroupId; |
|||
} |
|||
|
|||
public Long getProjOrgId() { |
|||
return projOrgId; |
|||
} |
|||
|
|||
public void setProjOrgId(Long projOrgId) { |
|||
this.projOrgId = projOrgId; |
|||
} |
|||
|
|||
public Long getProjId() { |
|||
return projId; |
|||
} |
|||
|
|||
public void setProjId(Long projId) { |
|||
this.projId = projId; |
|||
} |
|||
|
|||
public String getTaskName() { |
|||
return taskName; |
|||
} |
|||
|
|||
public void setTaskName(String taskName) { |
|||
this.taskName = taskName == null ? null : taskName.trim(); |
|||
} |
|||
|
|||
public Byte getPriority() { |
|||
return priority; |
|||
} |
|||
|
|||
public void setPriority(Byte priority) { |
|||
this.priority = priority; |
|||
} |
|||
|
|||
public Byte getTaskType() { |
|||
return taskType; |
|||
} |
|||
|
|||
public void setTaskType(Byte taskType) { |
|||
this.taskType = taskType; |
|||
} |
|||
|
|||
public Date getStartTime() { |
|||
return startTime; |
|||
} |
|||
|
|||
public void setStartTime(Date startTime) { |
|||
this.startTime = startTime; |
|||
} |
|||
|
|||
public Date getEndTime() { |
|||
return endTime; |
|||
} |
|||
|
|||
public void setEndTime(Date endTime) { |
|||
this.endTime = endTime; |
|||
} |
|||
|
|||
public Long getTaskCreatorId() { |
|||
return taskCreatorId; |
|||
} |
|||
|
|||
public void setTaskCreatorId(Long taskCreatorId) { |
|||
this.taskCreatorId = taskCreatorId; |
|||
} |
|||
|
|||
public Byte getDelFlag() { |
|||
return delFlag; |
|||
} |
|||
|
|||
public void setDelFlag(Byte delFlag) { |
|||
this.delFlag = delFlag; |
|||
} |
|||
|
|||
public String getCreateBy() { |
|||
return createBy; |
|||
} |
|||
|
|||
public void setCreateBy(String createBy) { |
|||
this.createBy = createBy == null ? null : createBy.trim(); |
|||
} |
|||
|
|||
public Date getCreateTime() { |
|||
return createTime; |
|||
} |
|||
|
|||
public void setCreateTime(Date createTime) { |
|||
this.createTime = createTime; |
|||
} |
|||
|
|||
public String getUpdateBy() { |
|||
return updateBy; |
|||
} |
|||
|
|||
public void setUpdateBy(String updateBy) { |
|||
this.updateBy = updateBy == null ? null : updateBy.trim(); |
|||
} |
|||
|
|||
public Date getUpdateTime() { |
|||
return updateTime; |
|||
} |
|||
|
|||
public void setUpdateTime(Date updateTime) { |
|||
this.updateTime = updateTime; |
|||
} |
|||
|
|||
public String getRemark() { |
|||
return remark; |
|||
} |
|||
|
|||
public void setRemark(String remark) { |
|||
this.remark = remark == null ? null : remark.trim(); |
|||
} |
|||
|
|||
public String getDescription() { |
|||
return description; |
|||
} |
|||
|
|||
public void setDescription(String description) { |
|||
this.description = description == null ? null : description.trim(); |
|||
} |
|||
|
|||
public String getTaskDescription() { |
|||
return taskDescription; |
|||
} |
|||
|
|||
public void setTaskDescription(String taskDescription) { |
|||
this.taskDescription = taskDescription == null ? null : taskDescription.trim(); |
|||
} |
|||
|
|||
@Override |
|||
public String toString() { |
|||
StringBuilder sb = new StringBuilder(); |
|||
sb.append(getClass().getSimpleName()); |
|||
sb.append(" ["); |
|||
sb.append("Hash = ").append(hashCode()); |
|||
sb.append(", id=").append(id); |
|||
sb.append(", ktGroupId=").append(ktGroupId); |
|||
sb.append(", projOrgId=").append(projOrgId); |
|||
sb.append(", projId=").append(projId); |
|||
sb.append(", taskName=").append(taskName); |
|||
sb.append(", priority=").append(priority); |
|||
sb.append(", taskType=").append(taskType); |
|||
sb.append(", startTime=").append(startTime); |
|||
sb.append(", endTime=").append(endTime); |
|||
sb.append(", taskCreatorId=").append(taskCreatorId); |
|||
sb.append(", delFlag=").append(delFlag); |
|||
sb.append(", createBy=").append(createBy); |
|||
sb.append(", createTime=").append(createTime); |
|||
sb.append(", updateBy=").append(updateBy); |
|||
sb.append(", updateTime=").append(updateTime); |
|||
sb.append(", remark=").append(remark); |
|||
sb.append(", description=").append(description); |
|||
sb.append(", taskDescription=").append(taskDescription); |
|||
sb.append("]"); |
|||
return sb.toString(); |
|||
} |
|||
} |
|||
File diff suppressed because it is too large
@ -0,0 +1,150 @@ |
|||
package com.research.system.domain.po; |
|||
|
|||
import java.io.Serializable; |
|||
import java.util.Date; |
|||
|
|||
public class TasTaskMember implements Serializable { |
|||
private Long id; |
|||
|
|||
private Long taskId; |
|||
|
|||
private String memberIds; |
|||
|
|||
private Byte taskStatus; |
|||
|
|||
private Byte auditStatus; |
|||
|
|||
private String rejectReason; |
|||
|
|||
private Date auditTime; |
|||
|
|||
private Byte delFlag; |
|||
|
|||
private String createBy; |
|||
|
|||
private Date createTime; |
|||
|
|||
private String updateBy; |
|||
|
|||
private Date updateTime; |
|||
|
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
public Long getId() { |
|||
return id; |
|||
} |
|||
|
|||
public void setId(Long id) { |
|||
this.id = id; |
|||
} |
|||
|
|||
public Long getTaskId() { |
|||
return taskId; |
|||
} |
|||
|
|||
public void setTaskId(Long taskId) { |
|||
this.taskId = taskId; |
|||
} |
|||
|
|||
public String getMemberIds() { |
|||
return memberIds; |
|||
} |
|||
|
|||
public void setMemberIds(String memberIds) { |
|||
this.memberIds = memberIds == null ? null : memberIds.trim(); |
|||
} |
|||
|
|||
public Byte getTaskStatus() { |
|||
return taskStatus; |
|||
} |
|||
|
|||
public void setTaskStatus(Byte taskStatus) { |
|||
this.taskStatus = taskStatus; |
|||
} |
|||
|
|||
public Byte getAuditStatus() { |
|||
return auditStatus; |
|||
} |
|||
|
|||
public void setAuditStatus(Byte auditStatus) { |
|||
this.auditStatus = auditStatus; |
|||
} |
|||
|
|||
public String getRejectReason() { |
|||
return rejectReason; |
|||
} |
|||
|
|||
public void setRejectReason(String rejectReason) { |
|||
this.rejectReason = rejectReason == null ? null : rejectReason.trim(); |
|||
} |
|||
|
|||
public Date getAuditTime() { |
|||
return auditTime; |
|||
} |
|||
|
|||
public void setAuditTime(Date auditTime) { |
|||
this.auditTime = auditTime; |
|||
} |
|||
|
|||
public Byte getDelFlag() { |
|||
return delFlag; |
|||
} |
|||
|
|||
public void setDelFlag(Byte delFlag) { |
|||
this.delFlag = delFlag; |
|||
} |
|||
|
|||
public String getCreateBy() { |
|||
return createBy; |
|||
} |
|||
|
|||
public void setCreateBy(String createBy) { |
|||
this.createBy = createBy == null ? null : createBy.trim(); |
|||
} |
|||
|
|||
public Date getCreateTime() { |
|||
return createTime; |
|||
} |
|||
|
|||
public void setCreateTime(Date createTime) { |
|||
this.createTime = createTime; |
|||
} |
|||
|
|||
public String getUpdateBy() { |
|||
return updateBy; |
|||
} |
|||
|
|||
public void setUpdateBy(String updateBy) { |
|||
this.updateBy = updateBy == null ? null : updateBy.trim(); |
|||
} |
|||
|
|||
public Date getUpdateTime() { |
|||
return updateTime; |
|||
} |
|||
|
|||
public void setUpdateTime(Date updateTime) { |
|||
this.updateTime = updateTime; |
|||
} |
|||
|
|||
@Override |
|||
public String toString() { |
|||
StringBuilder sb = new StringBuilder(); |
|||
sb.append(getClass().getSimpleName()); |
|||
sb.append(" ["); |
|||
sb.append("Hash = ").append(hashCode()); |
|||
sb.append(", id=").append(id); |
|||
sb.append(", taskId=").append(taskId); |
|||
sb.append(", memberIds=").append(memberIds); |
|||
sb.append(", taskStatus=").append(taskStatus); |
|||
sb.append(", auditStatus=").append(auditStatus); |
|||
sb.append(", rejectReason=").append(rejectReason); |
|||
sb.append(", auditTime=").append(auditTime); |
|||
sb.append(", delFlag=").append(delFlag); |
|||
sb.append(", createBy=").append(createBy); |
|||
sb.append(", createTime=").append(createTime); |
|||
sb.append(", updateBy=").append(updateBy); |
|||
sb.append(", updateTime=").append(updateTime); |
|||
sb.append("]"); |
|||
return sb.toString(); |
|||
} |
|||
} |
|||
@ -0,0 +1,961 @@ |
|||
package com.research.system.domain.po; |
|||
|
|||
import java.util.ArrayList; |
|||
import java.util.Date; |
|||
import java.util.List; |
|||
|
|||
public class TasTaskMemberExample { |
|||
protected String orderByClause; |
|||
|
|||
protected boolean distinct; |
|||
|
|||
protected List<Criteria> oredCriteria; |
|||
|
|||
public TasTaskMemberExample() { |
|||
oredCriteria = new ArrayList<Criteria>(); |
|||
} |
|||
|
|||
public void setOrderByClause(String orderByClause) { |
|||
this.orderByClause = orderByClause; |
|||
} |
|||
|
|||
public String getOrderByClause() { |
|||
return orderByClause; |
|||
} |
|||
|
|||
public void setDistinct(boolean distinct) { |
|||
this.distinct = distinct; |
|||
} |
|||
|
|||
public boolean isDistinct() { |
|||
return distinct; |
|||
} |
|||
|
|||
public List<Criteria> getOredCriteria() { |
|||
return oredCriteria; |
|||
} |
|||
|
|||
public void or(Criteria criteria) { |
|||
oredCriteria.add(criteria); |
|||
} |
|||
|
|||
public Criteria or() { |
|||
Criteria criteria = createCriteriaInternal(); |
|||
oredCriteria.add(criteria); |
|||
return criteria; |
|||
} |
|||
|
|||
public Criteria createCriteria() { |
|||
Criteria criteria = createCriteriaInternal(); |
|||
if (oredCriteria.size() == 0) { |
|||
oredCriteria.add(criteria); |
|||
} |
|||
return criteria; |
|||
} |
|||
|
|||
protected Criteria createCriteriaInternal() { |
|||
Criteria criteria = new Criteria(); |
|||
return criteria; |
|||
} |
|||
|
|||
public void clear() { |
|||
oredCriteria.clear(); |
|||
orderByClause = null; |
|||
distinct = false; |
|||
} |
|||
|
|||
protected abstract static class GeneratedCriteria { |
|||
protected List<Criterion> criteria; |
|||
|
|||
protected GeneratedCriteria() { |
|||
super(); |
|||
criteria = new ArrayList<Criterion>(); |
|||
} |
|||
|
|||
public boolean isValid() { |
|||
return criteria.size() > 0; |
|||
} |
|||
|
|||
public List<Criterion> getAllCriteria() { |
|||
return criteria; |
|||
} |
|||
|
|||
public List<Criterion> getCriteria() { |
|||
return criteria; |
|||
} |
|||
|
|||
protected void addCriterion(String condition) { |
|||
if (condition == null) { |
|||
throw new RuntimeException("Value for condition cannot be null"); |
|||
} |
|||
criteria.add(new Criterion(condition)); |
|||
} |
|||
|
|||
protected void addCriterion(String condition, Object value, String property) { |
|||
if (value == null) { |
|||
throw new RuntimeException("Value for " + property + " cannot be null"); |
|||
} |
|||
criteria.add(new Criterion(condition, value)); |
|||
} |
|||
|
|||
protected void addCriterion(String condition, Object value1, Object value2, String property) { |
|||
if (value1 == null || value2 == null) { |
|||
throw new RuntimeException("Between values for " + property + " cannot be null"); |
|||
} |
|||
criteria.add(new Criterion(condition, value1, value2)); |
|||
} |
|||
|
|||
public Criteria andIdIsNull() { |
|||
addCriterion("id is null"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andIdIsNotNull() { |
|||
addCriterion("id is not null"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andIdEqualTo(Long value) { |
|||
addCriterion("id =", value, "id"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andIdNotEqualTo(Long value) { |
|||
addCriterion("id <>", value, "id"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andIdGreaterThan(Long value) { |
|||
addCriterion("id >", value, "id"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andIdGreaterThanOrEqualTo(Long value) { |
|||
addCriterion("id >=", value, "id"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andIdLessThan(Long value) { |
|||
addCriterion("id <", value, "id"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andIdLessThanOrEqualTo(Long value) { |
|||
addCriterion("id <=", value, "id"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andIdIn(List<Long> values) { |
|||
addCriterion("id in", values, "id"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andIdNotIn(List<Long> values) { |
|||
addCriterion("id not in", values, "id"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andIdBetween(Long value1, Long value2) { |
|||
addCriterion("id between", value1, value2, "id"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andIdNotBetween(Long value1, Long value2) { |
|||
addCriterion("id not between", value1, value2, "id"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andTaskIdIsNull() { |
|||
addCriterion("task_id is null"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andTaskIdIsNotNull() { |
|||
addCriterion("task_id is not null"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andTaskIdEqualTo(Long value) { |
|||
addCriterion("task_id =", value, "taskId"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andTaskIdNotEqualTo(Long value) { |
|||
addCriterion("task_id <>", value, "taskId"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andTaskIdGreaterThan(Long value) { |
|||
addCriterion("task_id >", value, "taskId"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andTaskIdGreaterThanOrEqualTo(Long value) { |
|||
addCriterion("task_id >=", value, "taskId"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andTaskIdLessThan(Long value) { |
|||
addCriterion("task_id <", value, "taskId"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andTaskIdLessThanOrEqualTo(Long value) { |
|||
addCriterion("task_id <=", value, "taskId"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andTaskIdIn(List<Long> values) { |
|||
addCriterion("task_id in", values, "taskId"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andTaskIdNotIn(List<Long> values) { |
|||
addCriterion("task_id not in", values, "taskId"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andTaskIdBetween(Long value1, Long value2) { |
|||
addCriterion("task_id between", value1, value2, "taskId"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andTaskIdNotBetween(Long value1, Long value2) { |
|||
addCriterion("task_id not between", value1, value2, "taskId"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andMemberIdsIsNull() { |
|||
addCriterion("member_ids is null"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andMemberIdsIsNotNull() { |
|||
addCriterion("member_ids is not null"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andMemberIdsEqualTo(String value) { |
|||
addCriterion("member_ids =", value, "memberIds"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andMemberIdsNotEqualTo(String value) { |
|||
addCriterion("member_ids <>", value, "memberIds"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andMemberIdsGreaterThan(String value) { |
|||
addCriterion("member_ids >", value, "memberIds"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andMemberIdsGreaterThanOrEqualTo(String value) { |
|||
addCriterion("member_ids >=", value, "memberIds"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andMemberIdsLessThan(String value) { |
|||
addCriterion("member_ids <", value, "memberIds"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andMemberIdsLessThanOrEqualTo(String value) { |
|||
addCriterion("member_ids <=", value, "memberIds"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andMemberIdsLike(String value) { |
|||
addCriterion("member_ids like", value, "memberIds"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andMemberIdsNotLike(String value) { |
|||
addCriterion("member_ids not like", value, "memberIds"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andMemberIdsIn(List<String> values) { |
|||
addCriterion("member_ids in", values, "memberIds"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andMemberIdsNotIn(List<String> values) { |
|||
addCriterion("member_ids not in", values, "memberIds"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andMemberIdsBetween(String value1, String value2) { |
|||
addCriterion("member_ids between", value1, value2, "memberIds"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andMemberIdsNotBetween(String value1, String value2) { |
|||
addCriterion("member_ids not between", value1, value2, "memberIds"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andTaskStatusIsNull() { |
|||
addCriterion("task_status is null"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andTaskStatusIsNotNull() { |
|||
addCriterion("task_status is not null"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andTaskStatusEqualTo(Byte value) { |
|||
addCriterion("task_status =", value, "taskStatus"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andTaskStatusNotEqualTo(Byte value) { |
|||
addCriterion("task_status <>", value, "taskStatus"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andTaskStatusGreaterThan(Byte value) { |
|||
addCriterion("task_status >", value, "taskStatus"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andTaskStatusGreaterThanOrEqualTo(Byte value) { |
|||
addCriterion("task_status >=", value, "taskStatus"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andTaskStatusLessThan(Byte value) { |
|||
addCriterion("task_status <", value, "taskStatus"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andTaskStatusLessThanOrEqualTo(Byte value) { |
|||
addCriterion("task_status <=", value, "taskStatus"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andTaskStatusIn(List<Byte> values) { |
|||
addCriterion("task_status in", values, "taskStatus"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andTaskStatusNotIn(List<Byte> values) { |
|||
addCriterion("task_status not in", values, "taskStatus"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andTaskStatusBetween(Byte value1, Byte value2) { |
|||
addCriterion("task_status between", value1, value2, "taskStatus"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andTaskStatusNotBetween(Byte value1, Byte value2) { |
|||
addCriterion("task_status not between", value1, value2, "taskStatus"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andAuditStatusIsNull() { |
|||
addCriterion("audit_status is null"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andAuditStatusIsNotNull() { |
|||
addCriterion("audit_status is not null"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andAuditStatusEqualTo(Byte value) { |
|||
addCriterion("audit_status =", value, "auditStatus"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andAuditStatusNotEqualTo(Byte value) { |
|||
addCriterion("audit_status <>", value, "auditStatus"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andAuditStatusGreaterThan(Byte value) { |
|||
addCriterion("audit_status >", value, "auditStatus"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andAuditStatusGreaterThanOrEqualTo(Byte value) { |
|||
addCriterion("audit_status >=", value, "auditStatus"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andAuditStatusLessThan(Byte value) { |
|||
addCriterion("audit_status <", value, "auditStatus"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andAuditStatusLessThanOrEqualTo(Byte value) { |
|||
addCriterion("audit_status <=", value, "auditStatus"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andAuditStatusIn(List<Byte> values) { |
|||
addCriterion("audit_status in", values, "auditStatus"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andAuditStatusNotIn(List<Byte> values) { |
|||
addCriterion("audit_status not in", values, "auditStatus"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andAuditStatusBetween(Byte value1, Byte value2) { |
|||
addCriterion("audit_status between", value1, value2, "auditStatus"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andAuditStatusNotBetween(Byte value1, Byte value2) { |
|||
addCriterion("audit_status not between", value1, value2, "auditStatus"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andRejectReasonIsNull() { |
|||
addCriterion("reject_reason is null"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andRejectReasonIsNotNull() { |
|||
addCriterion("reject_reason is not null"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andRejectReasonEqualTo(String value) { |
|||
addCriterion("reject_reason =", value, "rejectReason"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andRejectReasonNotEqualTo(String value) { |
|||
addCriterion("reject_reason <>", value, "rejectReason"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andRejectReasonGreaterThan(String value) { |
|||
addCriterion("reject_reason >", value, "rejectReason"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andRejectReasonGreaterThanOrEqualTo(String value) { |
|||
addCriterion("reject_reason >=", value, "rejectReason"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andRejectReasonLessThan(String value) { |
|||
addCriterion("reject_reason <", value, "rejectReason"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andRejectReasonLessThanOrEqualTo(String value) { |
|||
addCriterion("reject_reason <=", value, "rejectReason"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andRejectReasonLike(String value) { |
|||
addCriterion("reject_reason like", value, "rejectReason"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andRejectReasonNotLike(String value) { |
|||
addCriterion("reject_reason not like", value, "rejectReason"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andRejectReasonIn(List<String> values) { |
|||
addCriterion("reject_reason in", values, "rejectReason"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andRejectReasonNotIn(List<String> values) { |
|||
addCriterion("reject_reason not in", values, "rejectReason"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andRejectReasonBetween(String value1, String value2) { |
|||
addCriterion("reject_reason between", value1, value2, "rejectReason"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andRejectReasonNotBetween(String value1, String value2) { |
|||
addCriterion("reject_reason not between", value1, value2, "rejectReason"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andAuditTimeIsNull() { |
|||
addCriterion("audit_time is null"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andAuditTimeIsNotNull() { |
|||
addCriterion("audit_time is not null"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andAuditTimeEqualTo(Date value) { |
|||
addCriterion("audit_time =", value, "auditTime"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andAuditTimeNotEqualTo(Date value) { |
|||
addCriterion("audit_time <>", value, "auditTime"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andAuditTimeGreaterThan(Date value) { |
|||
addCriterion("audit_time >", value, "auditTime"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andAuditTimeGreaterThanOrEqualTo(Date value) { |
|||
addCriterion("audit_time >=", value, "auditTime"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andAuditTimeLessThan(Date value) { |
|||
addCriterion("audit_time <", value, "auditTime"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andAuditTimeLessThanOrEqualTo(Date value) { |
|||
addCriterion("audit_time <=", value, "auditTime"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andAuditTimeIn(List<Date> values) { |
|||
addCriterion("audit_time in", values, "auditTime"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andAuditTimeNotIn(List<Date> values) { |
|||
addCriterion("audit_time not in", values, "auditTime"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andAuditTimeBetween(Date value1, Date value2) { |
|||
addCriterion("audit_time between", value1, value2, "auditTime"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andAuditTimeNotBetween(Date value1, Date value2) { |
|||
addCriterion("audit_time not between", value1, value2, "auditTime"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andDelFlagIsNull() { |
|||
addCriterion("del_flag is null"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andDelFlagIsNotNull() { |
|||
addCriterion("del_flag is not null"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andDelFlagEqualTo(Byte value) { |
|||
addCriterion("del_flag =", value, "delFlag"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andDelFlagNotEqualTo(Byte value) { |
|||
addCriterion("del_flag <>", value, "delFlag"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andDelFlagGreaterThan(Byte value) { |
|||
addCriterion("del_flag >", value, "delFlag"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andDelFlagGreaterThanOrEqualTo(Byte value) { |
|||
addCriterion("del_flag >=", value, "delFlag"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andDelFlagLessThan(Byte value) { |
|||
addCriterion("del_flag <", value, "delFlag"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andDelFlagLessThanOrEqualTo(Byte value) { |
|||
addCriterion("del_flag <=", value, "delFlag"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andDelFlagIn(List<Byte> values) { |
|||
addCriterion("del_flag in", values, "delFlag"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andDelFlagNotIn(List<Byte> values) { |
|||
addCriterion("del_flag not in", values, "delFlag"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andDelFlagBetween(Byte value1, Byte value2) { |
|||
addCriterion("del_flag between", value1, value2, "delFlag"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andDelFlagNotBetween(Byte value1, Byte value2) { |
|||
addCriterion("del_flag not between", value1, value2, "delFlag"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andCreateByIsNull() { |
|||
addCriterion("create_by is null"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andCreateByIsNotNull() { |
|||
addCriterion("create_by is not null"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andCreateByEqualTo(String value) { |
|||
addCriterion("create_by =", value, "createBy"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andCreateByNotEqualTo(String value) { |
|||
addCriterion("create_by <>", value, "createBy"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andCreateByGreaterThan(String value) { |
|||
addCriterion("create_by >", value, "createBy"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andCreateByGreaterThanOrEqualTo(String value) { |
|||
addCriterion("create_by >=", value, "createBy"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andCreateByLessThan(String value) { |
|||
addCriterion("create_by <", value, "createBy"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andCreateByLessThanOrEqualTo(String value) { |
|||
addCriterion("create_by <=", value, "createBy"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andCreateByLike(String value) { |
|||
addCriterion("create_by like", value, "createBy"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andCreateByNotLike(String value) { |
|||
addCriterion("create_by not like", value, "createBy"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andCreateByIn(List<String> values) { |
|||
addCriterion("create_by in", values, "createBy"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andCreateByNotIn(List<String> values) { |
|||
addCriterion("create_by not in", values, "createBy"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andCreateByBetween(String value1, String value2) { |
|||
addCriterion("create_by between", value1, value2, "createBy"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andCreateByNotBetween(String value1, String value2) { |
|||
addCriterion("create_by not between", value1, value2, "createBy"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andCreateTimeIsNull() { |
|||
addCriterion("create_time is null"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andCreateTimeIsNotNull() { |
|||
addCriterion("create_time is not null"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andCreateTimeEqualTo(Date value) { |
|||
addCriterion("create_time =", value, "createTime"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andCreateTimeNotEqualTo(Date value) { |
|||
addCriterion("create_time <>", value, "createTime"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andCreateTimeGreaterThan(Date value) { |
|||
addCriterion("create_time >", value, "createTime"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) { |
|||
addCriterion("create_time >=", value, "createTime"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andCreateTimeLessThan(Date value) { |
|||
addCriterion("create_time <", value, "createTime"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andCreateTimeLessThanOrEqualTo(Date value) { |
|||
addCriterion("create_time <=", value, "createTime"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andCreateTimeIn(List<Date> values) { |
|||
addCriterion("create_time in", values, "createTime"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andCreateTimeNotIn(List<Date> values) { |
|||
addCriterion("create_time not in", values, "createTime"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andCreateTimeBetween(Date value1, Date value2) { |
|||
addCriterion("create_time between", value1, value2, "createTime"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andCreateTimeNotBetween(Date value1, Date value2) { |
|||
addCriterion("create_time not between", value1, value2, "createTime"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andUpdateByIsNull() { |
|||
addCriterion("update_by is null"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andUpdateByIsNotNull() { |
|||
addCriterion("update_by is not null"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andUpdateByEqualTo(String value) { |
|||
addCriterion("update_by =", value, "updateBy"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andUpdateByNotEqualTo(String value) { |
|||
addCriterion("update_by <>", value, "updateBy"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andUpdateByGreaterThan(String value) { |
|||
addCriterion("update_by >", value, "updateBy"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andUpdateByGreaterThanOrEqualTo(String value) { |
|||
addCriterion("update_by >=", value, "updateBy"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andUpdateByLessThan(String value) { |
|||
addCriterion("update_by <", value, "updateBy"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andUpdateByLessThanOrEqualTo(String value) { |
|||
addCriterion("update_by <=", value, "updateBy"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andUpdateByLike(String value) { |
|||
addCriterion("update_by like", value, "updateBy"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andUpdateByNotLike(String value) { |
|||
addCriterion("update_by not like", value, "updateBy"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andUpdateByIn(List<String> values) { |
|||
addCriterion("update_by in", values, "updateBy"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andUpdateByNotIn(List<String> values) { |
|||
addCriterion("update_by not in", values, "updateBy"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andUpdateByBetween(String value1, String value2) { |
|||
addCriterion("update_by between", value1, value2, "updateBy"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andUpdateByNotBetween(String value1, String value2) { |
|||
addCriterion("update_by not between", value1, value2, "updateBy"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andUpdateTimeIsNull() { |
|||
addCriterion("update_time is null"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andUpdateTimeIsNotNull() { |
|||
addCriterion("update_time is not null"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andUpdateTimeEqualTo(Date value) { |
|||
addCriterion("update_time =", value, "updateTime"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andUpdateTimeNotEqualTo(Date value) { |
|||
addCriterion("update_time <>", value, "updateTime"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andUpdateTimeGreaterThan(Date value) { |
|||
addCriterion("update_time >", value, "updateTime"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andUpdateTimeGreaterThanOrEqualTo(Date value) { |
|||
addCriterion("update_time >=", value, "updateTime"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andUpdateTimeLessThan(Date value) { |
|||
addCriterion("update_time <", value, "updateTime"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andUpdateTimeLessThanOrEqualTo(Date value) { |
|||
addCriterion("update_time <=", value, "updateTime"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andUpdateTimeIn(List<Date> values) { |
|||
addCriterion("update_time in", values, "updateTime"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andUpdateTimeNotIn(List<Date> values) { |
|||
addCriterion("update_time not in", values, "updateTime"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andUpdateTimeBetween(Date value1, Date value2) { |
|||
addCriterion("update_time between", value1, value2, "updateTime"); |
|||
return (Criteria) this; |
|||
} |
|||
|
|||
public Criteria andUpdateTimeNotBetween(Date value1, Date value2) { |
|||
addCriterion("update_time not between", value1, value2, "updateTime"); |
|||
return (Criteria) this; |
|||
} |
|||
} |
|||
|
|||
public static class Criteria extends GeneratedCriteria { |
|||
|
|||
protected Criteria() { |
|||
super(); |
|||
} |
|||
} |
|||
|
|||
public static class Criterion { |
|||
private String condition; |
|||
|
|||
private Object value; |
|||
|
|||
private Object secondValue; |
|||
|
|||
private boolean noValue; |
|||
|
|||
private boolean singleValue; |
|||
|
|||
private boolean betweenValue; |
|||
|
|||
private boolean listValue; |
|||
|
|||
private String typeHandler; |
|||
|
|||
public String getCondition() { |
|||
return condition; |
|||
} |
|||
|
|||
public Object getValue() { |
|||
return value; |
|||
} |
|||
|
|||
public Object getSecondValue() { |
|||
return secondValue; |
|||
} |
|||
|
|||
public boolean isNoValue() { |
|||
return noValue; |
|||
} |
|||
|
|||
public boolean isSingleValue() { |
|||
return singleValue; |
|||
} |
|||
|
|||
public boolean isBetweenValue() { |
|||
return betweenValue; |
|||
} |
|||
|
|||
public boolean isListValue() { |
|||
return listValue; |
|||
} |
|||
|
|||
public String getTypeHandler() { |
|||
return typeHandler; |
|||
} |
|||
|
|||
protected Criterion(String condition) { |
|||
super(); |
|||
this.condition = condition; |
|||
this.typeHandler = null; |
|||
this.noValue = true; |
|||
} |
|||
|
|||
protected Criterion(String condition, Object value, String typeHandler) { |
|||
super(); |
|||
this.condition = condition; |
|||
this.value = value; |
|||
this.typeHandler = typeHandler; |
|||
if (value instanceof List<?>) { |
|||
this.listValue = true; |
|||
} else { |
|||
this.singleValue = true; |
|||
} |
|||
} |
|||
|
|||
protected Criterion(String condition, Object value) { |
|||
this(condition, value, null); |
|||
} |
|||
|
|||
protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { |
|||
super(); |
|||
this.condition = condition; |
|||
this.value = value; |
|||
this.secondValue = secondValue; |
|||
this.typeHandler = typeHandler; |
|||
this.betweenValue = true; |
|||
} |
|||
|
|||
protected Criterion(String condition, Object value, Object secondValue) { |
|||
this(condition, value, secondValue, null); |
|||
} |
|||
} |
|||
} |
|||
@ -1,148 +1,168 @@ |
|||
package com.research.system.domain.vo; |
|||
|
|||
import cn.hutool.core.collection.CollectionUtil; |
|||
import cn.hutool.core.collection.ListUtil; |
|||
import cn.hutool.core.date.DateUtil; |
|||
import cn.hutool.core.util.ArrayUtil; |
|||
import cn.hutool.core.util.StrUtil; |
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import com.research.system.domain.po.TaskList; |
|||
import com.research.system.domain.po.TaskListWithBLOBs; |
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
import org.apache.poi.hssf.record.WSBoolRecord; |
|||
|
|||
import java.util.Date; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @Author zzc |
|||
* @Package com.research.system.domain.dto |
|||
* @Date 2025/8/17 15:49 |
|||
* @description: |
|||
*/ |
|||
@Data |
|||
public class TaskVo { |
|||
|
|||
@Data |
|||
public static class TaskResult{ |
|||
@ApiModel("课题组信息") |
|||
public static class KtGroupInfo { |
|||
@ApiModelProperty("课题组ID") |
|||
private Long id; |
|||
|
|||
private Long projId; |
|||
|
|||
private Long projOrgId; |
|||
|
|||
private String taskName; |
|||
|
|||
private Integer taskType; |
|||
private Integer parentId; |
|||
private Long ktGroupId; |
|||
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT") |
|||
private Date startTime; |
|||
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT") |
|||
private Date endTime; |
|||
|
|||
@ApiModelProperty("课题组名称") |
|||
private String ktGroupName; |
|||
} |
|||
|
|||
private String initiator; |
|||
@Data |
|||
@ApiModel("课题组成员信息") |
|||
public static class GroupMemberInfo { |
|||
@ApiModelProperty("成员表ID") |
|||
private Long id; |
|||
|
|||
private Integer priority; |
|||
@ApiModelProperty("用户ID") |
|||
private Long userId; |
|||
|
|||
private Byte status; |
|||
private String description; |
|||
@ApiModelProperty("成员姓名") |
|||
private String memberName; |
|||
} |
|||
|
|||
@Data |
|||
@ApiModel("任务成员信息") |
|||
public static class TaskMemberInfo { |
|||
@ApiModelProperty("成员ID") |
|||
private Long memberId; |
|||
|
|||
private String createBy; |
|||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT") |
|||
private Date createTime; |
|||
|
|||
//实际完成时间
|
|||
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT") |
|||
private Date actualEndTime; |
|||
|
|||
private List<ExecutorResult> executorList; |
|||
|
|||
private List<DeliverableResult> deliverableShouldList; |
|||
|
|||
private String deliverables; |
|||
|
|||
private Byte complateStatus; |
|||
|
|||
public Byte getComplateStatus() { |
|||
if (CollectionUtil.isNotEmpty(deliverableShouldList) && getDeliverableList().size() > deliverableShouldList.size()) { |
|||
return 1; |
|||
} |
|||
return 0; |
|||
} |
|||
|
|||
public List<String> getDeliverableList() { |
|||
if (StrUtil.isNotEmpty(deliverables)) { |
|||
return ListUtil.toList(deliverables.split(",")); |
|||
} |
|||
return CollectionUtil.newArrayList(); |
|||
} |
|||
|
|||
public String getMonth(){ |
|||
if (startTime != null) { |
|||
return DateUtil.format(startTime, "yyyy-MM"); |
|||
} |
|||
return null; |
|||
} |
|||
public String getDay(){ |
|||
if (startTime != null) { |
|||
return DateUtil.format(startTime, "yyyy-MM-dd"); |
|||
} |
|||
return null; |
|||
} |
|||
@ApiModelProperty("成员姓名") |
|||
private String memberName; |
|||
|
|||
@ApiModelProperty("用户ID") |
|||
private Long userId; |
|||
} |
|||
|
|||
@Data |
|||
public static class ClientList{ |
|||
private String time; |
|||
private List<DateResult> clientList; |
|||
|
|||
@Data |
|||
public static class DateResult{ |
|||
private String date; |
|||
private List<TaskResult> taskResultList; |
|||
} |
|||
@ApiModel("任务列表信息(以member为主)") |
|||
public static class TaskInfo { |
|||
@ApiModelProperty("任务ID") |
|||
private Long taskId; |
|||
@ApiModelProperty("任务成员表ID") |
|||
private Long taskMemberId; |
|||
@ApiModelProperty("课题组ID") |
|||
private Long ktGroupId; |
|||
@ApiModelProperty("课题组名称") |
|||
private String ktGroupName; |
|||
@ApiModelProperty("任务名称") |
|||
private String taskName; |
|||
@ApiModelProperty("任务说明") |
|||
private String taskDescription; |
|||
@ApiModelProperty("负责人(多个用逗号分隔)") |
|||
private String memberNames; |
|||
@ApiModelProperty("负责人ID列表") |
|||
private String memberIds; |
|||
@ApiModelProperty("创建人ID") |
|||
private Long createBy; |
|||
@ApiModelProperty("创建人姓名") |
|||
private String createName; |
|||
@ApiModelProperty("优先级") |
|||
private Integer priority; |
|||
@ApiModelProperty("优先级名称") |
|||
private String priorityName; |
|||
@ApiModelProperty("任务类型") |
|||
private Integer taskType; |
|||
@ApiModelProperty("任务类型名称") |
|||
private String taskTypeName; |
|||
@ApiModelProperty("开始时间") |
|||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm") |
|||
private Date startTime; |
|||
@ApiModelProperty("截止时间") |
|||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm") |
|||
private Date endTime; |
|||
@ApiModelProperty("任务状态") |
|||
private Integer taskStatus; |
|||
@ApiModelProperty("任务状态名称") |
|||
private String taskStatusName; |
|||
@ApiModelProperty("审核状态") |
|||
private Integer auditStatus; |
|||
@ApiModelProperty("审核状态名称") |
|||
private String auditStatusName; |
|||
@ApiModelProperty("审核时间") |
|||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm") |
|||
private Date auditTime; |
|||
@ApiModelProperty("驳回原因") |
|||
private String rejectReason; |
|||
@ApiModelProperty("应交付物描述") |
|||
private String description; |
|||
@ApiModelProperty("应交付物") |
|||
private List<FileInfo> requiredDeliverable; |
|||
} |
|||
|
|||
@Data |
|||
public static class ExecutorResult{ |
|||
private Long id; |
|||
@ApiModel("文件信息") |
|||
public static class FileInfo { |
|||
@ApiModelProperty("文件ID") |
|||
private Long fileId; |
|||
|
|||
private Long taskId; |
|||
@ApiModelProperty("文件名称") |
|||
private String fileName; |
|||
|
|||
private Long executorId; |
|||
@ApiModelProperty("文件路径") |
|||
private String filePath; |
|||
|
|||
private String memberName; |
|||
@ApiModelProperty("业务id") |
|||
private Long relateId; |
|||
|
|||
} |
|||
|
|||
@Data |
|||
public static class DeliverableResult{ |
|||
private Long id; |
|||
@ApiModel("交付物信息") |
|||
public static class DeliverableInfo { |
|||
@ApiModelProperty("交付物ID") |
|||
private Long deliverableId; |
|||
|
|||
private String taskId; |
|||
@ApiModelProperty("任务成员表ID") |
|||
private Long taskMemberId; |
|||
|
|||
private String deliverableName; |
|||
@ApiModelProperty("提交时间") |
|||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
|||
private Date submitTime; |
|||
|
|||
private String deliverableUrl; |
|||
@ApiModelProperty("提交人ID") |
|||
private Long userId; |
|||
|
|||
private String deliveryInstructions; |
|||
private String referenceMaterials; |
|||
@ApiModelProperty("提交人姓名") |
|||
private String submitUserName; |
|||
|
|||
private Byte deliveryStatus; |
|||
@ApiModelProperty("交付物说明") |
|||
private String description; |
|||
|
|||
private Byte aduitStatus; |
|||
@ApiModelProperty("审核状态:0-待审核,1-审核通过,2-审核驳回") |
|||
private Integer auditStatus; |
|||
|
|||
private String submitterAccount; |
|||
@ApiModelProperty("审核状态名称") |
|||
private String auditStatusName; |
|||
|
|||
private Date submissionTime; |
|||
@ApiModelProperty("驳回原因") |
|||
private String rejectReason; |
|||
|
|||
private String reviewerAccount; |
|||
@ApiModelProperty("审核时间") |
|||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
|||
private Date auditTime; |
|||
|
|||
private Date reviewTime; |
|||
private String createBy; |
|||
private Date createTime; |
|||
@ApiModelProperty("文件列表") |
|||
private List<FileInfo> fileList; |
|||
} |
|||
|
|||
@Data |
|||
@ApiModel("创建任务返回结果") |
|||
public static class CreateTaskResult { |
|||
@ApiModelProperty("任务ID") |
|||
private Long taskId; |
|||
} |
|||
} |
|||
|
|||
@ -0,0 +1,25 @@ |
|||
package com.research.system.domain.vo; |
|||
|
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* @author zy |
|||
* @date 2026/4/18 15:57 |
|||
*/ |
|||
@Data |
|||
public class UserVo { |
|||
@Data |
|||
public static class MyselfVo { |
|||
@ApiModelProperty("任务总数") |
|||
private Integer taskCount; |
|||
@ApiModelProperty("任务完成数") |
|||
private Integer taskFinishedCount; |
|||
@ApiModelProperty("成果数") |
|||
private Integer resultCount; |
|||
@ApiModelProperty("客服电话") |
|||
private String servicePhone; |
|||
@ApiModelProperty("版本号") |
|||
private String version; |
|||
} |
|||
} |
|||
@ -1,25 +1,71 @@ |
|||
package com.research.system.persist.dao; |
|||
|
|||
import com.research.system.domain.dto.CommonDto; |
|||
import com.research.system.domain.dto.TaskDto; |
|||
import com.research.system.domain.po.TasTaskMember; |
|||
import com.research.system.domain.vo.TaskVo; |
|||
import com.research.system.domain.vo.UserVo; |
|||
import org.apache.ibatis.annotations.Param; |
|||
|
|||
import java.util.List; |
|||
|
|||
|
|||
/** |
|||
* @Author zzc |
|||
* @Package com.research.system.persist.dao |
|||
* @Date 2025/8/18 16:04 |
|||
* @description: |
|||
* @author zy |
|||
* @date 2026/04/15 |
|||
*/ |
|||
public interface TaskDao { |
|||
|
|||
List<TaskVo.TaskResult> queryList(@Param("dto") TaskDto.QueryTask dto); |
|||
/** |
|||
* 批量插入任务成员 |
|||
*/ |
|||
void batchInsertTaskMembers(@Param("list") List<TasTaskMember> members); |
|||
|
|||
/** |
|||
* 根据任务ID删除任务成员 |
|||
*/ |
|||
void deleteTaskMembersByTaskId(@Param("taskId") Long taskId); |
|||
|
|||
/** |
|||
* 查询任务列表(以member为主,一个任务多个负责人返回多条) |
|||
*/ |
|||
List<TaskVo.TaskInfo> queryTaskList(@Param("param") TaskDto.QueryTaskList param, @Param("userId") Long userId, @Param("memberIdList") List<Long> memberIdList); |
|||
|
|||
/** |
|||
* 根据任务ID列表查询任务成员 |
|||
*/ |
|||
List<TaskVo.TaskMemberInfo> queryTaskMembersByTaskIds(@Param("taskIds") List<Long> taskIds); |
|||
|
|||
/** |
|||
* 根据任务ID查询任务成员 |
|||
*/ |
|||
List<TaskVo.TaskMemberInfo> queryTaskMembersByTaskId(@Param("taskId") Long taskId); |
|||
|
|||
/** |
|||
* 查询交付物列表 |
|||
*/ |
|||
List<TaskVo.DeliverableInfo> queryDeliverableList(@Param("taskMemberId") Long taskMemberId); |
|||
|
|||
/** |
|||
* 根据类型和业务ID列表查询文件 |
|||
*/ |
|||
List<TaskVo.FileInfo> queryFilesByDeliverableIds(@Param("relateIds") List<Long> relateIds, @Param("relateType") String relateType); |
|||
|
|||
/** |
|||
* 获取当前用户关联的课题组列表 |
|||
*/ |
|||
List<TaskVo.KtGroupInfo> getMyGroupList(@Param("userId") Long userId, |
|||
@Param("orgId")Long orgId, |
|||
@Param("userType")Integer userType); |
|||
|
|||
/** |
|||
* 获取课题组下的成员信息 |
|||
*/ |
|||
List<TaskVo.GroupMemberInfo> getGroupMembers(@Param("ktGroupIds") List<Long> ktGroupIds, @Param("memberName") String memberName); |
|||
|
|||
void deleteFileByType(@Param("relateId")Long relateId, @Param("relateType") String relateType); |
|||
|
|||
TaskVo.TaskResult detail(@Param("id") Long id); |
|||
List<TaskVo.ExecutorResult> queryExecutorList(@Param("dto") TaskDto.QueryExecutor dto); |
|||
|
|||
List<TaskVo.DeliverableResult> queryDeliverableList(@Param("id") Long id); |
|||
UserVo.MyselfVo getTaskNumByUserId(String phone); |
|||
|
|||
} |
|||
Integer getResultCount(@Param("userId")Long userId); |
|||
} |
|||
@ -0,0 +1,28 @@ |
|||
package com.research.system.persist.mapper; |
|||
|
|||
import com.research.system.domain.po.ComFile; |
|||
import com.research.system.domain.po.ComFileExample; |
|||
import java.util.List; |
|||
import org.apache.ibatis.annotations.Param; |
|||
|
|||
public interface ComFileMapper { |
|||
long countByExample(ComFileExample example); |
|||
|
|||
int deleteByPrimaryKey(Long id); |
|||
|
|||
int insert(ComFile record); |
|||
|
|||
int insertSelective(ComFile record); |
|||
|
|||
List<ComFile> selectByExample(ComFileExample example); |
|||
|
|||
ComFile selectByPrimaryKey(Long id); |
|||
|
|||
int updateByExampleSelective(@Param("record") ComFile record, @Param("example") ComFileExample example); |
|||
|
|||
int updateByExample(@Param("record") ComFile record, @Param("example") ComFileExample example); |
|||
|
|||
int updateByPrimaryKeySelective(ComFile record); |
|||
|
|||
int updateByPrimaryKey(ComFile record); |
|||
} |
|||
@ -0,0 +1,28 @@ |
|||
package com.research.system.persist.mapper; |
|||
|
|||
import com.research.system.domain.po.TasDeliverable; |
|||
import com.research.system.domain.po.TasDeliverableExample; |
|||
import java.util.List; |
|||
import org.apache.ibatis.annotations.Param; |
|||
|
|||
public interface TasDeliverableMapper { |
|||
long countByExample(TasDeliverableExample example); |
|||
|
|||
int deleteByPrimaryKey(Long id); |
|||
|
|||
int insert(TasDeliverable record); |
|||
|
|||
int insertSelective(TasDeliverable record); |
|||
|
|||
List<TasDeliverable> selectByExample(TasDeliverableExample example); |
|||
|
|||
TasDeliverable selectByPrimaryKey(Long id); |
|||
|
|||
int updateByExampleSelective(@Param("record") TasDeliverable record, @Param("example") TasDeliverableExample example); |
|||
|
|||
int updateByExample(@Param("record") TasDeliverable record, @Param("example") TasDeliverableExample example); |
|||
|
|||
int updateByPrimaryKeySelective(TasDeliverable record); |
|||
|
|||
int updateByPrimaryKey(TasDeliverable record); |
|||
} |
|||
@ -0,0 +1,34 @@ |
|||
package com.research.system.persist.mapper; |
|||
|
|||
import com.research.system.domain.po.TasTask; |
|||
import com.research.system.domain.po.TasTaskExample; |
|||
import java.util.List; |
|||
import org.apache.ibatis.annotations.Param; |
|||
|
|||
public interface TasTaskMapper { |
|||
long countByExample(TasTaskExample example); |
|||
|
|||
int deleteByPrimaryKey(Long id); |
|||
|
|||
int insert(TasTask record); |
|||
|
|||
int insertSelective(TasTask record); |
|||
|
|||
List<TasTask> selectByExampleWithBLOBs(TasTaskExample example); |
|||
|
|||
List<TasTask> selectByExample(TasTaskExample example); |
|||
|
|||
TasTask selectByPrimaryKey(Long id); |
|||
|
|||
int updateByExampleSelective(@Param("record") TasTask record, @Param("example") TasTaskExample example); |
|||
|
|||
int updateByExampleWithBLOBs(@Param("record") TasTask record, @Param("example") TasTaskExample example); |
|||
|
|||
int updateByExample(@Param("record") TasTask record, @Param("example") TasTaskExample example); |
|||
|
|||
int updateByPrimaryKeySelective(TasTask record); |
|||
|
|||
int updateByPrimaryKeyWithBLOBs(TasTask record); |
|||
|
|||
int updateByPrimaryKey(TasTask record); |
|||
} |
|||
@ -0,0 +1,28 @@ |
|||
package com.research.system.persist.mapper; |
|||
|
|||
import com.research.system.domain.po.TasTaskMember; |
|||
import com.research.system.domain.po.TasTaskMemberExample; |
|||
import java.util.List; |
|||
import org.apache.ibatis.annotations.Param; |
|||
|
|||
public interface TasTaskMemberMapper { |
|||
long countByExample(TasTaskMemberExample example); |
|||
|
|||
int deleteByPrimaryKey(Long id); |
|||
|
|||
int insert(TasTaskMember record); |
|||
|
|||
int insertSelective(TasTaskMember record); |
|||
|
|||
List<TasTaskMember> selectByExample(TasTaskMemberExample example); |
|||
|
|||
TasTaskMember selectByPrimaryKey(Long id); |
|||
|
|||
int updateByExampleSelective(@Param("record") TasTaskMember record, @Param("example") TasTaskMemberExample example); |
|||
|
|||
int updateByExample(@Param("record") TasTaskMember record, @Param("example") TasTaskMemberExample example); |
|||
|
|||
int updateByPrimaryKeySelective(TasTaskMember record); |
|||
|
|||
int updateByPrimaryKey(TasTaskMember record); |
|||
} |
|||
@ -0,0 +1,66 @@ |
|||
package com.research.system.service; |
|||
|
|||
import com.research.system.domain.dto.TaskDto; |
|||
import com.research.system.domain.vo.TaskVo; |
|||
|
|||
import javax.servlet.http.HttpServletResponse; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @author zy |
|||
* @date 2026/04/15 |
|||
*/ |
|||
public interface ITaskService { |
|||
|
|||
/** |
|||
* 获取当前用户关联的课题组列表 |
|||
*/ |
|||
List<TaskVo.KtGroupInfo> getMyGroupList(); |
|||
|
|||
/** |
|||
* 获取课题组下的成员信息 |
|||
*/ |
|||
List<TaskVo.GroupMemberInfo> getGroupMembers(TaskDto.GetGroupMembers param); |
|||
|
|||
/** |
|||
* 创建任务 |
|||
*/ |
|||
TaskVo.CreateTaskResult createTask(TaskDto.CreateTask param, Long userId); |
|||
|
|||
/** |
|||
* 修改任务 |
|||
*/ |
|||
void updateTask(TaskDto.UpdateTask param); |
|||
|
|||
/** |
|||
* 批量删除任务 |
|||
*/ |
|||
void batchDeleteTask(TaskDto.BatchDeleteTask param); |
|||
|
|||
/** |
|||
* 查询任务列表 |
|||
*/ |
|||
List<TaskVo.TaskInfo> queryTaskList(TaskDto.QueryTaskList param, Long userId); |
|||
|
|||
void exportTask(HttpServletResponse response, TaskDto.QueryTaskList param, Long userId); |
|||
|
|||
/** |
|||
* 查询交付物列表 |
|||
*/ |
|||
List<TaskVo.DeliverableInfo> getDeliverableList(TaskDto.QueryDeliverableList param); |
|||
|
|||
/** |
|||
* 提交交付物 |
|||
*/ |
|||
void submitDeliverable(TaskDto.SubmitDeliverable param, Long userId); |
|||
|
|||
/** |
|||
* 审核任务 |
|||
*/ |
|||
void auditTask(TaskDto.AuditTask param, Long userId); |
|||
|
|||
/** |
|||
* 审核交付物 |
|||
*/ |
|||
void auditDeliverable(TaskDto.AuditDeliverable param, Long userId); |
|||
} |
|||
@ -1,46 +0,0 @@ |
|||
package com.research.system.service; |
|||
|
|||
import com.research.system.domain.dto.CommonDto; |
|||
import com.research.system.domain.dto.TaskDto; |
|||
import com.research.system.domain.vo.TaskVo; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @Author zzc |
|||
* @Package com.research.system.service |
|||
* @Date 2025/8/17 15:52 |
|||
* @description: |
|||
*/ |
|||
public interface TaskService { |
|||
|
|||
List<TaskVo.TaskResult> queryList(TaskDto.QueryTask query); |
|||
|
|||
List<TaskVo.ClientList> queryListClient(TaskDto.QueryTask query); |
|||
|
|||
TaskVo.TaskResult detail(Long id); |
|||
|
|||
void add(TaskDto.AddTask dto); |
|||
|
|||
void del(CommonDto.DelDto dto); |
|||
|
|||
List<TaskVo.ExecutorResult> queryExecutorList(TaskDto.QueryExecutor query); |
|||
|
|||
void addExecutor(TaskDto.AddExecutor dto); |
|||
|
|||
void delExecutor(CommonDto.DelDto dto); |
|||
|
|||
List<TaskVo.DeliverableResult> queryDeliverableList(TaskDto.QueryDeliverable query); |
|||
|
|||
void addDeliverable(TaskDto.AddDeliverable dto); |
|||
|
|||
void delDeliverable(CommonDto.DelDto dto); |
|||
|
|||
/** |
|||
* 交付物审核 |
|||
* @param taskId 任务ID |
|||
* @param deliverableId 交付物ID |
|||
* @param status 审核状态(0未审核;1已通过;2不通过) |
|||
*/ |
|||
void aduit(Long taskId, Long deliverableId, Byte status); |
|||
} |
|||
@ -1,284 +1,662 @@ |
|||
package com.research.system.service.impl; |
|||
|
|||
import cn.hutool.core.bean.BeanUtil; |
|||
import cn.hutool.core.collection.CollectionUtil; |
|||
import cn.hutool.core.collection.CollUtil; |
|||
import cn.hutool.core.date.DateUtil; |
|||
import cn.hutool.core.io.IoUtil; |
|||
import cn.hutool.core.util.IdUtil; |
|||
import cn.hutool.core.util.ObjectUtil; |
|||
import cn.hutool.core.util.StrUtil; |
|||
import cn.hutool.poi.excel.BigExcelWriter; |
|||
import com.research.common.core.domain.entity.SysRole; |
|||
import com.research.common.core.domain.model.LoginUser; |
|||
import com.research.common.exception.ServiceException; |
|||
import com.research.common.exception.base.BaseException; |
|||
import com.research.common.utils.SecurityUtils; |
|||
import com.research.system.domain.dto.CommonDto; |
|||
import com.research.system.domain.dto.TaskDto; |
|||
import com.research.system.domain.po.*; |
|||
import com.research.system.domain.vo.ClientPrjProjInfoVo; |
|||
import com.research.system.domain.vo.TaskVo; |
|||
import com.research.system.persist.dao.TaskDao; |
|||
import com.research.system.persist.mapper.KtsKtGroupMemberMapper; |
|||
import com.research.system.persist.mapper.TaskDeliverableMapper; |
|||
import com.research.system.persist.mapper.TaskExecutorMapper; |
|||
import com.research.system.persist.mapper.TaskListMapper; |
|||
import com.research.system.service.ClientPrjProjInfoService; |
|||
import com.research.system.service.TaskService; |
|||
import com.research.system.persist.mapper.*; |
|||
import com.research.system.service.ITaskService; |
|||
import lombok.extern.slf4j.Slf4j; |
|||
import org.springframework.beans.BeanUtils; |
|||
import org.springframework.stereotype.Service; |
|||
import org.springframework.transaction.annotation.Propagation; |
|||
import org.springframework.transaction.annotation.Transactional; |
|||
|
|||
import javax.annotation.Resource; |
|||
import javax.servlet.ServletOutputStream; |
|||
import javax.servlet.http.HttpServletResponse; |
|||
import java.io.IOException; |
|||
import java.util.*; |
|||
import java.util.stream.Collectors; |
|||
|
|||
import static com.research.common.utils.SecurityUtils.getLoginUser; |
|||
|
|||
/** |
|||
* @Author zzc |
|||
* @Package com.research.system.service.impl |
|||
* @Date 2025/8/17 15:53 |
|||
* @description: |
|||
* @author zy |
|||
* @date 2026/04/15 |
|||
*/ |
|||
@Slf4j |
|||
@Service |
|||
public class TaskServiceImpl implements TaskService { |
|||
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) |
|||
public class TaskServiceImpl implements ITaskService { |
|||
|
|||
@Resource |
|||
private TaskListMapper taskListMapper; |
|||
@Resource |
|||
private TaskExecutorMapper taskExecutorMapper; |
|||
private TasTaskMapper taskMapper; |
|||
|
|||
@Resource |
|||
private TaskDeliverableMapper taskDeliverableMapper; |
|||
private TasTaskMemberMapper taskMemberMapper; |
|||
|
|||
@Resource |
|||
private ClientPrjProjInfoService clientPrjProjInfoService; |
|||
private TasDeliverableMapper deliverableMapper; |
|||
|
|||
@Resource |
|||
private KtsKtGroupMemberMapper ktsKtGroupMemberMapper; |
|||
private ComFileMapper fileMapper; |
|||
|
|||
@Resource |
|||
private TaskDao taskDao; |
|||
|
|||
@Resource |
|||
private KtsKtGroupMapper ktsKtGroupMapper; |
|||
@Resource |
|||
private KtsKtGroupMemberMapper ktsKtGroupMemberMapper; |
|||
|
|||
@Override |
|||
public List<TaskVo.TaskResult> queryList(TaskDto.QueryTask query) { |
|||
|
|||
if (query.getDateType() != null) { |
|||
//日期查询 0全部 1今日 2本周 3本月
|
|||
switch (query.getDateType()){ |
|||
case 0: |
|||
query.setStartTime(null); |
|||
query.setEndTime(null); |
|||
public List<TaskVo.KtGroupInfo> getMyGroupList() { |
|||
Long userId = null; |
|||
Long orgId = null; |
|||
//0:普通用户 1:合作单位管理员 2:项目管理或超管
|
|||
int userType = 0; |
|||
|
|||
LoginUser loginUser = getLoginUser(); |
|||
if(CollUtil.isNotEmpty(loginUser.getUser().getRoles())){ |
|||
List<SysRole> roles = loginUser.getUser().getRoles(); |
|||
for (SysRole role : roles){ |
|||
if(role.getRoleKey().equals("pro_admin") || role.getRoleKey().equals("admin")){ |
|||
userType = 2; |
|||
userId = loginUser.getUser().getUserId(); |
|||
break; |
|||
case 1: |
|||
query.setStartTime(DateUtil.beginOfDay(new Date())); |
|||
query.setEndTime(DateUtil.endOfDay(new Date())); |
|||
} else if (role.getRoleKey().equals("org_admin")) { |
|||
userType = 3; |
|||
userId = loginUser.getUser().getUserId(); |
|||
orgId = loginUser.getUser().getOrgId(); |
|||
break; |
|||
case 2: |
|||
query.setStartTime(DateUtil.beginOfWeek(new Date())); |
|||
query.setEndTime(DateUtil.endOfWeek(new Date())); |
|||
}else { |
|||
userType = 0; |
|||
userId = loginUser.getUser().getUserId(); |
|||
break; |
|||
case 3: |
|||
query.setStartTime(DateUtil.beginOfMonth(new Date())); |
|||
query.setEndTime(DateUtil.endOfMonth(new Date())); |
|||
} |
|||
} |
|||
} |
|||
return taskDao.getMyGroupList(userId, orgId, userType); |
|||
} |
|||
|
|||
@Override |
|||
public List<TaskVo.GroupMemberInfo> getGroupMembers(TaskDto.GetGroupMembers param) { |
|||
List<Long> groupIds = param.getKtGroupIds(); |
|||
if(ObjectUtil.isNull(param.getKtGroupId())){ |
|||
Long userId = null; |
|||
Long orgId = null; |
|||
//0:普通用户 1:合作单位管理员 2:项目管理或超管
|
|||
int userType = 0; |
|||
|
|||
return taskDao.queryList(query); |
|||
LoginUser loginUser = getLoginUser(); |
|||
if(CollUtil.isNotEmpty(loginUser.getUser().getRoles())){ |
|||
List<SysRole> roles = loginUser.getUser().getRoles(); |
|||
for (SysRole role : roles){ |
|||
if(role.getRoleKey().equals("pro_admin") || role.getRoleKey().equals("admin")){ |
|||
userType = 2; |
|||
userId = loginUser.getUser().getUserId(); |
|||
break; |
|||
} else if (role.getRoleKey().equals("org_admin")) { |
|||
userType = 3; |
|||
userId = loginUser.getUser().getUserId(); |
|||
orgId = loginUser.getUser().getOrgId(); |
|||
break; |
|||
}else { |
|||
userType = 0; |
|||
userId = loginUser.getUser().getUserId(); |
|||
break; |
|||
} |
|||
} |
|||
} |
|||
List<TaskVo.KtGroupInfo> myGroupList = taskDao.getMyGroupList(userId, orgId, userType); |
|||
groupIds = myGroupList.stream().map(TaskVo.KtGroupInfo::getId).collect(Collectors.toList()); |
|||
}else { |
|||
groupIds.add(param.getKtGroupId()); |
|||
} |
|||
if(CollUtil.isNotEmpty(groupIds)){ |
|||
return taskDao.getGroupMembers(groupIds, param.getMemberName()); |
|||
}else { |
|||
return new ArrayList<>(); |
|||
} |
|||
} |
|||
|
|||
@Override |
|||
public List<TaskVo.ClientList> queryListClient(TaskDto.QueryTask query) { |
|||
List<TaskVo.ClientList> result = new ArrayList<>(); |
|||
if (query.getDateType() != null) { |
|||
//日期查询 0全部 1今日 2本周 3本月
|
|||
switch (query.getDateType()){ |
|||
case 0: |
|||
query.setStartTime(null); |
|||
query.setEndTime(null); |
|||
break; |
|||
case 1: |
|||
query.setStartTime(DateUtil.beginOfDay(new Date())); |
|||
query.setEndTime(DateUtil.endOfDay(new Date())); |
|||
break; |
|||
case 2: |
|||
query.setStartTime(DateUtil.beginOfWeek(new Date())); |
|||
query.setEndTime(DateUtil.endOfWeek(new Date())); |
|||
break; |
|||
case 3: |
|||
query.setStartTime(DateUtil.beginOfMonth(new Date())); |
|||
query.setEndTime(DateUtil.endOfMonth(new Date())); |
|||
public TaskVo.CreateTaskResult createTask(TaskDto.CreateTask param, Long userId) { |
|||
// 1. 检查课题是否存在
|
|||
KtsKtGroup ktGroup = ktsKtGroupMapper.selectByPrimaryKey(param.getKtGroupId()); |
|||
if(ObjectUtil.isNull(ktGroup)){ |
|||
throw new ServiceException("课题不存在"); |
|||
} |
|||
//根据课题查询合作单位id
|
|||
param.setProjOrgId(ktGroup.getProjOrgId()); |
|||
|
|||
// 3. 校验截止时间是否大于当前时间
|
|||
if (param.getEndTime() != null && DateUtil.parse(param.getEndTime()).before(new Date())) { |
|||
throw new ServiceException("截止时间必须大于当前时间"); |
|||
} |
|||
|
|||
// 4. 新增任务记录到 tas_task 表
|
|||
TasTask task = new TasTask(); |
|||
BeanUtils.copyProperties(param, task); |
|||
Long taskId = IdUtil.getSnowflakeNextId(); |
|||
task.setId(taskId); |
|||
task.setTaskCreatorId(userId); |
|||
task.setStartTime(new Date()); |
|||
task.setEndTime(DateUtil.parse(param.getEndTime())); |
|||
task.setCreateBy(SecurityUtils.getUsername()); |
|||
taskMapper.insertSelective(task); |
|||
|
|||
//添加应交付物文件
|
|||
// 添加文件信息
|
|||
if (CollUtil.isNotEmpty(param.getRequiredDeliverable())) { |
|||
for (String url : param.getRequiredDeliverable()) { |
|||
ComFile file = new ComFile(); |
|||
file.setId(IdUtil.getSnowflakeNextId()); |
|||
file.setRelateId(taskId); |
|||
file.setRelateType("required_deliverable"); |
|||
file.setFilePath(url); |
|||
file.setCreateBy(SecurityUtils.getUsername()); |
|||
fileMapper.insertSelective(file); |
|||
} |
|||
} |
|||
//获取课题组ID
|
|||
Long userId = SecurityUtils.getUserId(); |
|||
KtsKtGroupMemberExample ktsKtGroupMemberExample = new KtsKtGroupMemberExample(); |
|||
ktsKtGroupMemberExample.createCriteria().andUserIdEqualTo(userId); |
|||
List<KtsKtGroupMember> ktsKtGroupMembers = ktsKtGroupMemberMapper.selectByExample(ktsKtGroupMemberExample); |
|||
if (CollectionUtil.isNotEmpty(ktsKtGroupMembers)) { |
|||
query.setUserId(ktsKtGroupMembers.get(0).getId()); |
|||
} |
|||
List<TaskVo.TaskResult> taskResults = taskDao.queryList(query); |
|||
if (CollectionUtil.isNotEmpty(taskResults)) { |
|||
Map<String, List<TaskVo.TaskResult>> collect = taskResults.stream().collect(Collectors.groupingBy(TaskVo.TaskResult::getMonth)); |
|||
for (Map.Entry<String, List<TaskVo.TaskResult>> entry : collect.entrySet()) { |
|||
TaskVo.ClientList clientList = new TaskVo.ClientList(); |
|||
clientList.setTime(entry.getKey()); |
|||
List<TaskVo.ClientList.DateResult> dateResultList = new ArrayList<>(); |
|||
List<TaskVo.TaskResult> value = entry.getValue(); |
|||
if (CollectionUtil.isNotEmpty( value)){ |
|||
Map<String, List<TaskVo.TaskResult>> collect1 = value.stream().collect(Collectors.groupingBy(TaskVo.TaskResult::getDay)); |
|||
for (Map.Entry<String, List<TaskVo.TaskResult>> entry1 : collect1.entrySet()) { |
|||
TaskVo.ClientList.DateResult dateResult = new TaskVo.ClientList.DateResult(); |
|||
dateResult.setTaskResultList(entry1.getValue()); |
|||
dateResult.setDate(entry1.getKey()); |
|||
dateResultList.add(dateResult); |
|||
} |
|||
dateResultList.stream().sorted(Comparator.comparing(TaskVo.ClientList.DateResult::getDate)).collect(Collectors.toList()); |
|||
clientList.setClientList(dateResultList); |
|||
} |
|||
result.add(clientList); |
|||
|
|||
// 5. 根据任务类型创建任务成员关联
|
|||
List<TasTaskMember> members = new ArrayList<>(); |
|||
if (param.getTaskType() == 1) { |
|||
// 单人任务:根据负责人创建多条任务成员关联表
|
|||
for (Long memberId : param.getMemberIds()) { |
|||
TasTaskMember member = createTaskMember(taskId, String.valueOf(memberId)); |
|||
members.add(member); |
|||
} |
|||
} else if (param.getTaskType() == 2) { |
|||
// 多人协作任务:创建一条任务成员关联表,多个成员ID逗号分隔
|
|||
String memberIdsStr = param.getMemberIds().stream() |
|||
.map(String::valueOf) |
|||
.collect(Collectors.joining(",")); |
|||
TasTaskMember member = createTaskMember(taskId, memberIdsStr); |
|||
members.add(member); |
|||
} |
|||
|
|||
if (CollUtil.isNotEmpty(members)) { |
|||
taskDao.batchInsertTaskMembers(members); |
|||
} |
|||
|
|||
TaskVo.CreateTaskResult result = new TaskVo.CreateTaskResult(); |
|||
result.setTaskId(taskId); |
|||
return result; |
|||
} |
|||
|
|||
private TasTaskMember createTaskMember(Long taskId, String memberIds) { |
|||
TasTaskMember member = new TasTaskMember(); |
|||
member.setId(IdUtil.getSnowflakeNextId()); |
|||
member.setTaskId(taskId); |
|||
member.setMemberIds(memberIds); |
|||
member.setTaskStatus((byte) 0); |
|||
member.setAuditStatus((byte) 0); |
|||
member.setCreateBy(SecurityUtils.getUsername()); |
|||
return member; |
|||
} |
|||
|
|||
@Override |
|||
public TaskVo.TaskResult detail(Long id) { |
|||
return taskDao.detail(id); |
|||
public void updateTask(TaskDto.UpdateTask param) { |
|||
// 1. 判断任务是否存在
|
|||
TasTaskMember tasTaskMember = taskMemberMapper.selectByPrimaryKey(param.getTaskMemberId()); |
|||
if (tasTaskMember == null || tasTaskMember.getDelFlag() == 1) { |
|||
throw new ServiceException("任务不存在"); |
|||
} |
|||
TasTask task = taskMapper.selectByPrimaryKey(tasTaskMember.getTaskId()); |
|||
if (task == null || task.getDelFlag() == 1) { |
|||
throw new ServiceException("任务不存在"); |
|||
} |
|||
|
|||
// 2. 只能修改任务的名称、说明、优先级、截止时间
|
|||
TasTask updateTask = new TasTask(); |
|||
updateTask.setId(task.getId()); |
|||
if (StrUtil.isNotBlank(param.getTaskName())) { |
|||
updateTask.setTaskName(param.getTaskName()); |
|||
} |
|||
if (StrUtil.isNotBlank(param.getTaskDescription())) { |
|||
updateTask.setTaskDescription(param.getTaskDescription()); |
|||
} |
|||
if (param.getPriority() != null) { |
|||
updateTask.setPriority(param.getPriority().byteValue()); |
|||
} |
|||
if (param.getEndTime() != null) { |
|||
updateTask.setEndTime(DateUtil.parse(param.getEndTime())); |
|||
} |
|||
if (StrUtil.isNotBlank(param.getDescription())) { |
|||
updateTask.setDescription(param.getDescription()); |
|||
} |
|||
updateTask.setUpdateBy(SecurityUtils.getUsername()); |
|||
updateTask.setUpdateTime(new Date()); |
|||
taskMapper.updateByPrimaryKeySelective(updateTask); |
|||
//修改应交付物,先删除,在添加
|
|||
taskDao.deleteFileByType(task.getId(), "required_deliverable"); |
|||
|
|||
// 添加文件信息
|
|||
if (CollUtil.isNotEmpty(param.getRequiredDeliverable())) { |
|||
for (String url : param.getRequiredDeliverable()) { |
|||
ComFile file = new ComFile(); |
|||
file.setId(IdUtil.getSnowflakeNextId()); |
|||
file.setRelateId(task.getId()); |
|||
file.setRelateType("required_deliverable"); |
|||
file.setFilePath(url); |
|||
file.setCreateBy(SecurityUtils.getUsername()); |
|||
fileMapper.insertSelective(file); |
|||
} |
|||
} |
|||
} |
|||
|
|||
@Override |
|||
public void add(TaskDto.AddTask dto) { |
|||
TaskListWithBLOBs taskList = BeanUtil.copyProperties(dto, TaskListWithBLOBs.class); |
|||
if (dto.getId() == null) { |
|||
PrjProjInfo proInfoByTenantId = clientPrjProjInfoService.getProInfoByTenantId(SecurityUtils.getTenantId()); |
|||
if (proInfoByTenantId == null) { |
|||
throw new BaseException("未查询到项目"); |
|||
public void batchDeleteTask(TaskDto.BatchDeleteTask param) { |
|||
for (Long taskMemberId : param.getTaskMemberIds()) { |
|||
// 1. 判断任务是否存在
|
|||
TasTaskMember tasTaskMember = taskMemberMapper.selectByPrimaryKey(taskMemberId); |
|||
if (tasTaskMember == null || tasTaskMember.getDelFlag() == 1) { |
|||
throw new ServiceException("任务不存在"); |
|||
} |
|||
taskList.setCreateBy(SecurityUtils.getUsername()); |
|||
taskList.setCreateTime(new Date()); |
|||
taskList.setProjId(proInfoByTenantId.getId()); |
|||
taskList.setDelFlag((byte) 0); |
|||
taskList.setInitiator(SecurityUtils.getUsername()); |
|||
taskList.setId(IdUtil.getSnowflake().nextId()); |
|||
taskList.setDeliverables(dto.getDeliverableList()); |
|||
taskListMapper.insertSelective(taskList); |
|||
|
|||
if (dto.getExecutorList() != null) { |
|||
for (TaskDto.AddExecutor addExecutor : dto.getExecutorList()) { |
|||
TaskExecutor taskExecutor = new TaskExecutor(); |
|||
taskExecutor.setTaskId(taskList.getId()); |
|||
taskExecutor.setExecutorId(addExecutor.getExecutorId()); |
|||
taskExecutor.setCreateBy(SecurityUtils.getUsername()); |
|||
taskExecutor.setCreateTime(new Date()); |
|||
taskExecutor.setId(IdUtil.getSnowflake().nextId()); |
|||
taskExecutor.setDelFlag((byte) 0); |
|||
taskExecutorMapper.insertSelective(taskExecutor); |
|||
} |
|||
TasTask task = taskMapper.selectByPrimaryKey(tasTaskMember.getTaskId()); |
|||
if (task == null || task.getDelFlag() == 1) { |
|||
throw new ServiceException("任务不存在"); |
|||
} |
|||
} else { |
|||
taskList.setUpdateBy(SecurityUtils.getUsername()); |
|||
taskList.setUpdateTime(new Date()); |
|||
taskList.setDelFlag((byte) 0); |
|||
taskList.setDeliverables(dto.getDeliverableList()); |
|||
taskListMapper.updateByPrimaryKeyWithBLOBs(taskList); |
|||
|
|||
TaskExecutor taskExecutor1 = new TaskExecutor(); |
|||
taskExecutor1.setDelFlag((byte) 1); |
|||
TaskExecutorExample taskExecutorExample = new TaskExecutorExample(); |
|||
taskExecutorExample.createCriteria().andTaskIdEqualTo(taskList.getId()); |
|||
taskExecutorMapper.updateByExampleSelective(taskExecutor1, taskExecutorExample); |
|||
|
|||
if (dto.getExecutorList() != null) { |
|||
for (TaskDto.AddExecutor addExecutor : dto.getExecutorList()) { |
|||
TaskExecutor taskExecutor = new TaskExecutor(); |
|||
taskExecutor.setTaskId(taskList.getId()); |
|||
taskExecutor.setExecutorId(addExecutor.getExecutorId()); |
|||
taskExecutor.setCreateBy(SecurityUtils.getUsername()); |
|||
taskExecutor.setId(IdUtil.getSnowflake().nextId()); |
|||
taskExecutor.setCreateTime(new Date()); |
|||
taskExecutor.setDelFlag((byte) 0); |
|||
taskExecutorMapper.insertSelective(taskExecutor); |
|||
} |
|||
|
|||
// 2. 校验任务状态是否已完成(已完成的任务不可删除)
|
|||
if (tasTaskMember.getTaskStatus() == 2) { |
|||
throw new ServiceException("任务[" + tasTaskMember + "]已完成,不可删除"); |
|||
} |
|||
//删除
|
|||
TasTaskMember updateTask = new TasTaskMember(); |
|||
updateTask.setId(taskMemberId); |
|||
updateTask.setDelFlag((byte) 1); |
|||
updateTask.setUpdateBy(SecurityUtils.getUsername()); |
|||
updateTask.setUpdateTime(new Date()); |
|||
taskMemberMapper.updateByPrimaryKeySelective(updateTask); |
|||
|
|||
//检查主任务下是否有分任务,没有的话删除主任务
|
|||
TasTaskMemberExample taskMemberExample = new TasTaskMemberExample(); |
|||
taskMemberExample.createCriteria().andTaskIdEqualTo(task.getId()).andDelFlagEqualTo((byte) 0); |
|||
if (taskMemberMapper.countByExample(taskMemberExample) < 1) { |
|||
// 软删除任务记录
|
|||
TasTask uTask = new TasTask(); |
|||
uTask.setId(task.getId()); |
|||
uTask.setDelFlag((byte) 1); |
|||
uTask.setUpdateBy(SecurityUtils.getUsername()); |
|||
uTask.setUpdateTime(new Date()); |
|||
taskMapper.updateByPrimaryKeySelective(uTask); |
|||
} |
|||
} |
|||
} |
|||
|
|||
@Override |
|||
public void del(CommonDto.DelDto dto) { |
|||
TaskListExample taskListExample = new TaskListExample(); |
|||
taskListExample.createCriteria().andIdIn(dto.getIdList()); |
|||
TaskListWithBLOBs taskListWithBLOBs = new TaskListWithBLOBs(); |
|||
taskListWithBLOBs.setDelFlag(Byte.valueOf("1")); |
|||
taskListMapper.updateByExampleSelective(taskListWithBLOBs, taskListExample); |
|||
public List<TaskVo.TaskInfo> queryTaskList(TaskDto.QueryTaskList param, Long userId) { |
|||
//如果类型是分配给我的任务,先查询当前用户关联的课题组成员
|
|||
List<Long> memberIdList = new ArrayList<>(); |
|||
if(param.getTaskType() == 1){ |
|||
KtsKtGroupMemberExample groupMemberExample = new KtsKtGroupMemberExample(); |
|||
groupMemberExample.createCriteria().andMemberPhoneEqualTo(SecurityUtils.getLoginUser().getUser().getPhonenumber()).andDelFlagEqualTo((byte) 0); |
|||
List<KtsKtGroupMember> groupMembers = ktsKtGroupMemberMapper.selectByExample(groupMemberExample); |
|||
if (CollUtil.isNotEmpty(groupMembers)) { |
|||
memberIdList = groupMembers.stream() |
|||
.map(KtsKtGroupMember::getId) |
|||
.collect(Collectors.toList()); |
|||
}else { |
|||
return new ArrayList<>(); |
|||
} |
|||
} |
|||
//查找任务
|
|||
List<TaskVo.TaskInfo> taskList = taskDao.queryTaskList(param, userId, memberIdList); |
|||
|
|||
if (CollUtil.isNotEmpty(taskList)) { |
|||
//查找应交付物文件
|
|||
List<Long> taskIds = taskList.stream() |
|||
.map(TaskVo.TaskInfo::getTaskId) |
|||
.collect(Collectors.toList()); |
|||
|
|||
List<TaskVo.FileInfo> allFiles = taskDao.queryFilesByDeliverableIds(taskIds, "required_deliverable"); |
|||
Map<Long, List<TaskVo.FileInfo>> fileMap = allFiles.stream() |
|||
.collect(Collectors.groupingBy(TaskVo.FileInfo::getRelateId)); |
|||
|
|||
for (TaskVo.TaskInfo task : taskList) { |
|||
task.setRequiredDeliverable(fileMap.get(task.getTaskId())); |
|||
|
|||
setPriorityName(task); |
|||
setTaskStatusName(task); |
|||
task.setAuditStatusName(setAuditStatusName(task.getAuditStatus())); |
|||
setTaskTypeName(task); |
|||
} |
|||
} |
|||
|
|||
return taskList; |
|||
} |
|||
|
|||
@Override |
|||
public List<TaskVo.ExecutorResult> queryExecutorList(TaskDto.QueryExecutor query) { |
|||
return taskDao.queryExecutorList(query); |
|||
public void exportTask(HttpServletResponse response, TaskDto.QueryTaskList param, Long userId) { |
|||
List<TaskVo.TaskInfo> taskInfos = queryTaskList(param, userId); |
|||
if (CollUtil.isEmpty(taskInfos)) { |
|||
throw new BaseException("暂无数据"); |
|||
} |
|||
BigExcelWriter writer = new BigExcelWriter(); |
|||
List<String> header = new ArrayList<>(); |
|||
header.add("序号"); |
|||
header.add("课题组"); |
|||
header.add("任务名称"); |
|||
header.add("任务说明"); |
|||
header.add("负责人"); |
|||
header.add("优先级"); |
|||
header.add("任务类型"); |
|||
header.add("应交付物说明"); |
|||
header.add("开始时间"); |
|||
header.add("截止时间"); |
|||
header.add("任务状态"); |
|||
header.add("审核状态"); |
|||
header.add("审核时间"); |
|||
header.add("驳回原因"); |
|||
header.add("创建人"); |
|||
writer.writeHeadRow(header); |
|||
int row = 0; |
|||
for (int i = 0; i < taskInfos.size(); i++) { |
|||
row += 1; |
|||
writer.writeCellValue(0, row, row); |
|||
writer.writeCellValue(1, row, taskInfos.get(i).getKtGroupName()); |
|||
writer.writeCellValue(2, row, taskInfos.get(i).getTaskName()); |
|||
writer.writeCellValue(3, row, taskInfos.get(i).getTaskDescription()); |
|||
writer.writeCellValue(4, row, taskInfos.get(i).getMemberNames()); |
|||
writer.writeCellValue(5, row, taskInfos.get(i).getPriority() == null ? null : taskInfos.get(i).getPriority() == 1 ? "低" : taskInfos.get(i).getPriority() == 2 ? "中" : "高"); |
|||
writer.writeCellValue(6, row, taskInfos.get(i).getTaskTypeName()); |
|||
writer.writeCellValue(7, row, taskInfos.get(i).getDescription()); |
|||
writer.writeCellValue(8, row, DateUtil.format(taskInfos.get(i).getStartTime(), "yyyy-MM-dd HH:mm")); |
|||
writer.writeCellValue(9, row, DateUtil.format(taskInfos.get(i).getEndTime(), "yyyy-MM-dd HH:mm")); |
|||
writer.writeCellValue(10, row, taskInfos.get(i).getTaskStatusName()); |
|||
writer.writeCellValue(11, row, taskInfos.get(i).getAuditStatusName()); |
|||
writer.writeCellValue(12, row, DateUtil.format(taskInfos.get(i).getAuditTime(), "yyyy-MM-dd HH:mm")); |
|||
writer.writeCellValue(13, row, taskInfos.get(i).getRejectReason()); |
|||
writer.writeCellValue(14, row, taskInfos.get(i).getCreateBy()); |
|||
} |
|||
|
|||
|
|||
String filename = StrUtil.format("任务管理-{}.xlsx", DateUtil.date().toString("yyyyMMdd")); |
|||
|
|||
//response为HttpServletResponse对象
|
|||
response.setContentType("application/vnd.ms-excel;charset=utf-8"); |
|||
//test.xls是弹出下载对话框的文件名,不能为中文,中文请自行编码
|
|||
response.setHeader("Content-Disposition", "attachment;filename=" + filename); |
|||
ServletOutputStream out = null; |
|||
try { |
|||
out = response.getOutputStream(); |
|||
writer.flush(out); |
|||
} catch ( |
|||
IOException e) { |
|||
e.printStackTrace(); |
|||
} finally { |
|||
// 关闭writer,释放内存
|
|||
writer.close(); |
|||
//此处记得关闭输出Servlet流
|
|||
IoUtil.close(out); |
|||
} |
|||
} |
|||
|
|||
@Override |
|||
public void addExecutor(TaskDto.AddExecutor dto) { |
|||
TaskExecutor taskExecutor = BeanUtil.copyProperties(dto, TaskExecutor.class); |
|||
if (taskExecutor.getId() == null) { |
|||
taskExecutor.setDelFlag(Byte.valueOf("0")); |
|||
taskExecutor.setId(IdUtil.getSnowflake().nextId()); |
|||
taskExecutor.setCreateBy(SecurityUtils.getUsername()); |
|||
taskExecutor.setCreateTime(new Date()); |
|||
taskExecutorMapper.insertSelective(taskExecutor); |
|||
} else { |
|||
taskExecutor.setUpdateBy(SecurityUtils.getUsername()); |
|||
taskExecutor.setUpdateTime(new Date()); |
|||
taskExecutorMapper.updateByPrimaryKeySelective(taskExecutor); |
|||
private void setPriorityName(TaskVo.TaskInfo task) { |
|||
if (task.getPriority() == null) return; |
|||
switch (task.getPriority()) { |
|||
case 1: |
|||
task.setPriorityName("低"); |
|||
break; |
|||
case 2: |
|||
task.setPriorityName("中"); |
|||
break; |
|||
case 3: |
|||
task.setPriorityName("高"); |
|||
break; |
|||
default: |
|||
task.setPriorityName("未知"); |
|||
} |
|||
} |
|||
|
|||
@Override |
|||
public void delExecutor(CommonDto.DelDto dto) { |
|||
TaskExecutor taskExecutor1 = new TaskExecutor(); |
|||
taskExecutor1.setDelFlag((byte) 1); |
|||
TaskExecutorExample taskExecutorExample = new TaskExecutorExample(); |
|||
taskExecutorExample.createCriteria().andIdIn(dto.getIdList()); |
|||
taskExecutorMapper.updateByExampleSelective(taskExecutor1, taskExecutorExample); |
|||
private void setTaskStatusName(TaskVo.TaskInfo task) { |
|||
if (task.getTaskStatus() == null) return; |
|||
switch (task.getTaskStatus()) { |
|||
case 0: |
|||
task.setTaskStatusName("未开始"); |
|||
break; |
|||
case 1: |
|||
task.setTaskStatusName("进行中"); |
|||
break; |
|||
case 2: |
|||
task.setTaskStatusName("已完成"); |
|||
break; |
|||
default: |
|||
task.setTaskStatusName("未知"); |
|||
} |
|||
} |
|||
|
|||
private String setAuditStatusName(Integer auditStatus) { |
|||
String auditStatusName = null; |
|||
if (auditStatus == null) return auditStatusName; |
|||
switch (auditStatus) { |
|||
case 0: |
|||
auditStatusName = "待审核"; |
|||
break; |
|||
case 1: |
|||
auditStatusName = "审核通过"; |
|||
break; |
|||
case 2: |
|||
auditStatusName = "审核驳回"; |
|||
break; |
|||
default: |
|||
auditStatusName = "未知"; |
|||
} |
|||
return auditStatusName; |
|||
} |
|||
|
|||
private void setTaskTypeName(TaskVo.TaskInfo task) { |
|||
if (task.getTaskType() == null) return; |
|||
switch (task.getTaskType()) { |
|||
case 1: |
|||
task.setTaskTypeName("单人任务"); |
|||
break; |
|||
case 2: |
|||
task.setTaskTypeName("多人协作任务"); |
|||
break; |
|||
default: |
|||
task.setTaskTypeName("未知"); |
|||
} |
|||
} |
|||
|
|||
@Override |
|||
public List<TaskVo.DeliverableResult> queryDeliverableList(TaskDto.QueryDeliverable query) { |
|||
return taskDao.queryDeliverableList(query.getTaskId()); |
|||
public List<TaskVo.DeliverableInfo> getDeliverableList(TaskDto.QueryDeliverableList param) { |
|||
List<TaskVo.DeliverableInfo> deliverableList = taskDao.queryDeliverableList(param.getTaskMemberId()); |
|||
|
|||
if (CollUtil.isNotEmpty(deliverableList)) { |
|||
List<Long> deliverableIds = deliverableList.stream() |
|||
.map(TaskVo.DeliverableInfo::getDeliverableId) |
|||
.collect(Collectors.toList()); |
|||
|
|||
List<TaskVo.FileInfo> allFiles = taskDao.queryFilesByDeliverableIds(deliverableIds, "deliverable"); |
|||
Map<Long, List<TaskVo.FileInfo>> fileMap = allFiles.stream() |
|||
.collect(Collectors.groupingBy(TaskVo.FileInfo::getRelateId)); |
|||
|
|||
for (TaskVo.DeliverableInfo deliverable : deliverableList) { |
|||
deliverable.setFileList(fileMap.get(deliverable.getDeliverableId())); |
|||
deliverable.setAuditStatusName(setAuditStatusName(deliverable.getAuditStatus())); |
|||
} |
|||
} |
|||
|
|||
return deliverableList; |
|||
} |
|||
|
|||
@Override |
|||
public void addDeliverable(TaskDto.AddDeliverable dto) { |
|||
TaskDeliverableWithBLOBs taskDeliverable = BeanUtil.copyProperties(dto, TaskDeliverableWithBLOBs.class); |
|||
if (taskDeliverable.getId() == null) { |
|||
taskDeliverable.setDelFlag(Byte.valueOf("0")); |
|||
taskDeliverable.setCreateBy(SecurityUtils.getUsername()); |
|||
taskDeliverable.setId(IdUtil.getSnowflake().nextId()); |
|||
taskDeliverable.setSubmitterAccount(SecurityUtils.getUsername()); |
|||
taskDeliverable.setCreateTime(new Date()); |
|||
taskDeliverableMapper.insertSelective(taskDeliverable); |
|||
} else { |
|||
taskDeliverable.setUpdateBy(SecurityUtils.getUsername()); |
|||
taskDeliverable.setUpdateTime(new Date()); |
|||
taskDeliverableMapper.updateByPrimaryKeySelective(taskDeliverable); |
|||
public void submitDeliverable(TaskDto.SubmitDeliverable param, Long userId) { |
|||
// 1. 判断任务是否存在
|
|||
TasTaskMember tasTaskMember = taskMemberMapper.selectByPrimaryKey(param.getTaskMemberId()); |
|||
if (tasTaskMember == null || tasTaskMember.getDelFlag() == 1) { |
|||
throw new ServiceException("任务不存在"); |
|||
} |
|||
TasTask task = taskMapper.selectByPrimaryKey(tasTaskMember.getTaskId()); |
|||
if (task == null || task.getDelFlag() == 1) { |
|||
throw new ServiceException("任务不存在"); |
|||
} |
|||
|
|||
//先查找当前用户在此课题下的成员id
|
|||
KtsKtGroupMemberExample groupMemberExample = new KtsKtGroupMemberExample(); |
|||
groupMemberExample.createCriteria().andMemberPhoneEqualTo(SecurityUtils.getLoginUser().getUser().getPhonenumber()) |
|||
.andKtGroupIdEqualTo(task.getKtGroupId()) |
|||
.andDelFlagEqualTo((byte) 0); |
|||
List<KtsKtGroupMember> groupMembers = ktsKtGroupMemberMapper.selectByExample(groupMemberExample); |
|||
// 判断当前用户是否是任务负责人
|
|||
boolean isMember = false; |
|||
if (StrUtil.isNotBlank(tasTaskMember.getMemberIds()) && CollUtil.isNotEmpty(groupMembers)) { |
|||
Set<String> memberIdStrSet = groupMembers.stream() |
|||
.map(m -> String.valueOf(m.getId())) |
|||
.collect(Collectors.toSet()); |
|||
String[] taskMemberIdArray = tasTaskMember.getMemberIds().split(","); |
|||
for (String taskMemberId : taskMemberIdArray) { |
|||
if (memberIdStrSet.contains(taskMemberId)) { |
|||
isMember = true; |
|||
break; |
|||
} |
|||
} |
|||
} |
|||
if (!isMember) { |
|||
throw new ServiceException("您不是该任务的负责人,无权提交交付物"); |
|||
} |
|||
|
|||
// 3. 判断任务状态是否已完成
|
|||
if (tasTaskMember.getTaskStatus() == 2) { |
|||
throw new ServiceException("任务已完成,不可再提交交付物"); |
|||
} |
|||
|
|||
// 4. 保存交付物信息
|
|||
TasDeliverable deliverable = new TasDeliverable(); |
|||
deliverable.setId(IdUtil.getSnowflakeNextId()); |
|||
deliverable.setTaskMemberId(param.getTaskMemberId()); |
|||
deliverable.setUserId(userId); |
|||
deliverable.setSubmitTime(new Date()); |
|||
deliverable.setDescription(param.getDescription()); |
|||
deliverable.setDelFlag((byte) 0); |
|||
deliverable.setCreateBy(SecurityUtils.getUsername()); |
|||
deliverableMapper.insertSelective(deliverable); |
|||
|
|||
// 添加文件信息
|
|||
if (CollUtil.isNotEmpty(param.getFileUrls())) { |
|||
for (String url : param.getFileUrls()) { |
|||
ComFile file = new ComFile(); |
|||
file.setId(IdUtil.getSnowflakeNextId()); |
|||
file.setRelateId(deliverable.getId()); |
|||
file.setRelateType("deliverable"); |
|||
file.setFilePath(url); |
|||
file.setCreateBy(SecurityUtils.getUsername()); |
|||
fileMapper.insertSelective(file); |
|||
} |
|||
} |
|||
|
|||
// 5. 如果任务是未开始,改成进行中
|
|||
if (tasTaskMember.getTaskStatus() == 0) { |
|||
TasTaskMember updateMember = new TasTaskMember(); |
|||
updateMember.setId(tasTaskMember.getId()); |
|||
updateMember.setTaskStatus((byte) 1); |
|||
updateMember.setUpdateBy(SecurityUtils.getUsername()); |
|||
updateMember.setUpdateTime(new Date()); |
|||
taskMemberMapper.updateByPrimaryKeySelective(updateMember); |
|||
} |
|||
} |
|||
|
|||
@Override |
|||
public void delDeliverable(CommonDto.DelDto dto) { |
|||
TaskDeliverableWithBLOBs taskDeliverableWithBLOBs = new TaskDeliverableWithBLOBs(); |
|||
taskDeliverableWithBLOBs.setDelFlag((byte) 0); |
|||
TaskDeliverableExample taskDeliverableExample = new TaskDeliverableExample(); |
|||
taskDeliverableExample.createCriteria().andIdIn(dto.getIdList()); |
|||
taskDeliverableMapper.updateByExampleSelective(taskDeliverableWithBLOBs, taskDeliverableExample); |
|||
public void auditTask(TaskDto.AuditTask param, Long userId) { |
|||
// 1. 判断任务是否存在
|
|||
TasTaskMember tasTaskMember = taskMemberMapper.selectByPrimaryKey(param.getTaskMemberId()); |
|||
if (tasTaskMember == null || tasTaskMember.getDelFlag() == 1) { |
|||
throw new ServiceException("任务不存在"); |
|||
} |
|||
TasTask task = taskMapper.selectByPrimaryKey(tasTaskMember.getTaskId()); |
|||
if (task == null || task.getDelFlag() == 1) { |
|||
throw new ServiceException("任务不存在"); |
|||
} |
|||
|
|||
// 2. 检查当前用户是否是任务的创建者
|
|||
if (!task.getTaskCreatorId().equals(userId)) { |
|||
throw new ServiceException("您不是该任务的创建者,无权审核"); |
|||
} |
|||
|
|||
// 4. 检查任务状态是否已完成
|
|||
if (tasTaskMember.getTaskStatus() == 2) { |
|||
throw new ServiceException("任务已完成,不可审核"); |
|||
} |
|||
|
|||
// 5. 如果是驳回需要检查驳回原因
|
|||
if (param.getAuditStatus() == 2 && StrUtil.isBlank(param.getRejectReason())) { |
|||
throw new ServiceException("驳回时必须填写驳回原因"); |
|||
} |
|||
|
|||
// 6. 修改任务的审核状态
|
|||
TasTaskMember updateMember = new TasTaskMember(); |
|||
updateMember.setId(tasTaskMember.getId()); |
|||
updateMember.setAuditStatus(param.getAuditStatus().byteValue()); |
|||
updateMember.setAuditTime(new Date()); |
|||
if (param.getAuditStatus() == 2) { |
|||
updateMember.setRejectReason(param.getRejectReason()); |
|||
} |
|||
// 7. 如果审核通过,修改任务状态为已完成
|
|||
if (param.getAuditStatus() == 1) { |
|||
updateMember.setTaskStatus((byte) 2); |
|||
} |
|||
updateMember.setUpdateBy(SecurityUtils.getUsername()); |
|||
updateMember.setUpdateTime(new Date()); |
|||
taskMemberMapper.updateByPrimaryKeySelective(updateMember); |
|||
} |
|||
|
|||
@Override |
|||
public void aduit(Long taskId, Long deliverableId, Byte status) { |
|||
TaskList taskList = taskListMapper.selectByPrimaryKey(taskId); |
|||
if (taskList == null) { |
|||
throw new RuntimeException("任务不存在或任务已结束"); |
|||
} |
|||
TaskDeliverableWithBLOBs taskDeliverableWithBLOBs = taskDeliverableMapper.selectByPrimaryKey(deliverableId); |
|||
if (taskDeliverableWithBLOBs == null) { |
|||
throw new RuntimeException("交付物不存在或已交付"); |
|||
} |
|||
taskDeliverableWithBLOBs.setAduitStatus(status); |
|||
taskDeliverableWithBLOBs.setReviewTime(new Date()); |
|||
//状态为通过,则交付完成
|
|||
if (status == 1) { |
|||
taskDeliverableWithBLOBs.setDeliveryStatus((byte) 1); |
|||
} |
|||
taskDeliverableMapper.updateByPrimaryKeySelective(taskDeliverableWithBLOBs); |
|||
public void auditDeliverable(TaskDto.AuditDeliverable param, Long userId) { |
|||
// 1. 检查交付物是否存在
|
|||
TasDeliverable deliverable = deliverableMapper.selectByPrimaryKey(param.getDeliverableId()); |
|||
if (deliverable == null || deliverable.getDelFlag() == 1) { |
|||
throw new ServiceException("交付物不存在"); |
|||
} |
|||
|
|||
// 2. 查询任务成员信息
|
|||
TasTaskMember taskMember = taskMemberMapper.selectByPrimaryKey(deliverable.getTaskMemberId()); |
|||
if (taskMember == null || taskMember.getDelFlag() == 1) { |
|||
throw new ServiceException("任务信息不存在"); |
|||
} |
|||
|
|||
// 3. 查询任务信息
|
|||
TasTask task = taskMapper.selectByPrimaryKey(taskMember.getTaskId()); |
|||
if (task == null || task.getDelFlag() == 1) { |
|||
throw new ServiceException("任务不存在"); |
|||
} |
|||
|
|||
// 4. 检查当前用户是否是任务的创建者
|
|||
if (!task.getTaskCreatorId().equals(userId)) { |
|||
throw new ServiceException("您不是该任务的创建者,无权审核"); |
|||
} |
|||
|
|||
// 5. 如果是驳回需要检查驳回原因
|
|||
if (param.getAuditStatus() == 2 && StrUtil.isBlank(param.getRejectReason())) { |
|||
throw new ServiceException("驳回时必须填写驳回原因"); |
|||
} |
|||
|
|||
// 6. 修改交付物的审核状态
|
|||
TasDeliverable updateDeliverable = new TasDeliverable(); |
|||
updateDeliverable.setId(param.getDeliverableId()); |
|||
updateDeliverable.setAuditStatus(param.getAuditStatus().byteValue()); |
|||
updateDeliverable.setAuditTime(new Date()); |
|||
if (param.getAuditStatus() == 2) { |
|||
updateDeliverable.setRejectReason(param.getRejectReason()); |
|||
} |
|||
updateDeliverable.setUpdateBy(SecurityUtils.getUsername()); |
|||
deliverableMapper.updateByPrimaryKeySelective(updateDeliverable); |
|||
} |
|||
} |
|||
} |
|||
Some files were not shown because too many files changed in this diff
Loading…
Reference in new issue