Browse Source

20200930_1.0

master
zy_Java 5 years ago
parent
commit
00fc4fe346
  1. 14
      mt/src/main/java/com/ccsens/mt/api/CompeteController.java
  2. 51
      mt/src/main/java/com/ccsens/mt/api/CompeteScoreController.java
  3. 9
      mt/src/main/java/com/ccsens/mt/api/DepartmentController.java
  4. 1
      mt/src/main/java/com/ccsens/mt/api/ScoreController.java
  5. 4
      mt/src/main/java/com/ccsens/mt/api/VideoController.java
  6. 5
      mt/src/main/java/com/ccsens/mt/bean/dto/CompeteDto.java
  7. 2
      mt/src/main/java/com/ccsens/mt/bean/dto/VideoDto.java
  8. 13
      mt/src/main/java/com/ccsens/mt/bean/vo/CompeteVo.java
  9. 6
      mt/src/main/java/com/ccsens/mt/bean/vo/VideoVo.java
  10. 2
      mt/src/main/java/com/ccsens/mt/service/CompeteService.java
  11. 222
      mt/src/main/java/com/ccsens/mt/service/DepartmentService.java
  12. 7
      mt/src/main/java/com/ccsens/mt/service/IDepartmentService.java
  13. 28
      mt/src/main/java/com/ccsens/mt/service/LevelUpService.java
  14. 87
      mt/src/main/java/com/ccsens/mt/service/ScoreService.java
  15. 8
      mt/src/main/java/com/ccsens/mt/service/VideoService.java
  16. 4
      mt/src/main/resources/application.yml
  17. 81
      mt/src/main/resources/mapper_dao/CompeteTeamDao.xml
  18. 19
      tall/src/main/java/com/ccsens/tall/bean/dto/PluginDto.java
  19. 11
      tall/src/main/java/com/ccsens/tall/bean/dto/TaskDto.java
  20. 3
      tall/src/main/java/com/ccsens/tall/bean/dto/UserDto.java
  21. 243
      tall/src/main/java/com/ccsens/tall/bean/po/ProRole.java
  22. 1580
      tall/src/main/java/com/ccsens/tall/bean/po/ProRoleExample.java
  23. 11
      tall/src/main/java/com/ccsens/tall/bean/po/ProTaskDetail.java
  24. 60
      tall/src/main/java/com/ccsens/tall/bean/po/ProTaskDetailExample.java
  25. 2
      tall/src/main/java/com/ccsens/tall/bean/vo/ProjectVo.java
  26. 46
      tall/src/main/java/com/ccsens/tall/bean/vo/TaskVo.java
  27. 3
      tall/src/main/java/com/ccsens/tall/persist/dao/SysPluginDao.java
  28. 13
      tall/src/main/java/com/ccsens/tall/persist/dao/TaskDetailDao.java
  29. 59
      tall/src/main/java/com/ccsens/tall/persist/mapper/ProRoleMapper.java
  30. 33
      tall/src/main/java/com/ccsens/tall/service/ExcelService.java
  31. 9
      tall/src/main/java/com/ccsens/tall/service/IProTaskDetailService.java
  32. 6
      tall/src/main/java/com/ccsens/tall/service/ITaskPluginService.java
  33. 3
      tall/src/main/java/com/ccsens/tall/service/ProMemberService.java
  34. 125
      tall/src/main/java/com/ccsens/tall/service/ProTaskDetailService.java
  35. 67
      tall/src/main/java/com/ccsens/tall/service/TaskPluginService.java
  36. 22
      tall/src/main/java/com/ccsens/tall/service/TaskSubTimeService.java
  37. 26
      tall/src/main/java/com/ccsens/tall/service/UserInfoService.java
  38. 10
      tall/src/main/java/com/ccsens/tall/web/PluginController.java
  39. 2
      tall/src/main/java/com/ccsens/tall/web/ProjectController.java
  40. 8
      tall/src/main/java/com/ccsens/tall/web/TaskController.java
  41. 4
      tall/src/main/resources/application.yml
  42. 6
      tall/src/main/resources/mapper_dao/ProRoleDao.xml
  43. 14
      tall/src/main/resources/mapper_dao/SysPluginDao.xml
  44. 62
      tall/src/main/resources/mapper_dao/TaskDetailDao.xml
  45. 564
      tall/src/main/resources/mapper_raw/ProRoleMapper.xml
  46. 29
      tall/src/main/resources/mapper_raw/ProTaskDetailMapper.xml
  47. 11
      util/src/main/java/com/ccsens/util/PoiUtil.java
  48. 3
      util/src/main/java/com/ccsens/util/WebConstant.java
  49. 8
      util/src/main/java/com/ccsens/util/cron/CronConstant.java
  50. 24
      util/src/test/java/com/ccsens/util/Base64Test.java
  51. 6
      util/src/test/java/com/ccsens/util/TestQrCord.java

14
mt/src/main/java/com/ccsens/mt/api/CompeteController.java

@ -132,21 +132,13 @@ public class CompeteController {
return JsonResponse.newInstance().ok(competeTeamProject); return JsonResponse.newInstance().ok(competeTeamProject);
} }
@MustLogin
@ApiOperation(value = "查询比赛项目上的参赛选手列表", notes = "")
@RequestMapping(value = "/get/players", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<CompeteVo.QueryPlayerList> queryPlayerList(@ApiParam @Validated @RequestBody QueryDto<CompeteDto.CompeteProjectId> params) {
log.info("查询比赛项目上的参赛选手列表:{}",params);
CompeteVo.QueryPlayerList playerList = competeService.queryPlayerList(params);
return JsonResponse.newInstance().ok(playerList);
}
// @MustLogin // @MustLogin
// @ApiOperation(value = "查询比赛项目上的参赛选手列表", notes = "") // @ApiOperation(value = "查询比赛项目上的参赛选手列表", notes = "")
// @RequestMapping(value = "/get/players", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) // @RequestMapping(value = "/get/players", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
// public JsonResponse<CompeteVo.QueryPlayerList> getPlayerList(@ApiParam @Validated @RequestBody QueryDto<CompeteDto.CompeteTimeAndType> params) { // public JsonResponse<CompeteVo.QueryPlayerList> queryPlayerList(@ApiParam @Validated @RequestBody QueryDto<CompeteDto.CompeteProjectId> params) {
// log.info("扫码加入团队:{}",params); // log.info("查询比赛项目上的参赛选手列表:{}",params);
// CompeteVo.QueryPlayerList playerList = competeService.queryPlayerList(params); // CompeteVo.QueryPlayerList playerList = competeService.queryPlayerList(params);
// return JsonResponse.newInstance().ok(playerList); // return JsonResponse.newInstance().ok(playerList);
// } // }
} }

51
mt/src/main/java/com/ccsens/mt/api/CompeteScoreController.java

@ -0,0 +1,51 @@
package com.ccsens.mt.api;
import com.ccsens.cloudutil.annotation.MustLogin;
import com.ccsens.mt.bean.dto.CompeteDto;
import com.ccsens.mt.bean.vo.CompeteVo;
import com.ccsens.mt.service.ICompeteService;
import com.ccsens.util.JsonResponse;
import com.ccsens.util.bean.dto.QueryDto;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
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 javax.annotation.Resource;
/**
* @author
*/
@Slf4j
@Api(tags = "线上体育竞技比赛", description = "")
@RestController
@RequestMapping("/compete")
public class CompeteScoreController {
@Resource
private ICompeteService competeService;
@MustLogin
@ApiOperation(value = "查询比赛项目上的参赛选手列表", notes = "")
@RequestMapping(value = "/get/playerList", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<CompeteVo.QueryPlayerList> queryPlayerList(@ApiParam @Validated @RequestBody QueryDto<CompeteDto.CompeteProjectId> params) {
log.info("查询比赛项目上的参赛选手列表:{}",params);
CompeteVo.QueryPlayerList playerList = competeService.queryPlayerList(params);
return JsonResponse.newInstance().ok(playerList);
}
// @MustLogin
// @ApiOperation(value = "查看单个选手的信息和分数", notes = "")
// @RequestMapping(value = "/get/player", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
// public JsonResponse<CompeteVo.QueryPlayerList> getPlayerInfo(@ApiParam @Validated @RequestBody QueryDto<CompeteDto.CompeteProjectId> params) {
// log.info("查询比赛项目上的参赛选手列表:{}",params);
// CompeteVo.QueryPlayerList playerList = competeService.queryPlayerList(params);
// return JsonResponse.newInstance().ok(playerList);
// }
}

9
mt/src/main/java/com/ccsens/mt/api/DepartmentController.java

@ -65,4 +65,13 @@ public class DepartmentController {
CompeteVo.DepartmentInfo department = departmentService.getDepartment(params); CompeteVo.DepartmentInfo department = departmentService.getDepartment(params);
return JsonResponse.newInstance().ok(department); return JsonResponse.newInstance().ok(department);
} }
@ApiOperation(value = "导出excel表格", notes = "")
@RequestMapping(value = "/export/excel", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<CompeteVo.DepartmentInfo> exportExcel(@ApiParam @Validated @RequestBody CompeteDto.CompeteType params) {
log.info("导出excel表格:{}",params);
String excelPath = departmentService.exportExcel(params);
return JsonResponse.newInstance().ok(excelPath);
}
} }

1
mt/src/main/java/com/ccsens/mt/api/ScoreController.java

@ -33,7 +33,6 @@ public class ScoreController {
}) })
@RequestMapping(value = "/score", method = RequestMethod.GET, produces = {"application/json;charset=UTF-8"}) @RequestMapping(value = "/score", method = RequestMethod.GET, produces = {"application/json;charset=UTF-8"})
public JsonResponse<List<ScoreVo.ScoreInfo>> getScoreLog(HttpServletRequest request, public JsonResponse<List<ScoreVo.ScoreInfo>> getScoreLog(HttpServletRequest request,
@RequestParam Long roleId,
@RequestParam(required = true) Long taskId) throws Exception { @RequestParam(required = true) Long taskId) throws Exception {
//获取userId //获取userId
Long userId = userService.getUserIdByToken(request); Long userId = userService.getUserIdByToken(request);

4
mt/src/main/java/com/ccsens/mt/api/VideoController.java

@ -44,10 +44,10 @@ public class VideoController {
} }
@MustLogin @MustLogin
@ApiOperation(value = "上传视频信息", notes = "") @ApiOperation(value = "上传视频信息", notes = "")
@ApiImplicitParams({ @ApiImplicitParams({
}) })
@RequestMapping(value = "/get", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) @RequestMapping(value = "/upload", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<List<VideoVo.GetVideoInfo>> uploadVideo(@RequestBody @ApiParam @Validated QueryDto<VideoDto.UploadVideo> params) { public JsonResponse<List<VideoVo.GetVideoInfo>> uploadVideo(@RequestBody @ApiParam @Validated QueryDto<VideoDto.UploadVideo> params) {
log.info("查看选手上传的视频信息:{}",params.toString()); log.info("查看选手上传的视频信息:{}",params.toString());
List<VideoVo.GetVideoInfo> getVideoInfoList = videoService.uploadVideo(params); List<VideoVo.GetVideoInfo> getVideoInfoList = videoService.uploadVideo(params);

5
mt/src/main/java/com/ccsens/mt/bean/dto/CompeteDto.java

@ -39,6 +39,8 @@ public class CompeteDto {
@ApiModelProperty("比赛项目id(二级的)") @ApiModelProperty("比赛项目id(二级的)")
private Long competeProjectId; private Long competeProjectId;
} }
@Data @Data
@ApiModel @ApiModel
public static class CompeteProjectPlayer{ public static class CompeteProjectPlayer{
@ -162,9 +164,6 @@ public class CompeteDto {
@Data @Data
@ApiModel("获取院系提交的报名信息") @ApiModel("获取院系提交的报名信息")
public static class GetDepartmentInfo{ public static class GetDepartmentInfo{
// @NotNull(message="请选择院系信息")
// @ApiModelProperty("院系id")
// private Long id;
@NotNull @NotNull
@ApiModelProperty("比赛的类型,0跳绳省赛 1跳绳校内比赛") @ApiModelProperty("比赛的类型,0跳绳省赛 1跳绳校内比赛")
private int type; private int type;

2
mt/src/main/java/com/ccsens/mt/bean/dto/VideoDto.java

@ -36,5 +36,7 @@ public class VideoDto {
private Long playerId; private Long playerId;
@ApiModelProperty("视频文件id") @ApiModelProperty("视频文件id")
private Long videoFileId; private Long videoFileId;
@ApiModelProperty("视频文件浏览路径")
private String videoFileUrl;
} }
} }

13
mt/src/main/java/com/ccsens/mt/bean/vo/CompeteVo.java

@ -6,6 +6,7 @@ import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.math.BigDecimal;
import java.util.List; import java.util.List;
/** /**
@ -324,9 +325,13 @@ public class CompeteVo {
private String companyName; private String companyName;
@ApiModelProperty("是否通级 0否 1是") @ApiModelProperty("是否通级 0否 1是")
private byte certificate; private byte certificate;
@ApiModelProperty("录播视频信息")
private List<VideoVo.GetVideoInfo> videoInfoList;
@ApiModelProperty("分数")
private BigDecimal score;
} }
@Data @Data
@ApiModel("比赛项目下的个人信息") @ApiModel("比赛项目下团队信息")
public static class TeamInfoByProject{ public static class TeamInfoByProject{
@ApiModelProperty("团队表Id") @ApiModelProperty("团队表Id")
private Long teamId; private Long teamId;
@ -340,5 +345,11 @@ public class CompeteVo {
private int memberNums; private int memberNums;
@ApiModelProperty("团队内的成员") @ApiModelProperty("团队内的成员")
private List<CompeteTeamProjectMember> members; private List<CompeteTeamProjectMember> members;
@ApiModelProperty("录播视频信息")
private List<VideoVo.GetVideoInfo> videoInfoList;
@ApiModelProperty("分数")
private BigDecimal score;
} }
} }

6
mt/src/main/java/com/ccsens/mt/bean/vo/VideoVo.java

@ -16,9 +16,11 @@ public class VideoVo {
private Long videoId; private Long videoId;
@ApiModelProperty("文件id") @ApiModelProperty("文件id")
private Long fileId; private Long fileId;
// @ApiModelProperty("视频地址") @ApiModelProperty("视频地址")
// private String videoUrl; private String videoUrl;
@ApiModelProperty("上传时间") @ApiModelProperty("上传时间")
private Long uploadTime; private Long uploadTime;
} }
} }

2
mt/src/main/java/com/ccsens/mt/service/CompeteService.java

@ -292,7 +292,7 @@ public class CompeteService implements ICompeteService{
*/ */
@Override @Override
public String getQrCodeByTeamId(QueryDto<CompeteDto.CompeteProjectPlayer> params) { public String getQrCodeByTeamId(QueryDto<CompeteDto.CompeteProjectPlayer> params) {
return competeTeamDao.getQrCodeByTeamId(params.getParam().getProjectPlayerId()); return PropUtil.imgDomain + competeTeamDao.getQrCodeByTeamId(params.getParam().getProjectPlayerId());
} }
/** /**

222
mt/src/main/java/com/ccsens/mt/service/DepartmentService.java

@ -1,8 +1,10 @@
package com.ccsens.mt.service; package com.ccsens.mt.service;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.lang.Snowflake; import cn.hutool.core.lang.Snowflake;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.ccsens.mt.bean.dto.CompeteDto; import com.ccsens.mt.bean.dto.CompeteDto;
import com.ccsens.mt.bean.po.*; import com.ccsens.mt.bean.po.*;
import com.ccsens.mt.bean.vo.CompeteVo; import com.ccsens.mt.bean.vo.CompeteVo;
@ -10,16 +12,20 @@ import com.ccsens.mt.persist.dao.CompetePlayerDao;
import com.ccsens.mt.persist.dao.CompeteTeamDao; import com.ccsens.mt.persist.dao.CompeteTeamDao;
import com.ccsens.mt.persist.dao.CompeteTimeDao; import com.ccsens.mt.persist.dao.CompeteTimeDao;
import com.ccsens.mt.persist.mapper.*; import com.ccsens.mt.persist.mapper.*;
import com.ccsens.util.CodeEnum; import com.ccsens.util.*;
import com.ccsens.util.StringUtil;
import com.ccsens.util.bean.dto.QueryDto; import com.ccsens.util.bean.dto.QueryDto;
import com.ccsens.util.exception.BaseException; import com.ccsens.util.exception.BaseException;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -220,12 +226,12 @@ public class DepartmentService implements IDepartmentService{
project.getSecondProjects().forEach(secondProject -> { project.getSecondProjects().forEach(secondProject -> {
if (secondProject.getTeam() == 0) { if (secondProject.getTeam() == 0) {
//不是团队比赛 //不是团队比赛
secondProject.setManName(competePlayerDao.getMemberNamesByProjectId(companyId,secondProject.getCompeteProjectId(), 0)); secondProject.setManName(competePlayerDao.getMemberNamesByProjectId(companyId,secondProject.getCompeteProjectId(), 1));
secondProject.setWomanName(competePlayerDao.getMemberNamesByProjectId(companyId,secondProject.getCompeteProjectId(), 1)); secondProject.setWomanName(competePlayerDao.getMemberNamesByProjectId(companyId,secondProject.getCompeteProjectId(), 0));
secondProject.setMixedName(competePlayerDao.getMemberNamesByProjectId(companyId,secondProject.getCompeteProjectId(), 2)); secondProject.setMixedName(competePlayerDao.getMemberNamesByProjectId(companyId,secondProject.getCompeteProjectId(), 2));
} else { } else {
secondProject.setManName(competePlayerDao.getTeamMemberNamesByProjectId(companyId,secondProject.getCompeteProjectId(), 0)); secondProject.setManName(competePlayerDao.getTeamMemberNamesByProjectId(companyId,secondProject.getCompeteProjectId(), 1));
secondProject.setWomanName(competePlayerDao.getTeamMemberNamesByProjectId(companyId,secondProject.getCompeteProjectId(), 1)); secondProject.setWomanName(competePlayerDao.getTeamMemberNamesByProjectId(companyId,secondProject.getCompeteProjectId(), 0));
secondProject.setMixedName(competePlayerDao.getTeamMemberNamesByProjectId(companyId,secondProject.getCompeteProjectId(), 2)); secondProject.setMixedName(competePlayerDao.getTeamMemberNamesByProjectId(companyId,secondProject.getCompeteProjectId(), 2));
} }
}); });
@ -236,4 +242,208 @@ public class DepartmentService implements IDepartmentService{
} }
return departmentInfo; return departmentInfo;
} }
/**
* 导出报名信息表
*/
@Override
public String exportExcel(CompeteDto.CompeteType competeType) {
// CompeteDto.CompeteType competeType = params.getParam();
Workbook wb = new XSSFWorkbook();
String path = null;
//查找所有院系信息
CompeteCompanyExample companyExample = new CompeteCompanyExample();
companyExample.createCriteria().andTypeEqualTo((byte) competeType.getType());
List<CompeteCompany> companyList = competeCompanyMapper.selectByExample(companyExample);
log.info("查询所有院系:{}",companyList);
if(CollectionUtil.isNotEmpty(companyList)){
for(CompeteCompany company : companyList) {
CompeteVo.DepartmentInfo departmentInfo = getDepartmentInfo(company.getId(), competeType.getType());
log.info("查询院系的报名详细信息:{}", departmentInfo);
if (ObjectUtil.isNotNull(departmentInfo)) {
//生成写入的数据
List<List<PoiUtil.PoiUtilCell>> list = generatePoiUtilCell(departmentInfo);
//写入excel
try {
path = writeExcel(wb, departmentInfo.getName(), list);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
return path;
}
private List<List<PoiUtil.PoiUtilCell>> generatePoiUtilCell(CompeteVo.DepartmentInfo departmentInfo) {
List<List<PoiUtil.PoiUtilCell>> list = new ArrayList<>();
//标题
List<PoiUtil.PoiUtilCell> title = new ArrayList<>();
title.add(new PoiUtil.PoiUtilCell(departmentInfo.getName(),3,1));
list.add(title);
//表头
List<PoiUtil.PoiUtilCell> header = new ArrayList<>();
header.add(new PoiUtil.PoiUtilCell("比赛项目"));
header.add(new PoiUtil.PoiUtilCell("分组"));
header.add(new PoiUtil.PoiUtilCell("参赛人员"));
list.add(header);
if(CollectionUtil.isNotEmpty(departmentInfo.getDepartmentProjects())){
departmentInfo.getDepartmentProjects().forEach(departmentProject -> {
if(CollectionUtil.isNotEmpty(departmentProject.getSecondProjects())){
for (int i = 0; i < departmentProject.getSecondProjects().size(); i++) {
int secondRows = 0;
CompeteVo.DepartmentSecondProject secondProject = departmentProject.getSecondProjects().get(i);
List<PoiUtil.PoiUtilCell> project = new ArrayList<>();
project.add(new PoiUtil.PoiUtilCell(departmentProject.getParentProjectName()+":"+secondProject.getCompeteProjectName()));
list.add(project);
if(secondProject.getTeam() == 0){
if(ObjectUtil.isNotNull(secondProject.getManName())) {
secondRows++;
project.add(new PoiUtil.PoiUtilCell("男子组"));
project.add(new PoiUtil.PoiUtilCell(secondProject.getManName()));
if(ObjectUtil.isNotNull(secondProject.getWomanName())) {
secondRows++;
List<PoiUtil.PoiUtilCell> group = new ArrayList<>();
group.add(new PoiUtil.PoiUtilCell());
group.add(new PoiUtil.PoiUtilCell("女子组"));
group.add(new PoiUtil.PoiUtilCell(secondProject.getWomanName()));
list.add(group);
}
if(ObjectUtil.isNotNull(secondProject.getMixedName())) {
secondRows++;
List<PoiUtil.PoiUtilCell> group = new ArrayList<>();
group.add(new PoiUtil.PoiUtilCell());
group.add(new PoiUtil.PoiUtilCell("男女混合组"));
group.add(new PoiUtil.PoiUtilCell(secondProject.getMixedName()));
list.add(group);
}
}else if(ObjectUtil.isNotNull(secondProject.getWomanName())){
secondRows++;
project.add(new PoiUtil.PoiUtilCell("女子组"));
project.add(new PoiUtil.PoiUtilCell(secondProject.getWomanName()));
if(ObjectUtil.isNotNull(secondProject.getMixedName())) {
secondRows++;
List<PoiUtil.PoiUtilCell> group = new ArrayList<>();
group.add(new PoiUtil.PoiUtilCell());
group.add(new PoiUtil.PoiUtilCell("男女混合组"));
group.add(new PoiUtil.PoiUtilCell(secondProject.getMixedName()));
list.add(group);
}
}else if(ObjectUtil.isNotNull(secondProject.getMixedName())){
secondRows++;
project.add(new PoiUtil.PoiUtilCell("男女混合组"));
project.add(new PoiUtil.PoiUtilCell(secondProject.getMixedName()));
}
}else {
secondRows++;
project.add(new PoiUtil.PoiUtilCell());
String playerNames = secondProject.getManName() == null ? "" : secondProject.getManName();
if(StrUtil.isNotEmpty(playerNames) && StrUtil.isNotEmpty(secondProject.getWomanName())){
playerNames += "、" + secondProject.getWomanName();
}else {
playerNames += secondProject.getWomanName() == null ? "" : secondProject.getWomanName();
}
if(StrUtil.isNotEmpty(playerNames) && StrUtil.isNotEmpty(secondProject.getMixedName())){
playerNames += "、" + secondProject.getMixedName();
}else {
playerNames += secondProject.getMixedName() == null ? "" : secondProject.getMixedName();
}
project.add(new PoiUtil.PoiUtilCell(playerNames));
}
// if(ObjectUtil.isNotNull(secondProject.getManName())) {
// secondRows++;
// project.add(new PoiUtil.PoiUtilCell("男子组"));
// project.add(new PoiUtil.PoiUtilCell(secondProject.getManName()));
// if(ObjectUtil.isNotNull(secondProject.getWomanName())) {
// secondRows++;
// List<PoiUtil.PoiUtilCell> group = new ArrayList<>();
// group.add(new PoiUtil.PoiUtilCell());
// group.add(new PoiUtil.PoiUtilCell("女子组"));
// group.add(new PoiUtil.PoiUtilCell(secondProject.getWomanName()));
// list.add(group);
// }
// if(ObjectUtil.isNotNull(secondProject.getMixedName())) {
// secondRows++;
// List<PoiUtil.PoiUtilCell> group = new ArrayList<>();
// group.add(new PoiUtil.PoiUtilCell());
// group.add(new PoiUtil.PoiUtilCell("男女混合组"));
// group.add(new PoiUtil.PoiUtilCell(secondProject.getMixedName()));
// list.add(group);
// }
// }else if(ObjectUtil.isNotNull(secondProject.getWomanName())){
// secondRows++;
// project.add(new PoiUtil.PoiUtilCell("女子组"));
// project.add(new PoiUtil.PoiUtilCell(secondProject.getWomanName()));
// if(ObjectUtil.isNotNull(secondProject.getMixedName())) {
// secondRows++;
// List<PoiUtil.PoiUtilCell> group = new ArrayList<>();
// group.add(new PoiUtil.PoiUtilCell());
// group.add(new PoiUtil.PoiUtilCell("男女混合组"));
// group.add(new PoiUtil.PoiUtilCell(secondProject.getMixedName()));
// list.add(group);
// }
// }else if(ObjectUtil.isNotNull(secondProject.getMixedName())){
// secondRows++;
// project.add(new PoiUtil.PoiUtilCell("男女混合组"));
// project.add(new PoiUtil.PoiUtilCell(secondProject.getMixedName()));
// }
PoiUtil.PoiUtilCell poiUtilCell = project.get(0);
poiUtilCell.setRowspan(secondRows);
}
}
});
}
List<PoiUtil.PoiUtilCell> blank = new ArrayList<>();
blank.add(new PoiUtil.PoiUtilCell("",3,1));
list.add(blank);
//领队裁判等信息
if(CollectionUtil.isNotEmpty(departmentInfo.getDepartmentRoles())){
List<PoiUtil.PoiUtilCell> role1 = new ArrayList<>();
List<PoiUtil.PoiUtilCell> role2 = new ArrayList<>();
List<PoiUtil.PoiUtilCell> role3 = new ArrayList<>();
departmentInfo.getDepartmentRoles().forEach(departmentRole -> {
if(departmentRole.getRole() == 0){
role1.add(new PoiUtil.PoiUtilCell("领队",1,1,666,28));
role1.add(new PoiUtil.PoiUtilCell("姓名:" + departmentRole.getName()));
role1.add(new PoiUtil.PoiUtilCell("手机号:" + departmentRole.getPhone(),1,1,666,42));
}
if(departmentRole.getRole() == 1){
role2.add(new PoiUtil.PoiUtilCell("裁判",1,1,666,28));
role2.add(new PoiUtil.PoiUtilCell("姓名:" + departmentRole.getName()));
role2.add(new PoiUtil.PoiUtilCell("手机号:" + departmentRole.getPhone(),1,1,666,42));
}
if(departmentRole.getRole() == 2){
role3.add(new PoiUtil.PoiUtilCell("填表人",1,1,666,28));
role3.add(new PoiUtil.PoiUtilCell("姓名:" + departmentRole.getName()));
role3.add(new PoiUtil.PoiUtilCell("手机号:" + departmentRole.getPhone(),1,1,666,42));
}
});
list.add(role1);
list.add(role2);
list.add(role3);
}
return list;
}
private String writeExcel(Workbook wb,String sheetName, List<List<PoiUtil.PoiUtilCell>> list) throws Exception {
PoiUtil.exportWB(sheetName, list, wb);
//生成文件
String fileName = "department/" + DateUtil.today() + "/" + System.currentTimeMillis() + ".xlsx";
String path = PropUtil.path + File.separator + fileName;
File tmpFile = new File(path);
if (!tmpFile.getParentFile().exists()) {
boolean mkdirs = tmpFile.getParentFile().mkdirs();
}
OutputStream stream = new FileOutputStream(tmpFile);
wb.write(stream);
stream.close();
return PropUtil.imgDomain + fileName;
}
} }

7
mt/src/main/java/com/ccsens/mt/service/IDepartmentService.java

@ -38,4 +38,11 @@ public interface IDepartmentService {
* @return 返回报名信息 * @return 返回报名信息
*/ */
CompeteVo.DepartmentInfo getDepartment(QueryDto<CompeteDto.GetDepartmentInfo> params); CompeteVo.DepartmentInfo getDepartment(QueryDto<CompeteDto.GetDepartmentInfo> params);
/**
* 导出报名信息表
* @param params
* @return
*/
String exportExcel(CompeteDto.CompeteType params);
} }

28
mt/src/main/java/com/ccsens/mt/service/LevelUpService.java

@ -3,6 +3,7 @@ package com.ccsens.mt.service;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.lang.Snowflake; import cn.hutool.core.lang.Snowflake;
import cn.hutool.core.util.ObjectUtil;
import com.ccsens.mt.bean.dto.LevelDto; import com.ccsens.mt.bean.dto.LevelDto;
import com.ccsens.mt.bean.po.*; import com.ccsens.mt.bean.po.*;
import com.ccsens.mt.bean.vo.LevelVo; import com.ccsens.mt.bean.vo.LevelVo;
@ -73,20 +74,21 @@ public class LevelUpService implements ILevelUpService{
log.info("查找到的用户的选手信息:{}",levelUserList); log.info("查找到的用户的选手信息:{}",levelUserList);
levelUser = levelUserList.get(0); levelUser = levelUserList.get(0);
} }
//添加晋级表 if(ObjectUtil.isNotNull(levelUser)) {
LevelUpExample levelUpExample = new LevelUpExample(); //添加晋级表
levelUpExample.createCriteria().andLevelUserIdEqualTo(levelUser.getId()).andCompeteCodeEqualTo(levelUpDto.getCompeteCode()); LevelUpExample levelUpExample = new LevelUpExample();
if(levelUpDao.countByExample(levelUpExample) == 0) { levelUpExample.createCriteria().andLevelUserIdEqualTo(levelUser.getId()).andCompeteCodeEqualTo(levelUpDto.getCompeteCode());
LevelUp levelUp = new LevelUp(); if (levelUpDao.countByExample(levelUpExample) == 0) {
BeanUtil.copyProperties(levelUpDto, levelUp); LevelUp levelUp = new LevelUp();
levelUp.setId(snowflake.nextId()); BeanUtil.copyProperties(levelUpDto, levelUp);
levelUp.setLevelUserId(levelUser.getId()); levelUp.setId(snowflake.nextId());
levelUpDao.insertSelective(levelUp); levelUp.setLevelUserId(levelUser.getId());
//存入redis levelUpDao.insertSelective(levelUp);
String key = Constant.Redis.COMPETE_LEVEL + levelUpDto.getCompeteTimeId() + "_" + levelUpDto.getCompeteCode(); //存入redis
redisUtil.zsSet(key, levelUser, 0,3600 * 24 * 300); String key = Constant.Redis.COMPETE_LEVEL + levelUpDto.getCompeteTimeId() + "_" + levelUpDto.getCompeteCode();
redisUtil.zsSet(key, levelUser, 0, 3600 * 24 * 300);
}
} }
} }
/** /**

87
mt/src/main/java/com/ccsens/mt/service/ScoreService.java

@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.lang.Snowflake; import cn.hutool.core.lang.Snowflake;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.crypto.SecureUtil; import cn.hutool.crypto.SecureUtil;
import com.ccsens.cloudutil.bean.tall.vo.MemberVo; import com.ccsens.cloudutil.bean.tall.vo.MemberVo;
@ -22,7 +23,6 @@ import com.ccsens.util.ExcelUtil;
import com.ccsens.util.JsonResponse; import com.ccsens.util.JsonResponse;
import com.ccsens.util.WebConstant; import com.ccsens.util.WebConstant;
import com.ccsens.util.exception.BaseException; import com.ccsens.util.exception.BaseException;
import lombok.Data;
import org.apache.poi.xssf.usermodel.XSSFCell; import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook;
@ -33,34 +33,37 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.io.*; import java.io.*;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.*; import java.util.*;
import static java.math.BigDecimal.ROUND_HALF_UP; import static java.math.BigDecimal.ROUND_HALF_UP;
/**
* @author
*/
@Service @Service
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public class ScoreService implements IScoreService { public class ScoreService implements IScoreService {
@Autowired @Resource
private TallFeignClient tallFeignClient; private TallFeignClient tallFeignClient;
@Autowired @Resource
private MtScoreDao scoreDao; private MtScoreDao scoreDao;
@Autowired @Resource
private MtScoreLogDao scoreLogDao; private MtScoreLogDao scoreLogDao;
@Autowired @Resource
private MtJudgeDao judgeDao; private MtJudgeDao judgeDao;
@Autowired @Resource
private IMessageService messageService; private IMessageService messageService;
@Autowired @Resource
private Snowflake snowflake; private Snowflake snowflake;
/** /**
* 获取评分项 * 获取评分项
* * @param userId 用户id
* @param userId * @param playerId 被评分的任务或人
* @param playerId * @return 返回评分信息
* @return
*/ */
@Override @Override
public List<ScoreVo.ScoreInfo> getScoreLog(Long userId, Long playerId) { public List<ScoreVo.ScoreInfo> getScoreLog(Long userId, Long playerId) {
@ -85,7 +88,7 @@ public class ScoreService implements IScoreService {
scoreLogExample.createCriteria().andProjectIdEqualTo(taskInfo.getProjectId()); scoreLogExample.createCriteria().andProjectIdEqualTo(taskInfo.getProjectId());
List<MtScoreLog> scoreLogList = scoreLogDao.selectByExample(scoreLogExample); List<MtScoreLog> scoreLogList = scoreLogDao.selectByExample(scoreLogExample);
if (CollectionUtil.isNotEmpty(scoreLogList)) { if (CollectionUtil.isNotEmpty(scoreLogList)) {
ScoreVo.ScoreInfo scoreInfo = null; ScoreVo.ScoreInfo scoreInfo;
for (MtScoreLog mtScoreLog : scoreLogList) { for (MtScoreLog mtScoreLog : scoreLogList) {
scoreInfo = new ScoreVo.ScoreInfo(); scoreInfo = new ScoreVo.ScoreInfo();
scoreInfo.setId(mtScoreLog.getId()); scoreInfo.setId(mtScoreLog.getId());
@ -112,8 +115,8 @@ public class ScoreService implements IScoreService {
/** /**
* 提交评分 * 提交评分
* *
* @param userId * @param userId 用户id
* @param submitScore * @param submitScore 提交的评分信息
*/ */
@Override @Override
public void submitScore(Long userId, ScoreDto.SubmitScore submitScore) { public void submitScore(Long userId, ScoreDto.SubmitScore submitScore) {
@ -171,8 +174,8 @@ public class ScoreService implements IScoreService {
/** /**
* 提交单项评分 * 提交单项评分
* *
* @param userId * @param userId 用户id
* @param submitOnlyOneScore * @param submitOnlyOneScore 提交的单项评分信息
*/ */
@Override @Override
public void submitOnlyOneScore(Long userId, ScoreDto.SubmitOnlyOneScore submitOnlyOneScore) { public void submitOnlyOneScore(Long userId, ScoreDto.SubmitOnlyOneScore submitOnlyOneScore) {
@ -216,16 +219,16 @@ public class ScoreService implements IScoreService {
/** /**
* 查看评分 * 查看评分
* *
* @param userId * @param userId 用户id
* @param roleId * @param roleId 角色id
* @param playerId * @param playerId 查看的任务或人
* @return * @return 返回评分信息
*/ */
@Override @Override
public ScoreVo.AdminScore adminScore(Long userId, Long roleId, Long playerId) { public ScoreVo.AdminScore adminScore(Long userId, Long roleId, Long playerId) {
ScoreVo.AdminScore adminScore = new ScoreVo.AdminScore(); ScoreVo.AdminScore adminScore = new ScoreVo.AdminScore();
List<ScoreVo._adminScoreList> judgeScoreList = new ArrayList<>(); List<ScoreVo._adminScoreList> judgeScoreList = new ArrayList<>();
ScoreVo._adminScoreList judgeScore = new ScoreVo._adminScoreList(); ScoreVo._adminScoreList judgeScore;
// Score scoreMax = scoreDao.maxScore(playerId);//最高分 // Score scoreMax = scoreDao.maxScore(playerId);//最高分
// Score scoreMin = scoreDao.minScore(playerId);//最低分 // Score scoreMin = scoreDao.minScore(playerId);//最低分
TaskVo.TaskInfoWithFeign taskInfo = tallFeignClient.getProjectId(playerId); TaskVo.TaskInfoWithFeign taskInfo = tallFeignClient.getProjectId(playerId);
@ -291,7 +294,7 @@ public class ScoreService implements IScoreService {
} }
//查找每个任务的分数 //查找每个任务的分数
List<ScoreVo.RankingScore> rankingScoreList = new ArrayList<>(); List<ScoreVo.RankingScore> rankingScoreList = new ArrayList<>();
ScoreVo.RankingScore rankingScore = null; ScoreVo.RankingScore rankingScore;
if (CollectionUtil.isNotEmpty(taskIdList)) { if (CollectionUtil.isNotEmpty(taskIdList)) {
for (Long taskId : taskIdList) { for (Long taskId : taskIdList) {
rankingScore = new ScoreVo.RankingScore(); rankingScore = new ScoreVo.RankingScore();
@ -340,7 +343,7 @@ public class ScoreService implements IScoreService {
*/ */
private List<ScoreVo.JudgeScore> findJudgeScore(Long projectId, Long taskId) { private List<ScoreVo.JudgeScore> findJudgeScore(Long projectId, Long taskId) {
List<ScoreVo.JudgeScore> judgeScoreList = new ArrayList<>(); List<ScoreVo.JudgeScore> judgeScoreList = new ArrayList<>();
ScoreVo.JudgeScore judgeScore = null; ScoreVo.JudgeScore judgeScore;
//查找项目下所有评委 //查找项目下所有评委
MtJudgeExample judgeExample = new MtJudgeExample(); MtJudgeExample judgeExample = new MtJudgeExample();
judgeExample.createCriteria().andProjectIdEqualTo(projectId); judgeExample.createCriteria().andProjectIdEqualTo(projectId);
@ -368,7 +371,7 @@ public class ScoreService implements IScoreService {
public void showScore(Long projectId, Long taskId) throws Exception { public void showScore(Long projectId, Long taskId) throws Exception {
SyncMessageWithShowDto scoreShow = new SyncMessageWithShowDto(); SyncMessageWithShowDto scoreShow = new SyncMessageWithShowDto();
SyncMessageWithShowDto.Data data = new SyncMessageWithShowDto.Data(); SyncMessageWithShowDto.Data data = new SyncMessageWithShowDto.Data();
SyncMessageWithShowDto.Data.Judge judge = null; SyncMessageWithShowDto.Data.Judge judge;
List<SyncMessageWithShowDto.Data.Judge> judgeList = new ArrayList<>(); List<SyncMessageWithShowDto.Data.Judge> judgeList = new ArrayList<>();
//项目 //项目
@ -462,14 +465,12 @@ public class ScoreService implements IScoreService {
/** /**
* 导出签字表 * 导出签字表
* *
* @param projectId * @param projectId 项目id
* @param taskId * @param taskId 任务id
* @return * @return 返回签字表路径
*/ */
@Override @Override
public String exportExcel(Long projectId, Long taskId) throws Exception { public String exportExcel(Long projectId, Long taskId) throws Exception {
//返回excel地址
String excelPath = "";
//获取模板 //获取模板
ResourceLoader resourceLoader = new DefaultResourceLoader(); ResourceLoader resourceLoader = new DefaultResourceLoader();
InputStream is = resourceLoader.getResource("classpath:template/judgeTemplate.xlsx").getInputStream(); InputStream is = resourceLoader.getResource("classpath:template/judgeTemplate.xlsx").getInputStream();
@ -504,19 +505,17 @@ public class ScoreService implements IScoreService {
excel.write(stream); excel.write(stream);
//关闭流 //关闭流
stream.close(); stream.close();
String rePath = WebConstant.TEST_URL_BASE_MT + WebConstant.UPLOAD_PATH_BASE_MT_JUDGE + File.separator + extraPath + File.separator + path + ".xlsx"; return WebConstant.TEST_URL_BASE_MT + WebConstant.UPLOAD_PATH_BASE_MT_JUDGE + File.separator + extraPath + File.separator + path + ".xlsx";
return rePath;
} }
/** /**
* 写入excel * 写入excel
* *
* @param taskInfo * @param taskInfo 任务和项目信息
* @param judge * @param judge 评委信息
* @throws Exception
*/ */
public void writeExcel(TaskVo.TaskInfoWithFeign taskInfo, MtJudge judge, XSSFSheet judgeSheet) throws Exception { public void writeExcel(TaskVo.TaskInfoWithFeign taskInfo, MtJudge judge, XSSFSheet judgeSheet){
XSSFCell industry = judgeSheet.getRow(5).getCell(3); // XSSFCell industry = judgeSheet.getRow(5).getCell(3);
//项目名 //项目名
XSSFCell projectName = judgeSheet.getRow(5).getCell(5); XSSFCell projectName = judgeSheet.getRow(5).getCell(5);
projectName.setCellValue(taskInfo.getProjectName()); projectName.setCellValue(taskInfo.getProjectName());
@ -547,9 +546,8 @@ public class ScoreService implements IScoreService {
/** /**
* 导出排名表 * 导出排名表
* @param projectId * @param projectId 项目id
* @return * @return 返回排名表信息
* @throws Exception
*/ */
@Override @Override
public String rankingExcel(Long projectId) throws Exception { public String rankingExcel(Long projectId) throws Exception {
@ -572,7 +570,7 @@ public class ScoreService implements IScoreService {
} }
} }
//保存地址 //保存地址
String filePath = SecureUtil.simpleUUID(); String filePath = IdUtil.simpleUUID();
String dir = WebConstant.UPLOAD_PATH_BASE + File.separator + WebConstant.UPLOAD_PATH_BASE_MT_JUDGE; String dir = WebConstant.UPLOAD_PATH_BASE + File.separator + WebConstant.UPLOAD_PATH_BASE_MT_JUDGE;
String extraPath = DateUtil.format(new Date(), "yyyyMMdd"); String extraPath = DateUtil.format(new Date(), "yyyyMMdd");
String ePath = dir + File.separator + extraPath + File.separator + filePath + ".xlsx"; String ePath = dir + File.separator + extraPath + File.separator + filePath + ".xlsx";
@ -593,8 +591,8 @@ public class ScoreService implements IScoreService {
/** /**
* 获取总评分表 * 获取总评分表
* @param projectId * @param projectId 项目id
* @return * @return 返回路径
*/ */
@Override @Override
public String rankingAllExcel(Long projectId) throws Exception{ public String rankingAllExcel(Long projectId) throws Exception{
@ -644,7 +642,7 @@ public class ScoreService implements IScoreService {
} }
//保存地址 //保存地址
String filePath = SecureUtil.simpleUUID(); String filePath = IdUtil.simpleUUID();
String dir = WebConstant.UPLOAD_PATH_BASE + File.separator + WebConstant.UPLOAD_PATH_BASE_MT_JUDGE; String dir = WebConstant.UPLOAD_PATH_BASE + File.separator + WebConstant.UPLOAD_PATH_BASE_MT_JUDGE;
String extraPath = DateUtil.format(new Date(), "yyyyMMdd"); String extraPath = DateUtil.format(new Date(), "yyyyMMdd");
String ePath = dir + File.separator + extraPath + File.separator + filePath + ".xlsx"; String ePath = dir + File.separator + extraPath + File.separator + filePath + ".xlsx";
@ -659,8 +657,7 @@ public class ScoreService implements IScoreService {
excel.write(stream); excel.write(stream);
//关闭流 //关闭流
stream.close(); stream.close();
String path = WebConstant.TEST_URL_BASE_MT + WebConstant.UPLOAD_PATH_BASE_MT_JUDGE + File.separator + extraPath + File.separator + filePath + ".xlsx"; return WebConstant.TEST_URL_BASE_MT + WebConstant.UPLOAD_PATH_BASE_MT_JUDGE + File.separator + extraPath + File.separator + filePath + ".xlsx";
return path;
} }
/*=====================================================*/ /*=====================================================*/

8
mt/src/main/java/com/ccsens/mt/service/VideoService.java

@ -9,6 +9,10 @@ import com.ccsens.mt.bean.po.CompeteVideoExample;
import com.ccsens.mt.bean.vo.VideoVo; import com.ccsens.mt.bean.vo.VideoVo;
import com.ccsens.mt.persist.mapper.CompeteVideoMapper; import com.ccsens.mt.persist.mapper.CompeteVideoMapper;
import com.ccsens.util.bean.dto.QueryDto; import com.ccsens.util.bean.dto.QueryDto;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.ArrayList; import java.util.ArrayList;
@ -17,6 +21,9 @@ import java.util.List;
/** /**
* @author * @author
*/ */
@Slf4j
@Service
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public class VideoService implements IVideoService{ public class VideoService implements IVideoService{
@Resource @Resource
private Snowflake snowflake; private Snowflake snowflake;
@ -64,6 +71,7 @@ public class VideoService implements IVideoService{
competeVideo.setTeam(uploadVideo.getTeam()); competeVideo.setTeam(uploadVideo.getTeam());
competeVideo.setPlayerId(uploadVideo.getPlayerId()); competeVideo.setPlayerId(uploadVideo.getPlayerId());
competeVideo.setFileId(uploadVideo.getVideoFileId()); competeVideo.setFileId(uploadVideo.getVideoFileId());
competeVideo.setVideoUrl(uploadVideo.getVideoFileUrl());
competeVideo.setUploadUserId(params.getUserId()); competeVideo.setUploadUserId(params.getUserId());
competeVideo.setTime(System.currentTimeMillis()); competeVideo.setTime(System.currentTimeMillis());
competeVideoMapper.insertSelective(competeVideo); competeVideoMapper.insertSelective(competeVideo);

4
mt/src/main/resources/application.yml

@ -1,4 +1,4 @@
spring: spring:
profiles: profiles:
active: dev active: test
include: common, util-dev include: common, util-test

81
mt/src/main/resources/mapper_dao/CompeteTeamDao.xml

@ -16,18 +16,41 @@
</resultMap> </resultMap>
<resultMap id="getTeamByProjectId" type="com.ccsens.mt.bean.vo.CompeteVo$TeamInfoByProject"> <resultMap id="getTeamByProjectId" type="com.ccsens.mt.bean.vo.CompeteVo$TeamInfoByProject">
<id column="teamId" jdbcType="BIGINT" property="teamId" /> <id column="teamId" property="teamId" />
<result column="creatorId" jdbcType="BIGINT" property="creatorId" /> <result column="creatorId" property="creatorId" />
<result column="creatorName" jdbcType="VARCHAR" property="creatorName" /> <result column="creatorName" property="creatorName" />
<result column="certificate" jdbcType="TINYINT" property="certificate" /> <result column="certificate" property="certificate" />
<result column="memberNums" jdbcType="INT" property="memberNums" /> <result column="memberNums" property="memberNums" />
<result column="score" property="score" />
<collection property="members" ofType="com.ccsens.mt.bean.vo.CompeteVo$CompeteTeamProjectMember"> <collection property="members" ofType="com.ccsens.mt.bean.vo.CompeteVo$CompeteTeamProjectMember">
<id column="memberId" property="memberId"/> <id column="memberId" property="memberId"/>
<result column="memberName" property="memberName"/> <result column="memberName" property="memberName"/>
<result column="captain" property="captain"/> <result column="captain" property="captain"/>
</collection> </collection>
<collection property="videoInfoList" ofType="com.ccsens.mt.bean.vo.VideoVo$GetVideoInfo">
<id column="videoId" property="videoId"/>
<result column="fileId" property="fileId"/>
<result column="videoUrl" property="videoUrl"/>
<result column="uploadTime" property="uploadTime"/>
</collection>
</resultMap>
<resultMap id="getPlayerByProjectId" type="com.ccsens.mt.bean.vo.CompeteVo$PlayerInfoByProject">
<id column="playerId" property="playerId" />
<result column="name" property="name" />
<result column="gender" property="gender" />
<result column="phone" property="phone" />
<result column="groupId" property="groupId" />
<result column="groupName" property="groupName" />
<result column="companyName" property="companyName" />
<result column="certificate" property="certificate" />
<result column="score" property="score" />
<collection property="videoInfoList" ofType="com.ccsens.mt.bean.vo.VideoVo$GetVideoInfo">
<id column="videoId" property="videoId"/>
<result column="fileId" property="fileId"/>
<result column="videoUrl" property="videoUrl"/>
<result column="uploadTime" property="uploadTime"/>
</collection>
</resultMap> </resultMap>
<select id="countJoinTeam" resultType="java.lang.Long"> <select id="countJoinTeam" resultType="java.lang.Long">
SELECT SELECT
@ -161,10 +184,28 @@
(SELECT count(id) FROM t_compete_team_member WHERE compete_team_id = t.id) as memberNums, (SELECT count(id) FROM t_compete_team_member WHERE compete_team_id = t.id) as memberNums,
m.id as memberId, m.id as memberId,
p.`name` as memberName, p.`name` as memberName,
if(t.creator = p.id , true,false) as captain if(t.creator = p.id , true,false) as captain,
t.score,
v.id as videoId,
v.file_id as fileId,
v.video_url as videoUrl,
v.time as uploadTime
FROM FROM
t_compete_team t left join t_compete_team_member m on t.id = m.compete_team_id t_compete_team t left join t_compete_team_member m on t.id = m.compete_team_id
LEFT JOIN t_compete_player p on m.player_id = p.id LEFT JOIN t_compete_player p on m.player_id = p.id
LEFT JOIN t_compete_video v on v.player_id = t.id and v.rec_status = 0
LEFT JOIN
(
SELECT
s.task_id as teamId,
sum(s.score) as score
FROM
t_mt_score_log l LEFT JOIN t_mt_score s on l.id = s.score_log_id
WHERE
l.project_id = #{competeProjectId}
and l.rec_status = 0
and s.rec_status = 0
) t on t.teamId = t.id
WHERE WHERE
t.project_id = #{competeProjectId} t.project_id = #{competeProjectId}
and t.compete_time_id = #{competeTimeId} and t.compete_time_id = #{competeTimeId}
@ -172,7 +213,7 @@
and m.rec_status = 0 and m.rec_status = 0
and p.rec_status = 0 and p.rec_status = 0
</select> </select>
<select id="getPlayerByProjectId" resultType="com.ccsens.mt.bean.vo.CompeteVo$PlayerInfoByProject"> <select id="getPlayerByProjectId" resultMap="getPlayerByProjectId">
SELECT SELECT
p.id as playerId, p.id as playerId,
p.`name`, p.`name`,
@ -181,12 +222,30 @@
p.compete_group_id as groupId, p.compete_group_id as groupId,
(SELECT `group_name` FROM t_compete_group WHERE id = p.compete_group_id) as groupName, (SELECT `group_name` FROM t_compete_group WHERE id = p.compete_group_id) as groupName,
(SELECT `name` FROM t_compete_company WHERE id = p.company_id) as companyName, (SELECT `name` FROM t_compete_company WHERE id = p.company_id) as companyName,
pp.certificate pp.certificate,
t.score,
v.id as videoId,
v.file_id as fileId,
v.video_url as videoUrl,
v.time as uploadTime
FROM FROM
t_compete_project_player pp left join t_compete_player p on pp.player_id = p.id t_compete_project_player pp left join t_compete_player p on pp.player_id = p.id
LEFT JOIN t_compete_video v on v.player_id = pp.id and v.rec_status = 0
LEFT JOIN
(
SELECT
s.task_id as playerId,
sum(s.score) as score
FROM
t_mt_score_log l LEFT JOIN t_mt_score s on l.id = s.score_log_id
WHERE
l.project_id = #{competeProjectId}
and l.rec_status = 0
and s.rec_status = 0
) t on t.playerId = pp.id
WHERE WHERE
pp.project_id = 9 pp.project_id = #{competeProjectId}
and pp.compete_time_id = 1 and pp.compete_time_id = #{competeTimeId}
and pp.rec_status = 0 and pp.rec_status = 0
and p.rec_status = 0 and p.rec_status = 0
</select> </select>

19
tall/src/main/java/com/ccsens/tall/bean/dto/PluginDto.java

@ -3,6 +3,7 @@ package com.ccsens.tall.bean.dto;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import lombok.NonNull;
import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
@ -75,4 +76,22 @@ public class PluginDto {
private byte type; private byte type;
} }
@Data
@ApiModel("修改插件配置")
public static class UpdatePluginConfig {
@NonNull
@ApiModelProperty("任务id")
private Long taskId;
@ApiModelProperty("任务插件id")
private Long taskPluginId;
@ApiModelProperty("页面接口路径")
private String webPath;
@ApiModelProperty("入参")
private String importParam;
@ApiModelProperty("放置位置 默认0 ,0任务名 1详情页 2任务下")
private Byte placeLocation;
@ApiModelProperty("程序位置 0:tall内部,1外部")
private Byte routineLocation;
}
} }

11
tall/src/main/java/com/ccsens/tall/bean/dto/TaskDto.java

@ -174,6 +174,8 @@ public class TaskDto {
private Long delayTime; private Long delayTime;
@ApiModelProperty("优先级 3,紧急重要 2,紧急不重要 1,重要不紧急 0,不重要不紧急 默认0") @ApiModelProperty("优先级 3,紧急重要 2,紧急不重要 1,重要不紧急 0,不重要不紧急 默认0")
private Byte priority; private Byte priority;
@ApiModelProperty("是否是里程碑 0否 1是")
private Byte milestone;
@ApiModelProperty("交付物id和修改后的名字") @ApiModelProperty("交付物id和修改后的名字")
private List<UpdateTaskDeliverName> deliverList; private List<UpdateTaskDeliverName> deliverList;
@ApiModelProperty("需要修改的插件Id") @ApiModelProperty("需要修改的插件Id")
@ -376,4 +378,13 @@ public class TaskDto {
private Integer pageSize = 10; private Integer pageSize = 10;
} }
@Data
@ApiModel
public static class QueryAllTaskByProjectId {
@ApiModelProperty("项目Id")
private Long projectId;
@ApiModelProperty("角色id")
private Long roleId;
}
} }

3
tall/src/main/java/com/ccsens/tall/bean/dto/UserDto.java

@ -175,6 +175,9 @@ public class UserDto {
@ApiModelProperty("账号") @ApiModelProperty("账号")
@NotEmpty(message = "新账号不能为空.") @NotEmpty(message = "新账号不能为空.")
private String account; private String account;
@ApiModelProperty("密码,有账号登录信息则验证密码,没有则设为新密码")
@NotEmpty(message = "密码不能为空")
private String password;
} }
@Data @Data

243
tall/src/main/java/com/ccsens/tall/bean/po/ProRole.java

@ -1,117 +1,128 @@
package com.ccsens.tall.bean.po; package com.ccsens.tall.bean.po;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.util.Date;
public class ProRole implements Serializable { public class ProRole implements Serializable {
private Long id; private Long id;
private Long projectId; private Long projectId;
private Long parentId; private Long parentId;
private String name; private String name;
private String description; private String description;
private Integer sequence; private Integer sequence;
private Date createdAt; private Date createdAt;
private Date updatedAt; private Date updatedAt;
private Byte recStatus; private Byte recStatus;
private static final long serialVersionUID = 1L; private Long relevanceProjectId;
public Long getId() { private static final long serialVersionUID = 1L;
return id;
} public Long getId() {
return id;
public void setId(Long id) { }
this.id = id;
} public void setId(Long id) {
this.id = id;
public Long getProjectId() { }
return projectId;
} public Long getProjectId() {
return projectId;
public void setProjectId(Long projectId) { }
this.projectId = projectId;
} public void setProjectId(Long projectId) {
this.projectId = projectId;
public Long getParentId() { }
return parentId;
} public Long getParentId() {
return parentId;
public void setParentId(Long parentId) { }
this.parentId = parentId;
} public void setParentId(Long parentId) {
this.parentId = parentId;
public String getName() { }
return name;
} public String getName() {
return name;
public void setName(String name) { }
this.name = name == null ? null : name.trim();
} public void setName(String name) {
this.name = name == null ? null : name.trim();
public String getDescription() { }
return description;
} public String getDescription() {
return description;
public void setDescription(String description) { }
this.description = description == null ? null : description.trim();
} public void setDescription(String description) {
this.description = description == null ? null : description.trim();
public Integer getSequence() { }
return sequence;
} public Integer getSequence() {
return sequence;
public void setSequence(Integer sequence) { }
this.sequence = sequence;
} public void setSequence(Integer sequence) {
this.sequence = sequence;
public Date getCreatedAt() { }
return createdAt;
} public Date getCreatedAt() {
return createdAt;
public void setCreatedAt(Date createdAt) { }
this.createdAt = createdAt;
} public void setCreatedAt(Date createdAt) {
this.createdAt = createdAt;
public Date getUpdatedAt() { }
return updatedAt;
} public Date getUpdatedAt() {
return updatedAt;
public void setUpdatedAt(Date updatedAt) { }
this.updatedAt = updatedAt;
} public void setUpdatedAt(Date updatedAt) {
this.updatedAt = updatedAt;
public Byte getRecStatus() { }
return recStatus;
} public Byte getRecStatus() {
return recStatus;
public void setRecStatus(Byte recStatus) { }
this.recStatus = recStatus;
} public void setRecStatus(Byte recStatus) {
this.recStatus = recStatus;
@Override }
public String toString() {
StringBuilder sb = new StringBuilder(); public Long getRelevanceProjectId() {
sb.append(getClass().getSimpleName()); return relevanceProjectId;
sb.append(" ["); }
sb.append("Hash = ").append(hashCode());
sb.append(", id=").append(id); public void setRelevanceProjectId(Long relevanceProjectId) {
sb.append(", projectId=").append(projectId); this.relevanceProjectId = relevanceProjectId;
sb.append(", parentId=").append(parentId); }
sb.append(", name=").append(name);
sb.append(", description=").append(description); @Override
sb.append(", sequence=").append(sequence); public String toString() {
sb.append(", createdAt=").append(createdAt); StringBuilder sb = new StringBuilder();
sb.append(", updatedAt=").append(updatedAt); sb.append(getClass().getSimpleName());
sb.append(", recStatus=").append(recStatus); sb.append(" [");
sb.append("]"); sb.append("Hash = ").append(hashCode());
return sb.toString(); sb.append(", id=").append(id);
} sb.append(", projectId=").append(projectId);
sb.append(", parentId=").append(parentId);
sb.append(", name=").append(name);
sb.append(", description=").append(description);
sb.append(", sequence=").append(sequence);
sb.append(", createdAt=").append(createdAt);
sb.append(", updatedAt=").append(updatedAt);
sb.append(", recStatus=").append(recStatus);
sb.append(", relevanceProjectId=").append(relevanceProjectId);
sb.append("]");
return sb.toString();
}
} }

1580
tall/src/main/java/com/ccsens/tall/bean/po/ProRoleExample.java

File diff suppressed because it is too large

11
tall/src/main/java/com/ccsens/tall/bean/po/ProTaskDetail.java

@ -58,6 +58,8 @@ public class ProTaskDetail implements Serializable {
private Byte priority; private Byte priority;
private Byte milestone;
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
public Long getId() { public Long getId() {
@ -276,6 +278,14 @@ public class ProTaskDetail implements Serializable {
this.priority = priority; this.priority = priority;
} }
public Byte getMilestone() {
return milestone;
}
public void setMilestone(Byte milestone) {
this.milestone = milestone;
}
@Override @Override
public String toString() { public String toString() {
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
@ -309,6 +319,7 @@ public class ProTaskDetail implements Serializable {
sb.append(", updatedAt=").append(updatedAt); sb.append(", updatedAt=").append(updatedAt);
sb.append(", recStatus=").append(recStatus); sb.append(", recStatus=").append(recStatus);
sb.append(", priority=").append(priority); sb.append(", priority=").append(priority);
sb.append(", milestone=").append(milestone);
sb.append("]"); sb.append("]");
return sb.toString(); return sb.toString();
} }

60
tall/src/main/java/com/ccsens/tall/bean/po/ProTaskDetailExample.java

@ -1774,6 +1774,66 @@ public class ProTaskDetailExample {
addCriterion("priority not between", value1, value2, "priority"); addCriterion("priority not between", value1, value2, "priority");
return (Criteria) this; return (Criteria) this;
} }
public Criteria andMilestoneIsNull() {
addCriterion("milestone is null");
return (Criteria) this;
}
public Criteria andMilestoneIsNotNull() {
addCriterion("milestone is not null");
return (Criteria) this;
}
public Criteria andMilestoneEqualTo(Byte value) {
addCriterion("milestone =", value, "milestone");
return (Criteria) this;
}
public Criteria andMilestoneNotEqualTo(Byte value) {
addCriterion("milestone <>", value, "milestone");
return (Criteria) this;
}
public Criteria andMilestoneGreaterThan(Byte value) {
addCriterion("milestone >", value, "milestone");
return (Criteria) this;
}
public Criteria andMilestoneGreaterThanOrEqualTo(Byte value) {
addCriterion("milestone >=", value, "milestone");
return (Criteria) this;
}
public Criteria andMilestoneLessThan(Byte value) {
addCriterion("milestone <", value, "milestone");
return (Criteria) this;
}
public Criteria andMilestoneLessThanOrEqualTo(Byte value) {
addCriterion("milestone <=", value, "milestone");
return (Criteria) this;
}
public Criteria andMilestoneIn(List<Byte> values) {
addCriterion("milestone in", values, "milestone");
return (Criteria) this;
}
public Criteria andMilestoneNotIn(List<Byte> values) {
addCriterion("milestone not in", values, "milestone");
return (Criteria) this;
}
public Criteria andMilestoneBetween(Byte value1, Byte value2) {
addCriterion("milestone between", value1, value2, "milestone");
return (Criteria) this;
}
public Criteria andMilestoneNotBetween(Byte value1, Byte value2) {
addCriterion("milestone not between", value1, value2, "milestone");
return (Criteria) this;
}
} }
public static class Criteria extends GeneratedCriteria { public static class Criteria extends GeneratedCriteria {

2
tall/src/main/java/com/ccsens/tall/bean/vo/ProjectVo.java

@ -166,6 +166,8 @@ public class ProjectVo {
private boolean stakeholder; private boolean stakeholder;
@ApiModelProperty("该角色是否显示") @ApiModelProperty("该角色是否显示")
private Boolean isShow = true; private Boolean isShow = true;
@ApiModelProperty("是否是项目虚拟的角色 0否 1是")
private byte projectRole = 0;
@ApiModelProperty("成员信息") @ApiModelProperty("成员信息")
private List<ProMemberVo> members; private List<ProMemberVo> members;
@JsonIgnore @JsonIgnore

46
tall/src/main/java/com/ccsens/tall/bean/vo/TaskVo.java

@ -148,6 +148,8 @@ public class TaskVo {
private String importParam; private String importParam;
@ApiModelProperty("优先级 默认0 3,紧急重要 2,紧急不重要 1,重要不紧急 0,不重要不紧急") @ApiModelProperty("优先级 默认0 3,紧急重要 2,紧急不重要 1,重要不紧急 0,不重要不紧急")
private Byte priority; private Byte priority;
@ApiModelProperty("是否是里程碑 0否 1是")
private Byte milestone;
@ApiModelProperty("提醒的信息") @ApiModelProperty("提醒的信息")
private List<RemindInfo> remindInfoList; private List<RemindInfo> remindInfoList;
public Long getDuration(){ public Long getDuration(){
@ -221,6 +223,12 @@ public class TaskVo {
private String description; private String description;
@ApiModelProperty("显示分类") @ApiModelProperty("显示分类")
private String showType; private String showType;
@ApiModelProperty("页面/接口路径")
private String webPath;
@ApiModelProperty("程序位置 0:tall内部,1外部")
private Byte routineLocation;
@ApiModelProperty("入参")
private String importParam;
@JsonIgnore @JsonIgnore
private Long roleId; private Long roleId;
} }
@ -434,4 +442,42 @@ public class TaskVo {
private String deliverPath; private String deliverPath;
} }
} }
@Data
@ApiModel("根据项目id查询所有任务信息")
public static class TaskListByProjectId{
@ApiModelProperty("任务详细信息id")
private Long detailId;
@ApiModelProperty("名称")
private String name;
@ApiModelProperty("详细描述")
private String description;
@ApiModelProperty("所属项目id")
private Long projectId;
@ApiModelProperty("所属项目名称")
private String projectName;
@ApiModelProperty("负责人Id")
private Long executorRole;
@ApiModelProperty("负责人名称")
private String executorRoleName;
@ApiModelProperty("交付物id")
private Long deliverId;
@ApiModelProperty("交付物名称")
private String deliverName;
@ApiModelProperty("开始时间")
private Long beginTime;
@ApiModelProperty("结束时间")
private Long endTime;
@ApiModelProperty("循环周期")
private String cycle;
@ApiModelProperty("奖惩")
private BigDecimal money;
@ApiModelProperty("优先级 默认0 3,紧急重要 2,紧急不重要 1,重要不紧急 0,不重要不紧急")
private Byte priority;
@ApiModelProperty("是否是里程碑 0否 1是")
private Byte milestone;
@ApiModelProperty("二级任务")
private List<TaskListByProjectId> secondTasks;
}
} }

3
tall/src/main/java/com/ccsens/tall/persist/dao/SysPluginDao.java

@ -1,5 +1,6 @@
package com.ccsens.tall.persist.dao; package com.ccsens.tall.persist.dao;
import com.ccsens.tall.bean.po.ProPluginConfig;
import com.ccsens.tall.bean.vo.PluginVo; import com.ccsens.tall.bean.vo.PluginVo;
import com.ccsens.tall.bean.vo.TaskVo; import com.ccsens.tall.bean.vo.TaskVo;
import com.ccsens.tall.bean.vo.WbsVo; import com.ccsens.tall.bean.vo.WbsVo;
@ -20,4 +21,6 @@ public interface SysPluginDao extends SysPluginMapper{
void deleteByTaskId(@Param("taskId")Long taskId); void deleteByTaskId(@Param("taskId")Long taskId);
List<WbsVo.PluginInfo> getPluginNameAndTaskName(@Param("projectId")Long projectId); List<WbsVo.PluginInfo> getPluginNameAndTaskName(@Param("projectId")Long projectId);
ProPluginConfig getPluginConfigByTaskPluginId(@Param("taskPluginId")String taskPluginId);
} }

13
tall/src/main/java/com/ccsens/tall/persist/dao/TaskDetailDao.java

@ -40,4 +40,17 @@ public interface TaskDetailDao extends ProTaskDetailMapper {
List<ProTaskDetail> selectAllByProject(@Param("projectId")Long projectId); List<ProTaskDetail> selectAllByProject(@Param("projectId")Long projectId);
List<WbsVo.ChecklistByProjectId> getChecklistsByProjectId(@Param("projectId")Long projectId,@Param("roleId")Long roleId,@Param("allMemberId")Long allMemberId,@Param("startTime")Long startTime,@Param("endTime")Long endTime); List<WbsVo.ChecklistByProjectId> getChecklistsByProjectId(@Param("projectId")Long projectId,@Param("roleId")Long roleId,@Param("allMemberId")Long allMemberId,@Param("startTime")Long startTime,@Param("endTime")Long endTime);
/**
* 通过任务id查看任务信息查看项目下所有任务时
* @param detailTaskId
* @return
*/
TaskVo.TaskListByProjectId getTaskById(@Param("detailTaskId")Long detailTaskId);
/**
* 通过任务id查看任务信息查看项目下所有任务时
* @param parentTaskId
* @return
*/
List<TaskVo.TaskListByProjectId> getTaskByParentId(@Param("parentTaskId")Long parentTaskId);
} }

59
tall/src/main/java/com/ccsens/tall/persist/mapper/ProRoleMapper.java

@ -1,31 +1,30 @@
package com.ccsens.tall.persist.mapper; package com.ccsens.tall.persist.mapper;
import com.ccsens.tall.bean.po.ProRole; import com.ccsens.tall.bean.po.ProRole;
import com.ccsens.tall.bean.po.ProRoleExample; import com.ccsens.tall.bean.po.ProRoleExample;
import org.apache.ibatis.annotations.Param; import java.util.List;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface ProRoleMapper {
public interface ProRoleMapper { long countByExample(ProRoleExample example);
long countByExample(ProRoleExample example);
int deleteByExample(ProRoleExample example);
int deleteByExample(ProRoleExample example);
int deleteByPrimaryKey(Long id);
int deleteByPrimaryKey(Long id);
int insert(ProRole record);
int insert(ProRole record);
int insertSelective(ProRole record);
int insertSelective(ProRole record);
List<ProRole> selectByExample(ProRoleExample example);
List<ProRole> selectByExample(ProRoleExample example);
ProRole selectByPrimaryKey(Long id);
ProRole selectByPrimaryKey(Long id);
int updateByExampleSelective(@Param("record") ProRole record, @Param("example") ProRoleExample example);
int updateByExampleSelective(@Param("record") ProRole record, @Param("example") ProRoleExample example);
int updateByExample(@Param("record") ProRole record, @Param("example") ProRoleExample example);
int updateByExample(@Param("record") ProRole record, @Param("example") ProRoleExample example);
int updateByPrimaryKeySelective(ProRole record);
int updateByPrimaryKeySelective(ProRole record);
int updateByPrimaryKey(ProRole record);
int updateByPrimaryKey(ProRole record);
} }

33
tall/src/main/java/com/ccsens/tall/service/ExcelService.java

@ -17,9 +17,14 @@ import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow; import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.TransactionDefinition;
import org.springframework.transaction.TransactionStatus;
import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.support.DefaultTransactionDefinition;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.io.FileInputStream; import java.io.FileInputStream;
@ -145,7 +150,6 @@ public class ExcelService implements IExcelService {
readProject(wbsSheet, projectInfoStart, projectInfoEnd, currentUserId, sysProject); readProject(wbsSheet, projectInfoStart, projectInfoEnd, currentUserId, sysProject);
readMember(wbsSheet, memberSheet, memberStart, memberEnd, sysProject, proRoles, proMembers); readMember(wbsSheet, memberSheet, memberStart, memberEnd, sysProject, proRoles, proMembers);
readTask(xssfWorkbook, wbsSheet, taskStart, taskEnd, currentUserId, sysProject, taskDetails, proRoles, proMembers, hasGroupMap); readTask(xssfWorkbook, wbsSheet, taskStart, taskEnd, currentUserId, sysProject, taskDetails, proRoles, proMembers, hasGroupMap);
saveProTaskSubTime(taskDetails);
//读取插件表 //读取插件表
readPlugin(xssfWorkbook, taskDetails, proRoles, hasGroupMap); readPlugin(xssfWorkbook, taskDetails, proRoles, hasGroupMap);
//读取插件配置表 //读取插件配置表
@ -156,6 +160,8 @@ public class ExcelService implements IExcelService {
wbsSubSheetService.getRoBotSheet(sysProject.getId(),xssfWorkbook); wbsSubSheetService.getRoBotSheet(sysProject.getId(),xssfWorkbook);
//读取关联项目表 //读取关联项目表
wbsSubSheetService.readRelevanceProject(sysProject.getId(),xssfWorkbook); wbsSubSheetService.readRelevanceProject(sysProject.getId(),xssfWorkbook);
saveProTaskSubTime(taskDetails);
return sysProject; return sysProject;
} }
@ -283,6 +289,7 @@ public class ExcelService implements IExcelService {
String proRoleCell = ExcelUtil.getCellValue(row.getCell(1)); String proRoleCell = ExcelUtil.getCellValue(row.getCell(1));
String secondRoleCell = ExcelUtil.getCellValue(row.getCell(2)); String secondRoleCell = ExcelUtil.getCellValue(row.getCell(2));
String memberCell = ExcelUtil.getCellValue(row.getCell(3)); String memberCell = ExcelUtil.getCellValue(row.getCell(3));
String roleRelevanceProjectId = ExcelUtil.getCellValue(row.getCell(3));
//添加一级角色 //添加一级角色
if (StrUtil.isNotEmpty(proRoleCell)) { if (StrUtil.isNotEmpty(proRoleCell)) {
ProRole role = new ProRole(); ProRole role = new ProRole();
@ -311,6 +318,9 @@ public class ExcelService implements IExcelService {
} else if (proRoleCell.equalsIgnoreCase(WebConstant.ROLE_NAME.Attention.phase)) { } else if (proRoleCell.equalsIgnoreCase(WebConstant.ROLE_NAME.Attention.phase)) {
role.setName(WebConstant.ROLE_NAME.Attention.value); role.setName(WebConstant.ROLE_NAME.Attention.value);
role.setDescription(WebConstant.ROLE_NAME.Attention.phase); role.setDescription(WebConstant.ROLE_NAME.Attention.phase);
}else if (proRoleCell.equalsIgnoreCase(WebConstant.ROLE_NAME.ProjectVirtualRole.phase)) {
role.setName(WebConstant.ROLE_NAME.ProjectVirtualRole.value);
role.setDescription(WebConstant.ROLE_NAME.ProjectVirtualRole.phase);
} else { } else {
throw new BaseException(CodeEnum.WBS_NOT_FIRST_ROLE.addMsg(wbsSheet.getSheetName() + i)); throw new BaseException(CodeEnum.WBS_NOT_FIRST_ROLE.addMsg(wbsSheet.getSheetName() + i));
} }
@ -339,6 +349,19 @@ public class ExcelService implements IExcelService {
proRole.setParentId(firstRoleId); proRole.setParentId(firstRoleId);
proRole.setProjectId(sysProject.getId()); proRole.setProjectId(sysProject.getId());
proRole.setId(snowflake.nextId()); proRole.setId(snowflake.nextId());
//为虚拟项目角色添加关联的项目id
if (StrUtil.isEmpty(memberCell) && StrUtil.isNotEmpty(roleRelevanceProjectId)){
//查找关联的项目
try {
SysProject project = sysProjectDao.selectByPrimaryKey(Long.parseLong(roleRelevanceProjectId));
if(ObjectUtil.isNull(project)){
throw new BaseException(CodeEnum.NOT_PROJECT.addMsg(wbsSheet.getSheetName() + i));
}
proRole.setRelevanceProjectId(project.getId());
}catch (NumberFormatException e){
throw new BaseException(CodeEnum.NOT_PROJECT.addMsg(wbsSheet.getSheetName() + i));
}
}
proRoleService.saveProRole(proRole); proRoleService.saveProRole(proRole);
proRoles.add(proRole); proRoles.add(proRole);
secondRoleId = proRole.getId(); secondRoleId = proRole.getId();
@ -349,7 +372,7 @@ public class ExcelService implements IExcelService {
if (ObjectUtil.isNull(secondRoleId)) { if (ObjectUtil.isNull(secondRoleId)) {
throw new BaseException("找不到二级角色[" + i + "]"); throw new BaseException("找不到二级角色[" + i + "]");
} }
//添加角色成员关联信息
if (StrUtil.isNotEmpty(memberCell)) { if (StrUtil.isNotEmpty(memberCell)) {
ProMemberRole memberRole = null; ProMemberRole memberRole = null;
for (ProMember member : proMembers) { for (ProMember member : proMembers) {
@ -364,7 +387,11 @@ public class ExcelService implements IExcelService {
if (ObjectUtil.isNull(memberRole)) { if (ObjectUtil.isNull(memberRole)) {
throw new BaseException(CodeEnum.WSB_NOT_MEMBER.addMsg(wbsSheet.getSheetName() + i)); throw new BaseException(CodeEnum.WSB_NOT_MEMBER.addMsg(wbsSheet.getSheetName() + i));
} }
}else if (StrUtil.isNotEmpty(roleRelevanceProjectId)) {
} }
} }
//角色对谁不可见 //角色对谁不可见
String[] excludeRoleCells; String[] excludeRoleCells;
@ -994,11 +1021,13 @@ public class ExcelService implements IExcelService {
return; return;
} }
for (CronConstant.TaskDate taskDate : taskDateList) { for (CronConstant.TaskDate taskDate : taskDateList) {
ProTaskSubTime proTaskSubTime = new ProTaskSubTime(); ProTaskSubTime proTaskSubTime = new ProTaskSubTime();
proTaskSubTime.setId(snowflake.nextId()); proTaskSubTime.setId(snowflake.nextId());
proTaskSubTime.setTaskDetailId(taskDetail.getId()); proTaskSubTime.setTaskDetailId(taskDetail.getId());
proTaskSubTime.setBeginTime(taskDate.getStartDate().getTime()); proTaskSubTime.setBeginTime(taskDate.getStartDate().getTime());
proTaskSubTime.setEndTime(taskDate.getEndDate().getTime()); proTaskSubTime.setEndTime(taskDate.getEndDate().getTime());
taskSubTimeService.saveProTaskSubTask(proTaskSubTime); taskSubTimeService.saveProTaskSubTask(proTaskSubTime);
} }
} }

9
tall/src/main/java/com/ccsens/tall/service/IProTaskDetailService.java

@ -1,5 +1,6 @@
package com.ccsens.tall.service; package com.ccsens.tall.service;
import com.ccsens.tall.bean.dto.ProjectDto;
import com.ccsens.tall.bean.dto.TaskDto; import com.ccsens.tall.bean.dto.TaskDto;
import com.ccsens.tall.bean.po.ProSubTimeMember; import com.ccsens.tall.bean.po.ProSubTimeMember;
import com.ccsens.tall.bean.po.ProTaskDetail; import com.ccsens.tall.bean.po.ProTaskDetail;
@ -46,4 +47,12 @@ public interface IProTaskDetailService {
* @throws Exception 异常 * @throws Exception 异常
*/ */
TaskVo.NormalTask updateTaskConfig(Long userId,TaskDto.UpdateTaskConfig updateTaskConfig) throws Exception; TaskVo.NormalTask updateTaskConfig(Long userId,TaskDto.UpdateTaskConfig updateTaskConfig) throws Exception;
/**
* 通过项目id查找所有任务
* @param currentUserId userId
* @param projectId 项目Id
* @return 返回所有任务
*/
List<TaskVo.TaskListByProjectId> queryAllTaskByProjectId(Long currentUserId, TaskDto.QueryAllTaskByProjectId projectId) throws Exception;
} }

6
tall/src/main/java/com/ccsens/tall/service/ITaskPluginService.java

@ -61,4 +61,10 @@ public interface ITaskPluginService {
* @return 返回wps里的文件的路径 * @return 返回wps里的文件的路径
*/ */
List<PluginVo.MinutesInfo> updateMinutesProject(Long currentUserId, PluginDto.UpdateMinutes updateMinutes, String token) throws Exception; List<PluginVo.MinutesInfo> updateMinutesProject(Long currentUserId, PluginDto.UpdateMinutes updateMinutes, String token) throws Exception;
/**
* 修改插件配置
* @param updatePluginConfig 插件配置
*/
void updatePluginConfig(PluginDto.UpdatePluginConfig updatePluginConfig);
} }

3
tall/src/main/java/com/ccsens/tall/service/ProMemberService.java

@ -72,6 +72,9 @@ public class ProMemberService implements IProMemberService {
boolean flag = false; boolean flag = false;
//如果该角色是全体成员返回true //如果该角色是全体成员返回true
ProRole role = proRoleDao.selectByPrimaryKey(roleId); ProRole role = proRoleDao.selectByPrimaryKey(roleId);
if(ObjectUtil.isNull(role)){
return false;
}
if(role.getName().equalsIgnoreCase(WebConstant.ROLE_NAME.AllMember.phase)){ if(role.getName().equalsIgnoreCase(WebConstant.ROLE_NAME.AllMember.phase)){
flag = true; flag = true;
} }

125
tall/src/main/java/com/ccsens/tall/service/ProTaskDetailService.java

@ -6,6 +6,7 @@ import cn.hutool.core.lang.Snowflake;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.ccsens.cloudutil.feign.MtFeignClient; import com.ccsens.cloudutil.feign.MtFeignClient;
import com.ccsens.tall.bean.dto.ProjectDto;
import com.ccsens.tall.bean.dto.TaskDto; import com.ccsens.tall.bean.dto.TaskDto;
import com.ccsens.tall.bean.po.*; import com.ccsens.tall.bean.po.*;
import com.ccsens.tall.bean.vo.MemberVo; import com.ccsens.tall.bean.vo.MemberVo;
@ -106,7 +107,7 @@ public class ProTaskDetailService implements IProTaskDetailService {
// obj = getTaskInfoByMvp(projectId, page, pageSize); // obj = getTaskInfoByMvp(projectId, page, pageSize);
// } else // } else
if (parentRole.getName().equalsIgnoreCase(WebConstant.ROLE_NAME.PM.value)) { if (parentRole.getName().equalsIgnoreCase(WebConstant.ROLE_NAME.PM.value)) {
obj = getTaskInfoByProjectIdAndPM(currentUserId, projectId, taskInfoByRoleId.getRoleId(), obj = getTaskInfoByProjectIdAndPm(currentUserId, projectId, taskInfoByRoleId.getRoleId(),
taskInfoByRoleId.getStartTime(), taskInfoByRoleId.getEndTime(), taskInfoByRoleId.getProcess(), taskInfoByRoleId.getStartTime(), taskInfoByRoleId.getEndTime(), taskInfoByRoleId.getProcess(),
taskInfoByRoleId.getPage(), taskInfoByRoleId.getPageSize(),taskInfoByRoleId.getPriority(),taskInfoByRoleId.getImitation()); taskInfoByRoleId.getPage(), taskInfoByRoleId.getPageSize(),taskInfoByRoleId.getPriority(),taskInfoByRoleId.getImitation());
} else if (parentRole.getName().equalsIgnoreCase(WebConstant.ROLE_NAME.Member.value)) { } else if (parentRole.getName().equalsIgnoreCase(WebConstant.ROLE_NAME.Member.value)) {
@ -142,8 +143,8 @@ public class ProTaskDetailService implements IProTaskDetailService {
/** /**
* 查看任务 项目经理 * 查看任务 项目经理
*/ */
private TaskVo.ProTaskInfo getTaskInfoByProjectIdAndPM(Long currentUserId, Long projectId,Long roleId, Long startTime, Long endTime, private TaskVo.ProTaskInfo getTaskInfoByProjectIdAndPm(Long currentUserId, Long projectId, Long roleId, Long startTime, Long endTime,
Integer process, Integer page, Integer pageSize,Integer priority,Integer imitation) throws Exception { Integer process, Integer page, Integer pageSize, Integer priority, Integer imitation) throws Exception {
TaskVo.ProTaskInfo proTaskInfo = new TaskVo.ProTaskInfo(); TaskVo.ProTaskInfo proTaskInfo = new TaskVo.ProTaskInfo();
List<TaskVo.GlobalTask> globalTaskList = new ArrayList<>(); List<TaskVo.GlobalTask> globalTaskList = new ArrayList<>();
@ -460,13 +461,19 @@ public class ProTaskDetailService implements IProTaskDetailService {
plugin.setName(pluginNames[i]); plugin.setName(pluginNames[i]);
plugin.setDescription(pluginDescription[i]); plugin.setDescription(pluginDescription[i]);
plugin.setShowType(pluginShowType[i]); plugin.setShowType(pluginShowType[i]);
//查找插件的配置信息
ProPluginConfig proPluginConfig = sysPluginDao.getPluginConfigByTaskPluginId(pluginIds[i]);
if(ObjectUtil.isNotNull(proPluginConfig)) {
plugin.setWebPath(proPluginConfig.getWebPath());
plugin.setRoutineLocation(proPluginConfig.getRoutineLocation());
plugin.setImportParam(proPluginConfig.getImportParam());
}
pluginVoList.add(plugin); pluginVoList.add(plugin);
} }
} }
normalTask.setPlugins(pluginVoList); normalTask.setPlugins(pluginVoList);
} }
} }
} }
/** /**
@ -566,7 +573,7 @@ public class ProTaskDetailService implements IProTaskDetailService {
taskDetail.setProTaskConfig(getProTaskShow(taskDetail.getDetailId())); taskDetail.setProTaskConfig(getProTaskShow(taskDetail.getDetailId()));
//添加项目信息 //添加项目信息
normalTaskAddPlugin(currentUserId, subTime.getTaskDetailId(), taskDetail); normalTaskAddPlugin(subTime.getTaskDetailId(), taskDetail);
List<TaskVo.NormalTask> groupTaskList = new ArrayList<>(); List<TaskVo.NormalTask> groupTaskList = new ArrayList<>();
//提醒信息 //提醒信息
@ -597,7 +604,7 @@ public class ProTaskDetailService implements IProTaskDetailService {
} }
//添加项目信息和插件信息 //添加项目信息和插件信息
normalTaskAddPlugin(currentUserId, groupTask.getDetailId(), groupTask); normalTaskAddPlugin(groupTask.getDetailId(), groupTask);
//修改返回时子任务的名字(“任务名+(xx和XX)”) //修改返回时子任务的名字(“任务名+(xx和XX)”)
if (detail.getAllMember() == 0) { if (detail.getAllMember() == 0) {
groupTask.setName(updateSubTaskName(groupTask.getDetailId(), groupTask.getName())); groupTask.setName(updateSubTaskName(groupTask.getDetailId(), groupTask.getName()));
@ -615,7 +622,7 @@ public class ProTaskDetailService implements IProTaskDetailService {
return taskDetail; return taskDetail;
} }
private void normalTaskAddPlugin(Long userId, Long taskId, TaskVo.NormalTask normalTask) throws Exception { private void normalTaskAddPlugin( Long taskId, TaskVo.NormalTask normalTask) {
ProTaskDetail task = taskDetailDao.selectByPrimaryKey(taskId); ProTaskDetail task = taskDetailDao.selectByPrimaryKey(taskId);
//添加项目信息 //添加项目信息
SysProject project = sysProjectDao.selectByPrimaryKey(task.getProjectId()); SysProject project = sysProjectDao.selectByPrimaryKey(task.getProjectId());
@ -627,17 +634,13 @@ public class ProTaskDetailService implements IProTaskDetailService {
if (ObjectUtil.isNotNull(role)) { if (ObjectUtil.isNotNull(role)) {
normalTask.setExecutorRoleName(role.getName()); normalTask.setExecutorRoleName(role.getName());
} }
//添加插件
// List<TaskVo.PluginVo> pluginVoList = pluginService.getPluginByTask(task.getId(), userId);
// normalTask.setPlugins(new ArrayList<>());
// normalTask.getPlugins().addAll(pluginVoList);
} }
/** /**
* 修改返回时子任务的名字 格式任务名+xx和XX * 修改返回时子任务的名字 格式任务名+xx和XX
*/ */
private String updateSubTaskName(Long taskId, String taskName) { private String updateSubTaskName(Long taskId, String taskName) {
String name = taskName + "("; StringBuilder name = new StringBuilder(taskName + "(");
ProTaskMemberExample taskMemberExample = new ProTaskMemberExample(); ProTaskMemberExample taskMemberExample = new ProTaskMemberExample();
taskMemberExample.createCriteria().andTaskDetailIdEqualTo(taskId); taskMemberExample.createCriteria().andTaskDetailIdEqualTo(taskId);
List<ProTaskMember> taskMemberList = taskMemberDao.selectByExample(taskMemberExample); List<ProTaskMember> taskMemberList = taskMemberDao.selectByExample(taskMemberExample);
@ -645,15 +648,15 @@ public class ProTaskDetailService implements IProTaskDetailService {
for (int i = 0; i < taskMemberList.size(); i++) { for (int i = 0; i < taskMemberList.size(); i++) {
ProMember member = proMemberDao.selectByPrimaryKey(taskMemberList.get(i).getMemberId()); ProMember member = proMemberDao.selectByPrimaryKey(taskMemberList.get(i).getMemberId());
if (ObjectUtil.isNotNull(member)) { if (ObjectUtil.isNotNull(member)) {
name += member.getNickname(); name.append(member.getNickname());
if (i != taskMemberList.size() - 1) { if (i != taskMemberList.size() - 1) {
name += "和"; name.append("和");
} }
} }
} }
} }
name = name + ")"; name.append(")");
return name; return name.toString();
} }
@ -719,13 +722,7 @@ public class ProTaskDetailService implements IProTaskDetailService {
//关键词模糊搜索 //关键词模糊搜索
if (StrUtil.isNotEmpty(key)) { if (StrUtil.isNotEmpty(key)) {
if (CollectionUtil.isNotEmpty(normalTaskList)) { if (CollectionUtil.isNotEmpty(normalTaskList)) {
Iterator<TaskVo.NormalTask> it = normalTaskList.iterator(); normalTaskList.removeIf(normalTask -> !normalTask.getName().contains(key));
while (it.hasNext()) {
TaskVo.NormalTask normalTask = it.next();
if (!normalTask.getName().contains(key)) {
it.remove();
}
}
} }
} }
@ -1151,6 +1148,9 @@ public class ProTaskDetailService implements IProTaskDetailService {
(taskDetail.getDelay() == WebConstant.TASK_DELAY.DelayManual.value)){ (taskDetail.getDelay() == WebConstant.TASK_DELAY.DelayManual.value)){
taskDetail.setDelayTime(updateTaskInfo.getDelayTime()); taskDetail.setDelayTime(updateTaskInfo.getDelayTime());
} }
if(ObjectUtil.isNotNull(updateTaskInfo.getMilestone())){
taskDetail.setMilestone(updateTaskInfo.getMilestone());
}
//时间 //时间
if(ObjectUtil.isNotNull(updateTaskInfo.getBeginTime()) || if(ObjectUtil.isNotNull(updateTaskInfo.getBeginTime()) ||
ObjectUtil.isNotNull(updateTaskInfo.getEndTime()) || ObjectUtil.isNotNull(updateTaskInfo.getEndTime()) ||
@ -1422,4 +1422,83 @@ public class ProTaskDetailService implements IProTaskDetailService {
} }
return getTaskInfoByTaskId(userId,taskDetail.getProjectId(),updateTaskConfig.getTaskId(),null); return getTaskInfoByTaskId(userId,taskDetail.getProjectId(),updateTaskConfig.getTaskId(),null);
} }
@Override
public List<TaskVo.TaskListByProjectId> queryAllTaskByProjectId(Long currentUserId, TaskDto.QueryAllTaskByProjectId projectIdDto) throws Exception {
List<TaskVo.TaskListByProjectId> taskList = new ArrayList<>();
// TaskVo.TaskListByProjectId firstTask;
//1、查找一级任务
SysProject project = sysProjectDao.selectByPrimaryKey(projectIdDto.getProjectId());
if (ObjectUtil.isNull(project)) {
throw new BaseException(CodeEnum.NOT_PROJECT);
}
ProTaskDetailExample proTaskDetailExample = new ProTaskDetailExample();
proTaskDetailExample.createCriteria().andProjectIdEqualTo(projectIdDto.getProjectId()).andLevelEqualTo((byte) 1);
List<ProTaskDetail> firstTaskDetailList = taskDetailDao.selectByExample(proTaskDetailExample);
if (CollectionUtil.isNotEmpty(firstTaskDetailList)) {
firstTaskDetailList.forEach(firstTaskDetail -> {
TaskVo.TaskListByProjectId firstTask = taskDetailDao.getTaskById(firstTaskDetail.getId());
List<TaskVo.TaskListByProjectId> secondTaskList = taskDetailDao.getTaskByParentId(firstTaskDetail.getId());
firstTask.setSecondTasks(secondTaskList);
taskList.add(firstTask);
});
}
// int sequence = 1;
// for (ProTaskDetail firstTaskDetail : firstTaskDetailList) {
// TaskVo.TaskListByProjectId firstTask = new TaskVo.TaskListByProjectId();
// BeanUtil.copyProperties(firstTaskDetail, firstTask);
// normalTask.setDetailId(firstTaskDetail.getId());
// normalTask.setId(taskDeliverService.isTaskOrSubTime(firstTaskDetail.getId()));
// normalTask.setSequence(sequence);
// // 查询任务对应的配置
// ProPluginConfigExample configExample = new ProPluginConfigExample();
// configExample.createCriteria().andTaskIdEqualTo(firstTaskDetail.getId()).andPlaceLocationEqualTo((byte)0);
// List<ProPluginConfig> proPluginConfigs = proPluginConfigMapper.selectByExample(configExample);
// if (CollectionUtil.isNotEmpty(proPluginConfigs)) {
// ProPluginConfig config = proPluginConfigs.get(0);
// normalTask.setImportParam(config.getImportParam());
// normalTask.setRoutineLocation(config.getRoutineLocation());
// normalTask.setWebPath(config.getWebPath());
// }
// //一级任务配置
// normalTask.setProTaskConfig(getProTaskShow(normalTask.getDetailId()));
//
// //一级任务完成状态
// ProSubTimeMember firstSubTimeMember = getProcessByUserIdAndTask(currentUserId, normalTask.getId());
// if (ObjectUtil.isNotNull(firstSubTimeMember)) {
// normalTask.setRealEndTime(firstSubTimeMember.getRealFinishTime());
// normalTask.setProcess(firstSubTimeMember.getComplatedStatus());
// }
// //查找一级任务下的二级任务
// List<TaskVo.NormalTask> secondNormalTaskList = taskDetailDao.selectNormalTaskListByPM(projectIdDto.getProjectId(), firstTaskDetail.getId(), project.getBeginTime(), project.getEndTime(),projectIdDto.getRoleId());
// if (CollectionUtil.isNotEmpty(secondNormalTaskList)) {
// for (TaskVo.NormalTask task : secondNormalTaskList) {
// //处理插件
// managePlugin(currentUserId,projectIdDto.getRoleId(),task,null);
// //二级任务完成状态
// if(task.getProcess() != 2) {
// ProSubTimeMember subTimeMember = getProcessByUserIdAndTask(currentUserId, task.getId());
// if (ObjectUtil.isNotNull(subTimeMember)) {
// task.setRealEndTime(subTimeMember.getRealFinishTime());
// task.setProcess(subTimeMember.getComplatedStatus());
// }else if(task.getProcess() > 2){
// task.setRealEndTime((long) 0);
// task.setProcess(0);
// }
// }
// //二级任务配置
// task.setProTaskConfig(getProTaskShow(task.getDetailId()));
// //提醒信息
// task.setRemindInfoList(proRemindDao.queryRemindByTask(normalTask.getId()));
// }
// }
// normalTask.setSecondTasks(secondNormalTaskList);
// normalTaskList.add(normalTask);
// sequence++;
// }
// }
// return normalTaskList;
return taskList;
}
} }

67
tall/src/main/java/com/ccsens/tall/service/TaskPluginService.java

@ -19,6 +19,7 @@ import com.ccsens.util.exception.BaseException;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.eclipse.jetty.util.log.Log;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@ -38,6 +39,8 @@ public class TaskPluginService implements ITaskPluginService{
@Resource @Resource
private TaskPluginDao taskPluginDao; private TaskPluginDao taskPluginDao;
@Resource @Resource
private ProPluginConfigDao proPluginConfigDao;
@Resource
private TaskDetailDao taskDetailDao; private TaskDetailDao taskDetailDao;
@Resource @Resource
private TaskSubTimeDao taskSubTimeDao; private TaskSubTimeDao taskSubTimeDao;
@ -728,4 +731,68 @@ public class TaskPluginService implements ITaskPluginService{
}); });
} }
} }
/**
* 修改插件配置
* @param updatePluginConfig 插件配置
*/
@Override
public void updatePluginConfig(PluginDto.UpdatePluginConfig updatePluginConfig) {
//获取任务详情id
Long taskDetailId = updatePluginConfig.getTaskId();
ProTaskSubTime taskSubTime = taskSubTimeDao.selectByPrimaryKey(updatePluginConfig.getTaskId());
if(ObjectUtil.isNotNull(taskSubTime)){
taskDetailId = taskSubTime.getTaskDetailId();
}
//获取插件id
Long sysPluginId = 0L;
ProTaskPlugin taskPlugin = taskPluginDao.selectByPrimaryKey(updatePluginConfig.getTaskPluginId());
if(ObjectUtil.isNotNull(taskPlugin)){
sysPluginId = taskPlugin.getPluginId();
}
//查找原来的插件配置
ProPluginConfigExample proPluginConfigExample = new ProPluginConfigExample();
proPluginConfigExample.createCriteria().andTaskIdEqualTo(taskDetailId).andPluginIdEqualTo(sysPluginId);
List<ProPluginConfig> proPluginConfigList = proPluginConfigDao.selectByExample(proPluginConfigExample);
if(CollectionUtil.isNotEmpty(proPluginConfigList)){
ProPluginConfig pluginConfig = proPluginConfigList.get(0);
//有则修改
if(ObjectUtil.isNotNull(pluginConfig)){
if(StrUtil.isNotEmpty(updatePluginConfig.getWebPath())) {
pluginConfig.setWebPath(updatePluginConfig.getWebPath());
}
if(StrUtil.isNotEmpty(updatePluginConfig.getImportParam())) {
pluginConfig.setImportParam(updatePluginConfig.getImportParam());
}
if(ObjectUtil.isNotNull(updatePluginConfig.getPlaceLocation())) {
pluginConfig.setPlaceLocation(updatePluginConfig.getPlaceLocation());
}
if(ObjectUtil.isNotNull(updatePluginConfig.getRoutineLocation())) {
pluginConfig.setRoutineLocation(updatePluginConfig.getRoutineLocation());
}
proPluginConfigDao.updateByPrimaryKeySelective(pluginConfig);
}
} else {
//没有则添加
ProPluginConfig proPluginConfig = new ProPluginConfig();
proPluginConfig.setId(snowflake.nextId());
proPluginConfig.setTaskId(taskDetailId);
proPluginConfig.setPluginId(sysPluginId);
if(StrUtil.isNotEmpty(updatePluginConfig.getWebPath())) {
proPluginConfig.setWebPath(updatePluginConfig.getWebPath());
}
if(StrUtil.isNotEmpty(updatePluginConfig.getImportParam())) {
proPluginConfig.setImportParam(updatePluginConfig.getImportParam());
}
if(ObjectUtil.isNotNull(updatePluginConfig.getPlaceLocation())) {
proPluginConfig.setPlaceLocation(updatePluginConfig.getPlaceLocation());
}
if(ObjectUtil.isNotNull(updatePluginConfig.getRoutineLocation())) {
proPluginConfig.setRoutineLocation(updatePluginConfig.getRoutineLocation());
}
proPluginConfigDao.insertSelective(proPluginConfig);
}
}
} }

22
tall/src/main/java/com/ccsens/tall/service/TaskSubTimeService.java

@ -28,8 +28,12 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.core.AmqpTemplate; import org.springframework.amqp.core.AmqpTemplate;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.TransactionDefinition;
import org.springframework.transaction.TransactionStatus;
import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.support.DefaultTransactionDefinition;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.*; import java.util.*;
@ -75,10 +79,26 @@ public class TaskSubTimeService implements ITaskSubTimeService {
private ProRemindDao proRemindDao; private ProRemindDao proRemindDao;
@Autowired @Autowired
private AmqpTemplate rabbitTemplate; private AmqpTemplate rabbitTemplate;
//定义事务对象
@Resource
private PlatformTransactionManager transactionManager;
@Override @Override
public void saveProTaskSubTask(ProTaskSubTime proTaskSubTime) { public void saveProTaskSubTask(ProTaskSubTime proTaskSubTime) {
taskSubTimeDao.insertSelective(proTaskSubTime); //开启手动事务
DefaultTransactionDefinition def = new DefaultTransactionDefinition();
// 事务隔离级别,开启新事务
def.setPropagationBehavior( TransactionDefinition.PROPAGATION_REQUIRES_NEW );
//获取事务状态,并开启事务,相当于transation.begin();
TransactionStatus status = transactionManager.getTransaction( def );
try{
// method();//执行方法
taskSubTimeDao.insertSelective(proTaskSubTime);
transactionManager.commit( status ); //提交事务
} catch(Exception e){
transactionManager.rollback(status);
}
} }
/** /**

26
tall/src/main/java/com/ccsens/tall/service/UserInfoService.java

@ -27,6 +27,8 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.Part; import javax.servlet.http.Part;
import java.io.File; import java.io.File;
import java.security.NoSuchAlgorithmException;
import java.security.spec.InvalidKeySpecException;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
@ -76,9 +78,29 @@ public class UserInfoService implements IUserInfoService{
List<SysAuth> authList = sysAuthDao.selectByExample(authAccountExample); List<SysAuth> authList = sysAuthDao.selectByExample(authAccountExample);
if(CollectionUtil.isNotEmpty(authList)){ if(CollectionUtil.isNotEmpty(authList)){
authList.forEach(sysAuth -> { authList.forEach(sysAuth -> {
sysAuth.setIdentifier(changeAccount.getAccount()); //验证密码
sysAuthDao.updateByPrimaryKeySelective(sysAuth); try {
if (!ShiroKit.authenticate(changeAccount.getPassword(), sysAuth.getCredential(), sysAuth.getSalt())) {
throw new BaseException(CodeEnum.PASSWORD_ERROR);
}
sysAuth.setIdentifier(changeAccount.getAccount());
sysAuthDao.updateByPrimaryKeySelective(sysAuth);
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
} catch (InvalidKeySpecException e) {
e.printStackTrace();
}
}); });
}else {
//不存在则添加账号
SysAuth sysAuth = new SysAuth();
sysAuth.setId(snowflake.nextId());
sysAuth.setUserId(userId);
sysAuth.setIdentifyType((byte) WebConstant.IDENTIFY_TYPE.Account.value);
sysAuth.setIdentifier(changeAccount.getAccount());
sysAuth.setSalt(ShiroKit.getRandomSalt(6));
sysAuth.setCredential(ShiroKit.md5(changeAccount.getPassword(), sysAuth.getSalt()));
sysAuthDao.insertSelective(sysAuth);
} }
//修改完删除redis //修改完删除redis
redisUtil.del(accountKey); redisUtil.del(accountKey);

10
tall/src/main/java/com/ccsens/tall/web/PluginController.java

@ -181,4 +181,14 @@ public class PluginController {
List<PluginVo.MinutesInfo> wpsPath = taskPluginService.updateMinutesProject(currentUserId,updateMinutes,token); List<PluginVo.MinutesInfo> wpsPath = taskPluginService.updateMinutesProject(currentUserId,updateMinutes,token);
return JsonResponse.newInstance().ok(wpsPath); return JsonResponse.newInstance().ok(wpsPath);
} }
@ApiOperation(value = "修改插件配置信息", notes = "")
@ApiImplicitParams({
})
@RequestMapping(value = "/config", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse updatePluginConfig(@ApiParam @Validated @RequestBody PluginDto.UpdatePluginConfig updatePluginConfig) throws Exception {
taskPluginService.updatePluginConfig(updatePluginConfig);
return JsonResponse.newInstance().ok();
}
} }

2
tall/src/main/java/com/ccsens/tall/web/ProjectController.java

@ -146,7 +146,7 @@ public class ProjectController {
@ApiImplicitParam(name = "page", value = "页数", required = true, paramType = "query"), @ApiImplicitParam(name = "page", value = "页数", required = true, paramType = "query"),
@ApiImplicitParam(name = "priority", value = "优先级排序 0无 1倒叙(优先级高的在前) 2正序", required = true, paramType = "query") @ApiImplicitParam(name = "priority", value = "优先级排序 0无 1倒叙(优先级高的在前) 2正序", required = true, paramType = "query")
}) })
@RequestMapping(value = "/{id}/tasks", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) @RequestMapping(value = "/{id}/tasks", method = {RequestMethod.POST}, produces = {"application/json;charset=UTF-8"})
public JsonResponse<TaskVo.ProTaskInfo> getTasksByRoleId(HttpServletRequest request, public JsonResponse<TaskVo.ProTaskInfo> getTasksByRoleId(HttpServletRequest request,
@PathVariable("id") Long projectId, @PathVariable("id") Long projectId,
@RequestBody TaskDto.QueryTaskInfoByRoleId taskInfoByRoleId) throws Exception{ @RequestBody TaskDto.QueryTaskInfoByRoleId taskInfoByRoleId) throws Exception{

8
tall/src/main/java/com/ccsens/tall/web/TaskController.java

@ -255,6 +255,14 @@ public class TaskController {
return JsonResponse.newInstance().ok(taskInfo); return JsonResponse.newInstance().ok(taskInfo);
} }
@ApiOperation(value = "查找项目下的所有任务",notes = "")
@RequestMapping(value = "/query", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<List<TaskVo.TaskListByProjectId>> queryAllTaskByProjectId(HttpServletRequest request,
@Validated @RequestBody TaskDto.QueryAllTaskByProjectId projectIdDto) throws Exception {
Long currentUserId = Long.valueOf(((Claims) request.getAttribute(WebConstant.REQUEST_KEY_CLAIMS)).getSubject());
List<TaskVo.TaskListByProjectId> taskInfoList = taskDetailService.queryAllTaskByProjectId(currentUserId,projectIdDto);
return JsonResponse.newInstance().ok(taskInfoList);
}
/** /**
* 通过任务id查询项目id * 通过任务id查询项目id

4
tall/src/main/resources/application.yml

@ -1,4 +1,4 @@
spring: spring:
profiles: profiles:
active: test active: dev
include: util-test,common include: util-dev,common

6
tall/src/main/resources/mapper_dao/ProRoleDao.xml

@ -13,6 +13,7 @@
<id column="rId" property="id"/> <id column="rId" property="id"/>
<result column="rName" property="name"/> <result column="rName" property="name"/>
<result column="parentId" property="parentId"/> <result column="parentId" property="parentId"/>
<result column="projectRole" property="projectRole"/>
<collection property="members" ofType="com.ccsens.tall.bean.vo.ProjectVo$ProMemberVo"> <collection property="members" ofType="com.ccsens.tall.bean.vo.ProjectVo$ProMemberVo">
<id column="mId" property="mId"/> <id column="mId" property="mId"/>
<result column="mName" property="mName"/> <result column="mName" property="mName"/>
@ -63,14 +64,15 @@
m.nickname as mName, m.nickname as mName,
m.phone as mPhone, m.phone as mPhone,
m.user_id as mUserId, m.user_id as mUserId,
m.stakeholder_id as stakeholderId m.stakeholder_id as stakeholderId,
if((SELECT `name` FROM t_pro_role WHERE id = pr.parent_id) = 'ProjectVirtualRole',1,0) as projectRole
from from
t_pro_role pr LEFT JOIN t_pro_member_role mr ON mr.role_id = pr.id t_pro_role pr LEFT JOIN t_pro_member_role mr ON mr.role_id = pr.id
LEFT JOIN t_pro_member m ON mr.member_id = m.id LEFT JOIN t_pro_member m ON mr.member_id = m.id
where where
pr.project_id = #{projectId} pr.project_id = #{projectId}
and and
(SELECT name FROM t_pro_role r WHERE pr.parent_id = r.id) in ('PM','Member') (SELECT name FROM t_pro_role r WHERE pr.parent_id = r.id) in ('PM','Member','ProjectVirtualRole')
AND AND
pr.name not IN ('全体成员','观众','MVP') pr.name not IN ('全体成员','观众','MVP')
AND AND

14
tall/src/main/resources/mapper_dao/SysPluginDao.xml

@ -95,4 +95,18 @@
)t )t
GROUP BY t.taskId,t.roleId GROUP BY t.taskId,t.roleId
</select> </select>
<select id="getPluginConfigByTaskPluginId" parameterType="java.util.Map" resultType="com.ccsens.tall.bean.po.ProPluginConfig">
SELECT
pc.web_path as webPath,
pc.routine_location as routineLocation,
pc.import_param as importParam
FROM
t_pro_plugin_config pc LEFT JOIN t_pro_task_plugin tp on pc.plugin_id = tp.plugin_id
WHERE
tp.id = #{taskPluginId}
and pc.rec_status = 0
and tp.rec_status = 0
LIMIT 1
</select>
</mapper> </mapper>

62
tall/src/main/resources/mapper_dao/TaskDetailDao.xml

@ -21,6 +21,7 @@
<result column="tProjectId" property="projectId" /> <result column="tProjectId" property="projectId" />
<result column="tDescription" property="description" /> <result column="tDescription" property="description" />
<result column="tExecutorRole" property="executorRole" /> <result column="tExecutorRole" property="executorRole" />
<result column="tExecutorRoleName" property="executorRoleName" />
<result column="tBeginTime" property="beginTime" /> <result column="tBeginTime" property="beginTime" />
<result column="tEndTime" property="endTime" /> <result column="tEndTime" property="endTime" />
<result column="tCycle" property="cycle" /> <result column="tCycle" property="cycle" />
@ -37,6 +38,7 @@
<result column="routineLocation" property="routineLocation" /> <result column="routineLocation" property="routineLocation" />
<result column="importParam" property="importParam" /> <result column="importParam" property="importParam" />
<result column="priority" property="priority" /> <result column="priority" property="priority" />
<result column="milestone" property="milestone" />
<collection property="plugins" ofType="com.ccsens.tall.bean.vo.TaskVo$PluginVo"> <collection property="plugins" ofType="com.ccsens.tall.bean.vo.TaskVo$PluginVo">
<id column="pId" property="id"/> <id column="pId" property="id"/>
<result column="pName" property="name"/> <result column="pName" property="name"/>
@ -91,7 +93,8 @@
sp.description as spDescription, sp.description as spDescription,
sp.id as spid, sp.id as spid,
sp.show_type as spShowType, sp.show_type as spShowType,
d.priority as priority d.priority as priority,
d.milestone as milestone
FROM FROM
t_pro_task_sub_time s LEFT JOIN t_pro_task_detail d ON s.task_detail_id = d.id t_pro_task_sub_time s LEFT JOIN t_pro_task_detail d ON s.task_detail_id = d.id
LEFT JOIN t_pro_task_plugin p ON p.task_detail_id = d.id LEFT JOIN t_pro_task_plugin p ON p.task_detail_id = d.id
@ -175,7 +178,8 @@
p.id as p_id, p.id as p_id,
sp.description as spDescription, sp.description as spDescription,
sp.id as spid, sp.id as spid,
sp.show_type as spShowType sp.show_type as spShowType,
d.milestone as milestone
FROM FROM
t_pro_task_sub_time s LEFT JOIN t_pro_task_detail d ON s.task_detail_id = d.id t_pro_task_sub_time s LEFT JOIN t_pro_task_detail d ON s.task_detail_id = d.id
LEFT JOIN t_pro_task_plugin p ON p.task_detail_id = d.id LEFT JOIN t_pro_task_plugin p ON p.task_detail_id = d.id
@ -246,7 +250,8 @@
p.id as p_id, p.id as p_id,
sp.description as spDescription, sp.description as spDescription,
sp.id as spid, sp.id as spid,
sp.show_type as spShowType sp.show_type as spShowType,
d.milestone as milestone
FROM FROM
t_pro_task_sub_time s LEFT JOIN t_pro_task_detail d ON s.task_detail_id = d.id t_pro_task_sub_time s LEFT JOIN t_pro_task_detail d ON s.task_detail_id = d.id
LEFT JOIN t_pro_task_plugin p ON p.task_detail_id = d.id LEFT JOIN t_pro_task_plugin p ON p.task_detail_id = d.id
@ -301,7 +306,8 @@
p.id as p_id, p.id as p_id,
sp.description as spDescription, sp.description as spDescription,
sp.id as spid, sp.id as spid,
sp.show_type as spShowType sp.show_type as spShowType,
d.milestone as milestone
FROM FROM
t_pro_task_sub_time s LEFT JOIN t_pro_task_detail d ON s.task_detail_id = d.id t_pro_task_sub_time s LEFT JOIN t_pro_task_detail d ON s.task_detail_id = d.id
LEFT JOIN t_pro_task_plugin p ON p.task_detail_id = d.id LEFT JOIN t_pro_task_plugin p ON p.task_detail_id = d.id
@ -383,7 +389,8 @@
p.id as p_id, p.id as p_id,
sp.description as spDescription, sp.description as spDescription,
sp.id as spid, sp.id as spid,
sp.show_type as spShowType sp.show_type as spShowType,
d.milestone as milestone
FROM FROM
t_pro_task_sub_time s LEFT JOIN t_pro_task_detail d ON s.task_detail_id = d.id t_pro_task_sub_time s LEFT JOIN t_pro_task_detail d ON s.task_detail_id = d.id
LEFT JOIN t_pro_task_plugin p ON p.task_detail_id = d.id LEFT JOIN t_pro_task_plugin p ON p.task_detail_id = d.id
@ -511,5 +518,50 @@
s.end_time &gt; #{startTime} s.end_time &gt; #{startTime}
</if> </if>
</select> </select>
<select id="getTaskById" resultType="com.ccsens.tall.bean.vo.TaskVo$TaskListByProjectId">
SELECT
t.id as detailId,
t.`name`,
t.description,
t.begin_time as beginTime,
t.end_time as endTime,
t.cycle as cycle,
t.money as money,
t.project_id as projectId,
(SELECT `name` FROM t_sys_project WHERE id = t.project_id) as projectName,
t.executor_role as executorRole,
(SELECT `name` FROM t_pro_role WHERE id = t.executor_role) as executorRoleName,
d.id as deliverId,
d.`name` as deliverName
FROM
t_pro_task_detail t
LEFT JOIN t_pro_task_deliver d on t.id = d.task_detail_id
WHERE
t.id = #{detailTaskId}
and t.rec_status = 0
limit 1
</select>
<select id="getTaskByParentId" resultType="com.ccsens.tall.bean.vo.TaskVo$TaskListByProjectId">
SELECT
t.id as detailId,
t.`name`,
t.description,
t.begin_time as beginTime,
t.end_time as endTime,
t.cycle as cycle,
t.money as money,
t.project_id as projectId,
(SELECT `name` FROM t_sys_project WHERE id = t.project_id) as projectName,
t.executor_role as executorRole,
(SELECT `name` FROM t_pro_role WHERE id = t.executor_role) as executorRoleName,
d.id as deliverId,
d.`name` as deliverName
FROM
t_pro_task_detail t
LEFT JOIN t_pro_task_deliver d on t.id = d.task_detail_id
WHERE
t.parent_id = #{parentTaskId}
and t.rec_status = 0
</select>
</mapper> </mapper>

564
tall/src/main/resources/mapper_raw/ProRoleMapper.xml

@ -1,275 +1,291 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ccsens.tall.persist.mapper.ProRoleMapper"> <mapper namespace="com.ccsens.tall.persist.mapper.ProRoleMapper">
<resultMap id="BaseResultMap" type="com.ccsens.tall.bean.po.ProRole"> <resultMap id="BaseResultMap" type="com.ccsens.tall.bean.po.ProRole">
<id column="id" jdbcType="BIGINT" property="id" /> <id column="id" jdbcType="BIGINT" property="id" />
<result column="project_id" jdbcType="BIGINT" property="projectId" /> <result column="project_id" jdbcType="BIGINT" property="projectId" />
<result column="parent_id" jdbcType="BIGINT" property="parentId" /> <result column="parent_id" jdbcType="BIGINT" property="parentId" />
<result column="name" jdbcType="VARCHAR" property="name" /> <result column="name" jdbcType="VARCHAR" property="name" />
<result column="description" jdbcType="VARCHAR" property="description" /> <result column="description" jdbcType="VARCHAR" property="description" />
<result column="sequence" jdbcType="INTEGER" property="sequence" /> <result column="sequence" jdbcType="INTEGER" property="sequence" />
<result column="created_at" jdbcType="TIMESTAMP" property="createdAt" /> <result column="created_at" jdbcType="TIMESTAMP" property="createdAt" />
<result column="updated_at" jdbcType="TIMESTAMP" property="updatedAt" /> <result column="updated_at" jdbcType="TIMESTAMP" property="updatedAt" />
<result column="rec_status" jdbcType="TINYINT" property="recStatus" /> <result column="rec_status" jdbcType="TINYINT" property="recStatus" />
</resultMap> <result column="relevance_project_id" jdbcType="BIGINT" property="relevanceProjectId" />
<sql id="Example_Where_Clause"> </resultMap>
<where> <sql id="Example_Where_Clause">
<foreach collection="oredCriteria" item="criteria" separator="or"> <where>
<if test="criteria.valid"> <foreach collection="oredCriteria" item="criteria" separator="or">
<trim prefix="(" prefixOverrides="and" suffix=")"> <if test="criteria.valid">
<foreach collection="criteria.criteria" item="criterion"> <trim prefix="(" prefixOverrides="and" suffix=")">
<choose> <foreach collection="criteria.criteria" item="criterion">
<when test="criterion.noValue"> <choose>
and ${criterion.condition} <when test="criterion.noValue">
</when> and ${criterion.condition}
<when test="criterion.singleValue"> </when>
and ${criterion.condition} #{criterion.value} <when test="criterion.singleValue">
</when> and ${criterion.condition} #{criterion.value}
<when test="criterion.betweenValue"> </when>
and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} <when test="criterion.betweenValue">
</when> and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
<when test="criterion.listValue"> </when>
and ${criterion.condition} <when test="criterion.listValue">
<foreach close=")" collection="criterion.value" item="listItem" open="(" separator=","> and ${criterion.condition}
#{listItem} <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
</foreach> #{listItem}
</when> </foreach>
</choose> </when>
</foreach> </choose>
</trim> </foreach>
</if> </trim>
</foreach> </if>
</where> </foreach>
</sql> </where>
<sql id="Update_By_Example_Where_Clause"> </sql>
<where> <sql id="Update_By_Example_Where_Clause">
<foreach collection="example.oredCriteria" item="criteria" separator="or"> <where>
<if test="criteria.valid"> <foreach collection="example.oredCriteria" item="criteria" separator="or">
<trim prefix="(" prefixOverrides="and" suffix=")"> <if test="criteria.valid">
<foreach collection="criteria.criteria" item="criterion"> <trim prefix="(" prefixOverrides="and" suffix=")">
<choose> <foreach collection="criteria.criteria" item="criterion">
<when test="criterion.noValue"> <choose>
and ${criterion.condition} <when test="criterion.noValue">
</when> and ${criterion.condition}
<when test="criterion.singleValue"> </when>
and ${criterion.condition} #{criterion.value} <when test="criterion.singleValue">
</when> and ${criterion.condition} #{criterion.value}
<when test="criterion.betweenValue"> </when>
and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} <when test="criterion.betweenValue">
</when> and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
<when test="criterion.listValue"> </when>
and ${criterion.condition} <when test="criterion.listValue">
<foreach close=")" collection="criterion.value" item="listItem" open="(" separator=","> and ${criterion.condition}
#{listItem} <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
</foreach> #{listItem}
</when> </foreach>
</choose> </when>
</foreach> </choose>
</trim> </foreach>
</if> </trim>
</foreach> </if>
</where> </foreach>
</sql> </where>
<sql id="Base_Column_List"> </sql>
id, project_id, parent_id, name, description, sequence, created_at, updated_at, rec_status <sql id="Base_Column_List">
</sql> id, project_id, parent_id, name, description, sequence, created_at, updated_at, rec_status,
<select id="selectByExample" parameterType="com.ccsens.tall.bean.po.ProRoleExample" resultMap="BaseResultMap"> relevance_project_id
select </sql>
<if test="distinct"> <select id="selectByExample" parameterType="com.ccsens.tall.bean.po.ProRoleExample" resultMap="BaseResultMap">
distinct select
</if> <if test="distinct">
<include refid="Base_Column_List" /> distinct
from t_pro_role </if>
<if test="_parameter != null"> <include refid="Base_Column_List" />
<include refid="Example_Where_Clause" /> from t_pro_role
</if> <if test="_parameter != null">
<if test="orderByClause != null"> <include refid="Example_Where_Clause" />
order by ${orderByClause} </if>
</if> <if test="orderByClause != null">
</select> order by ${orderByClause}
<select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap"> </if>
select </select>
<include refid="Base_Column_List" /> <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
from t_pro_role select
where id = #{id,jdbcType=BIGINT} <include refid="Base_Column_List" />
</select> from t_pro_role
<delete id="deleteByPrimaryKey" parameterType="java.lang.Long"> where id = #{id,jdbcType=BIGINT}
delete from t_pro_role </select>
where id = #{id,jdbcType=BIGINT} <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
</delete> delete from t_pro_role
<delete id="deleteByExample" parameterType="com.ccsens.tall.bean.po.ProRoleExample"> where id = #{id,jdbcType=BIGINT}
delete from t_pro_role </delete>
<if test="_parameter != null"> <delete id="deleteByExample" parameterType="com.ccsens.tall.bean.po.ProRoleExample">
<include refid="Example_Where_Clause" /> delete from t_pro_role
</if> <if test="_parameter != null">
</delete> <include refid="Example_Where_Clause" />
<insert id="insert" parameterType="com.ccsens.tall.bean.po.ProRole"> </if>
insert into t_pro_role (id, project_id, parent_id, </delete>
name, description, sequence, <insert id="insert" parameterType="com.ccsens.tall.bean.po.ProRole">
created_at, updated_at, rec_status insert into t_pro_role (id, project_id, parent_id,
) name, description, sequence,
values (#{id,jdbcType=BIGINT}, #{projectId,jdbcType=BIGINT}, #{parentId,jdbcType=BIGINT}, created_at, updated_at, rec_status,
#{name,jdbcType=VARCHAR}, #{description,jdbcType=VARCHAR}, #{sequence,jdbcType=INTEGER}, relevance_project_id)
#{createdAt,jdbcType=TIMESTAMP}, #{updatedAt,jdbcType=TIMESTAMP}, #{recStatus,jdbcType=TINYINT} values (#{id,jdbcType=BIGINT}, #{projectId,jdbcType=BIGINT}, #{parentId,jdbcType=BIGINT},
) #{name,jdbcType=VARCHAR}, #{description,jdbcType=VARCHAR}, #{sequence,jdbcType=INTEGER},
</insert> #{createdAt,jdbcType=TIMESTAMP}, #{updatedAt,jdbcType=TIMESTAMP}, #{recStatus,jdbcType=TINYINT},
<insert id="insertSelective" parameterType="com.ccsens.tall.bean.po.ProRole"> #{relevanceProjectId,jdbcType=BIGINT})
insert into t_pro_role </insert>
<trim prefix="(" suffix=")" suffixOverrides=","> <insert id="insertSelective" parameterType="com.ccsens.tall.bean.po.ProRole">
<if test="id != null"> insert into t_pro_role
id, <trim prefix="(" suffix=")" suffixOverrides=",">
</if> <if test="id != null">
<if test="projectId != null"> id,
project_id, </if>
</if> <if test="projectId != null">
<if test="parentId != null"> project_id,
parent_id, </if>
</if> <if test="parentId != null">
<if test="name != null"> parent_id,
name, </if>
</if> <if test="name != null">
<if test="description != null"> name,
description, </if>
</if> <if test="description != null">
<if test="sequence != null"> description,
sequence, </if>
</if> <if test="sequence != null">
<if test="createdAt != null"> sequence,
created_at, </if>
</if> <if test="createdAt != null">
<if test="updatedAt != null"> created_at,
updated_at, </if>
</if> <if test="updatedAt != null">
<if test="recStatus != null"> updated_at,
rec_status, </if>
</if> <if test="recStatus != null">
</trim> rec_status,
<trim prefix="values (" suffix=")" suffixOverrides=","> </if>
<if test="id != null"> <if test="relevanceProjectId != null">
#{id,jdbcType=BIGINT}, relevance_project_id,
</if> </if>
<if test="projectId != null"> </trim>
#{projectId,jdbcType=BIGINT}, <trim prefix="values (" suffix=")" suffixOverrides=",">
</if> <if test="id != null">
<if test="parentId != null"> #{id,jdbcType=BIGINT},
#{parentId,jdbcType=BIGINT}, </if>
</if> <if test="projectId != null">
<if test="name != null"> #{projectId,jdbcType=BIGINT},
#{name,jdbcType=VARCHAR}, </if>
</if> <if test="parentId != null">
<if test="description != null"> #{parentId,jdbcType=BIGINT},
#{description,jdbcType=VARCHAR}, </if>
</if> <if test="name != null">
<if test="sequence != null"> #{name,jdbcType=VARCHAR},
#{sequence,jdbcType=INTEGER}, </if>
</if> <if test="description != null">
<if test="createdAt != null"> #{description,jdbcType=VARCHAR},
#{createdAt,jdbcType=TIMESTAMP}, </if>
</if> <if test="sequence != null">
<if test="updatedAt != null"> #{sequence,jdbcType=INTEGER},
#{updatedAt,jdbcType=TIMESTAMP}, </if>
</if> <if test="createdAt != null">
<if test="recStatus != null"> #{createdAt,jdbcType=TIMESTAMP},
#{recStatus,jdbcType=TINYINT}, </if>
</if> <if test="updatedAt != null">
</trim> #{updatedAt,jdbcType=TIMESTAMP},
</insert> </if>
<select id="countByExample" parameterType="com.ccsens.tall.bean.po.ProRoleExample" resultType="java.lang.Long"> <if test="recStatus != null">
select count(*) from t_pro_role #{recStatus,jdbcType=TINYINT},
<if test="_parameter != null"> </if>
<include refid="Example_Where_Clause" /> <if test="relevanceProjectId != null">
</if> #{relevanceProjectId,jdbcType=BIGINT},
</select> </if>
<update id="updateByExampleSelective" parameterType="map"> </trim>
update t_pro_role </insert>
<set> <select id="countByExample" parameterType="com.ccsens.tall.bean.po.ProRoleExample" resultType="java.lang.Long">
<if test="record.id != null"> select count(*) from t_pro_role
id = #{record.id,jdbcType=BIGINT}, <if test="_parameter != null">
</if> <include refid="Example_Where_Clause" />
<if test="record.projectId != null"> </if>
project_id = #{record.projectId,jdbcType=BIGINT}, </select>
</if> <update id="updateByExampleSelective" parameterType="map">
<if test="record.parentId != null"> update t_pro_role
parent_id = #{record.parentId,jdbcType=BIGINT}, <set>
</if> <if test="record.id != null">
<if test="record.name != null"> id = #{record.id,jdbcType=BIGINT},
name = #{record.name,jdbcType=VARCHAR}, </if>
</if> <if test="record.projectId != null">
<if test="record.description != null"> project_id = #{record.projectId,jdbcType=BIGINT},
description = #{record.description,jdbcType=VARCHAR}, </if>
</if> <if test="record.parentId != null">
<if test="record.sequence != null"> parent_id = #{record.parentId,jdbcType=BIGINT},
sequence = #{record.sequence,jdbcType=INTEGER}, </if>
</if> <if test="record.name != null">
<if test="record.createdAt != null"> name = #{record.name,jdbcType=VARCHAR},
created_at = #{record.createdAt,jdbcType=TIMESTAMP}, </if>
</if> <if test="record.description != null">
<if test="record.updatedAt != null"> description = #{record.description,jdbcType=VARCHAR},
updated_at = #{record.updatedAt,jdbcType=TIMESTAMP}, </if>
</if> <if test="record.sequence != null">
<if test="record.recStatus != null"> sequence = #{record.sequence,jdbcType=INTEGER},
rec_status = #{record.recStatus,jdbcType=TINYINT}, </if>
</if> <if test="record.createdAt != null">
</set> created_at = #{record.createdAt,jdbcType=TIMESTAMP},
<if test="_parameter != null"> </if>
<include refid="Update_By_Example_Where_Clause" /> <if test="record.updatedAt != null">
</if> updated_at = #{record.updatedAt,jdbcType=TIMESTAMP},
</update> </if>
<update id="updateByExample" parameterType="map"> <if test="record.recStatus != null">
update t_pro_role rec_status = #{record.recStatus,jdbcType=TINYINT},
set id = #{record.id,jdbcType=BIGINT}, </if>
project_id = #{record.projectId,jdbcType=BIGINT}, <if test="record.relevanceProjectId != null">
parent_id = #{record.parentId,jdbcType=BIGINT}, relevance_project_id = #{record.relevanceProjectId,jdbcType=BIGINT},
name = #{record.name,jdbcType=VARCHAR}, </if>
description = #{record.description,jdbcType=VARCHAR}, </set>
sequence = #{record.sequence,jdbcType=INTEGER}, <if test="_parameter != null">
created_at = #{record.createdAt,jdbcType=TIMESTAMP}, <include refid="Update_By_Example_Where_Clause" />
updated_at = #{record.updatedAt,jdbcType=TIMESTAMP}, </if>
rec_status = #{record.recStatus,jdbcType=TINYINT} </update>
<if test="_parameter != null"> <update id="updateByExample" parameterType="map">
<include refid="Update_By_Example_Where_Clause" /> update t_pro_role
</if> set id = #{record.id,jdbcType=BIGINT},
</update> project_id = #{record.projectId,jdbcType=BIGINT},
<update id="updateByPrimaryKeySelective" parameterType="com.ccsens.tall.bean.po.ProRole"> parent_id = #{record.parentId,jdbcType=BIGINT},
update t_pro_role name = #{record.name,jdbcType=VARCHAR},
<set> description = #{record.description,jdbcType=VARCHAR},
<if test="projectId != null"> sequence = #{record.sequence,jdbcType=INTEGER},
project_id = #{projectId,jdbcType=BIGINT}, created_at = #{record.createdAt,jdbcType=TIMESTAMP},
</if> updated_at = #{record.updatedAt,jdbcType=TIMESTAMP},
<if test="parentId != null"> rec_status = #{record.recStatus,jdbcType=TINYINT},
parent_id = #{parentId,jdbcType=BIGINT}, relevance_project_id = #{record.relevanceProjectId,jdbcType=BIGINT}
</if> <if test="_parameter != null">
<if test="name != null"> <include refid="Update_By_Example_Where_Clause" />
name = #{name,jdbcType=VARCHAR}, </if>
</if> </update>
<if test="description != null"> <update id="updateByPrimaryKeySelective" parameterType="com.ccsens.tall.bean.po.ProRole">
description = #{description,jdbcType=VARCHAR}, update t_pro_role
</if> <set>
<if test="sequence != null"> <if test="projectId != null">
sequence = #{sequence,jdbcType=INTEGER}, project_id = #{projectId,jdbcType=BIGINT},
</if> </if>
<if test="createdAt != null"> <if test="parentId != null">
created_at = #{createdAt,jdbcType=TIMESTAMP}, parent_id = #{parentId,jdbcType=BIGINT},
</if> </if>
<if test="updatedAt != null"> <if test="name != null">
updated_at = #{updatedAt,jdbcType=TIMESTAMP}, name = #{name,jdbcType=VARCHAR},
</if> </if>
<if test="recStatus != null"> <if test="description != null">
rec_status = #{recStatus,jdbcType=TINYINT}, description = #{description,jdbcType=VARCHAR},
</if> </if>
</set> <if test="sequence != null">
where id = #{id,jdbcType=BIGINT} sequence = #{sequence,jdbcType=INTEGER},
</update> </if>
<update id="updateByPrimaryKey" parameterType="com.ccsens.tall.bean.po.ProRole"> <if test="createdAt != null">
update t_pro_role created_at = #{createdAt,jdbcType=TIMESTAMP},
set project_id = #{projectId,jdbcType=BIGINT}, </if>
parent_id = #{parentId,jdbcType=BIGINT}, <if test="updatedAt != null">
name = #{name,jdbcType=VARCHAR}, updated_at = #{updatedAt,jdbcType=TIMESTAMP},
description = #{description,jdbcType=VARCHAR}, </if>
sequence = #{sequence,jdbcType=INTEGER}, <if test="recStatus != null">
created_at = #{createdAt,jdbcType=TIMESTAMP}, rec_status = #{recStatus,jdbcType=TINYINT},
updated_at = #{updatedAt,jdbcType=TIMESTAMP}, </if>
rec_status = #{recStatus,jdbcType=TINYINT} <if test="relevanceProjectId != null">
where id = #{id,jdbcType=BIGINT} relevance_project_id = #{relevanceProjectId,jdbcType=BIGINT},
</update> </if>
</set>
where id = #{id,jdbcType=BIGINT}
</update>
<update id="updateByPrimaryKey" parameterType="com.ccsens.tall.bean.po.ProRole">
update t_pro_role
set project_id = #{projectId,jdbcType=BIGINT},
parent_id = #{parentId,jdbcType=BIGINT},
name = #{name,jdbcType=VARCHAR},
description = #{description,jdbcType=VARCHAR},
sequence = #{sequence,jdbcType=INTEGER},
created_at = #{createdAt,jdbcType=TIMESTAMP},
updated_at = #{updatedAt,jdbcType=TIMESTAMP},
rec_status = #{recStatus,jdbcType=TINYINT},
relevance_project_id = #{relevanceProjectId,jdbcType=BIGINT}
where id = #{id,jdbcType=BIGINT}
</update>
</mapper> </mapper>

29
tall/src/main/resources/mapper_raw/ProTaskDetailMapper.xml

@ -29,6 +29,7 @@
<result column="updated_at" jdbcType="TIMESTAMP" property="updatedAt" /> <result column="updated_at" jdbcType="TIMESTAMP" property="updatedAt" />
<result column="rec_status" jdbcType="TINYINT" property="recStatus" /> <result column="rec_status" jdbcType="TINYINT" property="recStatus" />
<result column="priority" jdbcType="TINYINT" property="priority" /> <result column="priority" jdbcType="TINYINT" property="priority" />
<result column="milestone" jdbcType="TINYINT" property="milestone" />
</resultMap> </resultMap>
<sql id="Example_Where_Clause"> <sql id="Example_Where_Clause">
<where> <where>
@ -92,7 +93,7 @@
id, project_id, name, description, begin_time, end_time, cycle, parent_id, sub_task, id, project_id, name, description, begin_time, end_time, cycle, parent_id, sub_task,
sub_project_id, sub_project, executor_role, checker_role, money, delay, delay_time, sub_project_id, sub_project, executor_role, checker_role, money, delay, delay_time,
loop_to, loop_times, virtual, level, has_group, finish_need_all, all_member, created_at, loop_to, loop_times, virtual, level, has_group, finish_need_all, all_member, created_at,
updated_at, rec_status, priority updated_at, rec_status, priority, milestone
</sql> </sql>
<select id="selectByExample" parameterType="com.ccsens.tall.bean.po.ProTaskDetailExample" resultMap="BaseResultMap"> <select id="selectByExample" parameterType="com.ccsens.tall.bean.po.ProTaskDetailExample" resultMap="BaseResultMap">
select select
@ -133,8 +134,8 @@
delay_time, loop_to, loop_times, delay_time, loop_to, loop_times,
virtual, level, has_group, virtual, level, has_group,
finish_need_all, all_member, created_at, finish_need_all, all_member, created_at,
updated_at, rec_status, priority updated_at, rec_status, priority,
) milestone)
values (#{id,jdbcType=BIGINT}, #{projectId,jdbcType=BIGINT}, #{name,jdbcType=VARCHAR}, values (#{id,jdbcType=BIGINT}, #{projectId,jdbcType=BIGINT}, #{name,jdbcType=VARCHAR},
#{description,jdbcType=VARCHAR}, #{beginTime,jdbcType=BIGINT}, #{endTime,jdbcType=BIGINT}, #{description,jdbcType=VARCHAR}, #{beginTime,jdbcType=BIGINT}, #{endTime,jdbcType=BIGINT},
#{cycle,jdbcType=VARCHAR}, #{parentId,jdbcType=BIGINT}, #{subTask,jdbcType=VARCHAR}, #{cycle,jdbcType=VARCHAR}, #{parentId,jdbcType=BIGINT}, #{subTask,jdbcType=VARCHAR},
@ -143,8 +144,8 @@
#{delayTime,jdbcType=BIGINT}, #{loopTo,jdbcType=BIGINT}, #{loopTimes,jdbcType=INTEGER}, #{delayTime,jdbcType=BIGINT}, #{loopTo,jdbcType=BIGINT}, #{loopTimes,jdbcType=INTEGER},
#{virtual,jdbcType=TINYINT}, #{level,jdbcType=TINYINT}, #{hasGroup,jdbcType=TINYINT}, #{virtual,jdbcType=TINYINT}, #{level,jdbcType=TINYINT}, #{hasGroup,jdbcType=TINYINT},
#{finishNeedAll,jdbcType=TINYINT}, #{allMember,jdbcType=TINYINT}, #{createdAt,jdbcType=TIMESTAMP}, #{finishNeedAll,jdbcType=TINYINT}, #{allMember,jdbcType=TINYINT}, #{createdAt,jdbcType=TIMESTAMP},
#{updatedAt,jdbcType=TIMESTAMP}, #{recStatus,jdbcType=TINYINT}, #{priority,jdbcType=TINYINT} #{updatedAt,jdbcType=TIMESTAMP}, #{recStatus,jdbcType=TINYINT}, #{priority,jdbcType=TINYINT},
) #{milestone,jdbcType=TINYINT})
</insert> </insert>
<insert id="insertSelective" parameterType="com.ccsens.tall.bean.po.ProTaskDetail"> <insert id="insertSelective" parameterType="com.ccsens.tall.bean.po.ProTaskDetail">
insert into t_pro_task_detail insert into t_pro_task_detail
@ -230,6 +231,9 @@
<if test="priority != null"> <if test="priority != null">
priority, priority,
</if> </if>
<if test="milestone != null">
milestone,
</if>
</trim> </trim>
<trim prefix="values (" suffix=")" suffixOverrides=","> <trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null"> <if test="id != null">
@ -313,6 +317,9 @@
<if test="priority != null"> <if test="priority != null">
#{priority,jdbcType=TINYINT}, #{priority,jdbcType=TINYINT},
</if> </if>
<if test="milestone != null">
#{milestone,jdbcType=TINYINT},
</if>
</trim> </trim>
</insert> </insert>
<select id="countByExample" parameterType="com.ccsens.tall.bean.po.ProTaskDetailExample" resultType="java.lang.Long"> <select id="countByExample" parameterType="com.ccsens.tall.bean.po.ProTaskDetailExample" resultType="java.lang.Long">
@ -405,6 +412,9 @@
<if test="record.priority != null"> <if test="record.priority != null">
priority = #{record.priority,jdbcType=TINYINT}, priority = #{record.priority,jdbcType=TINYINT},
</if> </if>
<if test="record.milestone != null">
milestone = #{record.milestone,jdbcType=TINYINT},
</if>
</set> </set>
<if test="_parameter != null"> <if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" /> <include refid="Update_By_Example_Where_Clause" />
@ -438,7 +448,8 @@
created_at = #{record.createdAt,jdbcType=TIMESTAMP}, created_at = #{record.createdAt,jdbcType=TIMESTAMP},
updated_at = #{record.updatedAt,jdbcType=TIMESTAMP}, updated_at = #{record.updatedAt,jdbcType=TIMESTAMP},
rec_status = #{record.recStatus,jdbcType=TINYINT}, rec_status = #{record.recStatus,jdbcType=TINYINT},
priority = #{record.priority,jdbcType=TINYINT} priority = #{record.priority,jdbcType=TINYINT},
milestone = #{record.milestone,jdbcType=TINYINT}
<if test="_parameter != null"> <if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" /> <include refid="Update_By_Example_Where_Clause" />
</if> </if>
@ -524,6 +535,9 @@
<if test="priority != null"> <if test="priority != null">
priority = #{priority,jdbcType=TINYINT}, priority = #{priority,jdbcType=TINYINT},
</if> </if>
<if test="milestone != null">
milestone = #{milestone,jdbcType=TINYINT},
</if>
</set> </set>
where id = #{id,jdbcType=BIGINT} where id = #{id,jdbcType=BIGINT}
</update> </update>
@ -554,7 +568,8 @@
created_at = #{createdAt,jdbcType=TIMESTAMP}, created_at = #{createdAt,jdbcType=TIMESTAMP},
updated_at = #{updatedAt,jdbcType=TIMESTAMP}, updated_at = #{updatedAt,jdbcType=TIMESTAMP},
rec_status = #{recStatus,jdbcType=TINYINT}, rec_status = #{recStatus,jdbcType=TINYINT},
priority = #{priority,jdbcType=TINYINT} priority = #{priority,jdbcType=TINYINT},
milestone = #{milestone,jdbcType=TINYINT}
where id = #{id,jdbcType=BIGINT} where id = #{id,jdbcType=BIGINT}
</update> </update>
</mapper> </mapper>

11
util/src/main/java/com/ccsens/util/PoiUtil.java

@ -175,7 +175,8 @@ public class PoiUtil {
if(StrUtil.isNotEmpty(cell.getFunction())) { if(StrUtil.isNotEmpty(cell.getFunction())) {
newCell.setCellFormula(cell.getFunction()); newCell.setCellFormula(cell.getFunction());
} }
style.setFillForegroundColor(IndexedColors.RED.getIndex()); //设置自动换行
style.setWrapText(true);
newCell.setCellStyle(style); newCell.setCellStyle(style);
} }
} }
@ -450,13 +451,7 @@ public class PoiUtil {
} }
/** /**
* 插入图片 * 插入图片
*/
private static void insertImage(){
}
/**
*
* @param row1起始行 * @param row1起始行
* @param row2终止行 * @param row2终止行
* @param col1起始列 * @param col1起始列

3
util/src/main/java/com/ccsens/util/WebConstant.java

@ -241,7 +241,8 @@ public class WebConstant {
God("God","上帝"),ManageRepresent("ManageRepresent","管代"),Stakeholder("Stakeholder","干系人"), God("God","上帝"),ManageRepresent("ManageRepresent","管代"),Stakeholder("Stakeholder","干系人"),
PM("PM","项目经理"),Member("Member","项目成员"),MVP("MVP","MVP") PM("PM","项目经理"),Member("Member","项目成员"),MVP("MVP","MVP")
,Attention("Attention","关注者"),Creator("Creator","创建者") ,Attention("Attention","关注者"),Creator("Creator","创建者")
,MoneyStakeholder("MoneyStakeholder","奖惩干系人"),AllMember("AllMember","全体成员"); ,MoneyStakeholder("MoneyStakeholder","奖惩干系人"),AllMember("AllMember","全体成员")
,ProjectVirtualRole("ProjectVirtualRole","角色项目");
public String value; public String value;
public String phase; public String phase;

8
util/src/main/java/com/ccsens/util/cron/CronConstant.java

@ -54,11 +54,13 @@ public class CronConstant {
// TaskCron week = getCronDay("每周7"); // TaskCron week = getCronDay("每周7");
// System.out.println("周1:" + week); // System.out.println("周1:" + week);
// System.out.println("周一:" + getDate(week,start, end)); // System.out.println("周一:" + getDate(week,start, end));
// ////
TaskCron workday = getCronDay("每周一-周五 18点"); // TaskCron workday = getCronDay("每周一-周五 18点");
// System.out.println("工作日:" + workday);
// System.out.println("工作日:" + getDate(workday,start, end));
TaskCron workday = getCronDay("每周一-周五 15点30分-15点45分");
System.out.println("工作日:" + workday); System.out.println("工作日:" + workday);
System.out.println("工作日:" + getDate(workday,start, end)); System.out.println("工作日:" + getDate(workday,start, end));
// System.out.println(generateDates("每天9点,10点", start, end)); // System.out.println(generateDates("每天9点,10点", start, end));
} }

24
util/src/test/java/com/ccsens/util/Base64Test.java

@ -1,6 +1,8 @@
package com.ccsens.util; package com.ccsens.util;
import cn.hutool.core.codec.Base64; import cn.hutool.core.codec.Base64;
import cn.hutool.core.util.ObjectUtil;
import com.ccsens.util.exception.BaseException;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.junit.Test; import org.junit.Test;
@ -33,7 +35,27 @@ public class Base64Test {
@Test @Test
public void test02() throws Exception { public void test02() throws Exception {
// String a = "abcdefg";
// byte[] bytes = a.getBytes();
// byte[] bytes1 = new byte[bytes.length];
// byte[] bytes2 = new byte[bytes.length];
// for (int i = 0; i < bytes.length; i++) {
// bytes1[i] = (byte) (bytes[i]^ 0xff);
// }
// for (int i = 0; i < bytes1.length; i++) {
// bytes2[i] = (byte) (bytes1[i]^ 0xff);
// System.out.print(bytes2[i]+" ");
// }
// String c = new String(bytes1);
// String b = new String(bytes2);
// System.out.println(b);
// System.out.println(c);
try {
String a = "ax15";
System.out.println(Long.parseLong(a));
}catch (NumberFormatException e){
throw new BaseException("ssss");
}
} }

6
util/src/test/java/com/ccsens/util/TestQrCord.java

@ -28,9 +28,9 @@ public class TestQrCord {
// String fileName = "zzz/" + DateUtil.today() + "/" + i+"组" + ".png"; // String fileName = "zzz/" + DateUtil.today() + "/" + i+"组" + ".png";
// String text = "https://www.tall.wiki/pt-dev/respond?groupId="+i+"&groupName="+i+"组"; // String text = "https://www.tall.wiki/pt-dev/respond?groupId="+i+"&groupName="+i+"组";
String text = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx7af1bf1e14facf82&redirect_uri=http://www.tall.wiki/pt-dev/vote&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect"; // String text = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx7af1bf1e14facf82&redirect_uri=http://www.tall.wiki/pt-dev/vote&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect";
// String text = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx7af1bf1e14facf82&redirect_uri=http://test.tall.wiki/compete&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect"; String text = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx7af1bf1e14facf82&redirect_uri=https://www.tall.wiki/compete-province&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect";
String fileName = "zzz/" + "远程比赛(生产).png"; String fileName = "zzz/" + "远程比赛-省赛(生产).png";
QRCodeWriter qrCodeWriter = new QRCodeWriter(); QRCodeWriter qrCodeWriter = new QRCodeWriter();

Loading…
Cancel
Save