35 changed files with 80 additions and 1838 deletions
@ -1,92 +0,0 @@ |
|||
package com.ccsens.ptccsens.api.project; |
|||
|
|||
import com.ccsens.cloudutil.annotation.MustLogin; |
|||
import com.ccsens.common.bean.dto.CMemberDto; |
|||
import com.ccsens.common.bean.vo.CMemberVo; |
|||
import com.ccsens.common.service.MemberService; |
|||
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; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @author 逗 |
|||
*/ |
|||
@Api(tags = "角色相关" , description = "DebugController | ") |
|||
@RestController |
|||
@RequestMapping("/member") |
|||
@Slf4j |
|||
public class MemberController { |
|||
@Resource |
|||
private MemberService memberService; |
|||
|
|||
@MustLogin |
|||
@ApiOperation(value = "查找项目下的成员", notes = "") |
|||
@RequestMapping(value = "/query", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) |
|||
public JsonResponse<List<CMemberVo.MemberInfo>> queryByProjectId(@ApiParam @Validated @RequestBody QueryDto<CMemberDto.QueryMemberByProject> params) { |
|||
log.info("查找项目下的成员:{}",params); |
|||
List<CMemberVo.MemberInfo> memberInfoList = memberService.queryByProject(params.getParam(), params.getUserId()); |
|||
log.info("项目下的成员列表:{}",memberInfoList); |
|||
return JsonResponse.newInstance().ok(memberInfoList); |
|||
} |
|||
|
|||
@MustLogin |
|||
@ApiOperation(value = "根据id查找成员", notes = "") |
|||
@RequestMapping(value = "/getById", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) |
|||
public JsonResponse<List<CMemberVo.MemberInfo>> getMemberById(@ApiParam @Validated @RequestBody QueryDto<CMemberDto.GetMember> params) { |
|||
log.info("根据id查找成员:{}",params); |
|||
CMemberVo.MemberInfo memberInfo = memberService.getMemberById(params.getParam(), params.getUserId()); |
|||
log.info("根据id查找成员信息:{}",memberInfo); |
|||
return JsonResponse.newInstance().ok(memberInfo); |
|||
} |
|||
|
|||
@MustLogin |
|||
@ApiOperation(value = "添加成员", notes = "") |
|||
@RequestMapping(value = "/save", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) |
|||
public JsonResponse saveMember(@ApiParam @Validated @RequestBody QueryDto<CMemberDto.SaveMemberInfo> params) { |
|||
log.info("添加成员:{}",params); |
|||
memberService.saveMember(params.getParam(), params.getUserId()); |
|||
log.info("添加成员成功"); |
|||
return JsonResponse.newInstance().ok(); |
|||
} |
|||
|
|||
@MustLogin |
|||
@ApiOperation(value = "修改成员信息", notes = "") |
|||
@RequestMapping(value = "/update", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) |
|||
public JsonResponse updateMember(@ApiParam @Validated @RequestBody QueryDto<CMemberDto.UpdateMemberInfo> params) { |
|||
log.info("修改成员信息:{}",params); |
|||
memberService.updateMember(params.getParam(), params.getUserId()); |
|||
log.info("修改成员信息成功"); |
|||
return JsonResponse.newInstance().ok(); |
|||
} |
|||
|
|||
@MustLogin |
|||
@ApiOperation(value = "删除成员信息", notes = "") |
|||
@RequestMapping(value = "/delete", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) |
|||
public JsonResponse delMember(@ApiParam @Validated @RequestBody QueryDto<CMemberDto.GetMember> params) { |
|||
log.info("删除成员信息:{}",params); |
|||
memberService.deleteMember(params.getParam(), params.getUserId()); |
|||
log.info("删除成员信息成功"); |
|||
return JsonResponse.newInstance().ok(); |
|||
} |
|||
|
|||
@MustLogin |
|||
@ApiOperation(value = "修改成员所属的角色", notes = "") |
|||
@RequestMapping(value = "/memberRoles", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) |
|||
public JsonResponse updateMemberRoles(@ApiParam @Validated @RequestBody QueryDto<CMemberDto.UpdateMemberRoles> params) { |
|||
log.info("修改成员所属的角色:{}",params); |
|||
memberService.updateMemberRoles(params.getParam(), params.getUserId()); |
|||
log.info("修改成员所属的角色成功"); |
|||
return JsonResponse.newInstance().ok(); |
|||
} |
|||
} |
@ -1,39 +0,0 @@ |
|||
package com.ccsens.ptccsens.api.project; |
|||
|
|||
import com.ccsens.cloudutil.annotation.MustLogin; |
|||
import com.ccsens.common.bean.dto.CPluginDto; |
|||
import com.ccsens.common.service.IPluginService; |
|||
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; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @author 逗 |
|||
*/ |
|||
@Api(tags = "插件相关" , description = "DebugController | ") |
|||
@RestController |
|||
@RequestMapping("/plugin") |
|||
@Slf4j |
|||
public class PluginController { |
|||
@Resource |
|||
private IPluginService pluginService; |
|||
|
|||
@MustLogin |
|||
@ApiOperation(value = "给任务添加插件", notes = "") |
|||
@RequestMapping(value = "/save", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) |
|||
public JsonResponse queryPatientList(@ApiParam @Validated @RequestBody QueryDto<List<CPluginDto.UpdateTaskPlugin>> params) throws Exception{ |
|||
pluginService.updateTaskPlugin(params.getParam()); |
|||
return JsonResponse.newInstance().ok(); |
|||
} |
|||
} |
@ -1,38 +0,0 @@ |
|||
package com.ccsens.ptccsens.api.project; |
|||
|
|||
import com.ccsens.common.bean.dto.CProjectDto; |
|||
import com.ccsens.common.service.IPowerService; |
|||
import com.ccsens.util.JsonResponse; |
|||
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 逗 |
|||
*/ |
|||
@Api(tags = "权限相关" , description = "") |
|||
@RestController |
|||
@RequestMapping("/power") |
|||
@Slf4j |
|||
public class PowerController { |
|||
|
|||
@Resource |
|||
private IPowerService powerService; |
|||
|
|||
|
|||
@ApiOperation(value = "查询用户在项目中的权限", notes = "") |
|||
@RequestMapping(value = "/query", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) |
|||
public JsonResponse<Integer> queryPatientList(@ApiParam @Validated @RequestBody CProjectDto.QueryPower params) throws Exception{ |
|||
Integer power = powerService.queryUserPower(params.getProjectId(), params.getUserId()); |
|||
return JsonResponse.newInstance().ok(power); |
|||
} |
|||
|
|||
} |
@ -1,66 +0,0 @@ |
|||
package com.ccsens.ptccsens.api.project; |
|||
|
|||
import com.ccsens.common.bean.dto.CProjectDto; |
|||
import com.ccsens.common.bean.vo.CProjectVo; |
|||
import com.ccsens.common.service.IProjectService; |
|||
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; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @author 逗 |
|||
*/ |
|||
@Api(tags = "项目相关" , description = "DebugController | ") |
|||
@RestController |
|||
@RequestMapping("/project") |
|||
@Slf4j |
|||
public class ProjectController { |
|||
|
|||
@Resource |
|||
private IProjectService projectService; |
|||
|
|||
@ApiOperation(value = "根据id查询项目信息", notes = "根据id查询项目信息") |
|||
@RequestMapping(value = "/findProjectById", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) |
|||
public JsonResponse<CProjectVo.ProjectInfo> findProjectById(@ApiParam @Validated @RequestBody QueryDto<CProjectDto.ProjectById> params) throws Exception{ |
|||
CProjectVo.ProjectInfo projectById = projectService.findProjectById(params.getParam(), params.getUserId()); |
|||
return JsonResponse.newInstance().ok(projectById); |
|||
} |
|||
|
|||
@ApiOperation(value = "查询子项目", notes = "查询子项目") |
|||
@RequestMapping(value = "/findSonProject", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) |
|||
public JsonResponse<List<CProjectVo.ProjectInfo>> findSonProject(@ApiParam @Validated @RequestBody QueryDto<CProjectDto.FindSonProject> params) throws Exception{ |
|||
log.info("查询子项目开始"); |
|||
List<CProjectVo.ProjectInfo> projectInfoList = projectService.findSonProject(params.getParam(), params.getUserId()); |
|||
log.info("查询子项目结束{}",projectInfoList); |
|||
return JsonResponse.newInstance().ok(projectInfoList); |
|||
} |
|||
|
|||
|
|||
@ApiOperation(value = "删除项目", notes = "删除项目") |
|||
@RequestMapping(value = "/deleteProject", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) |
|||
public JsonResponse deleteProject(@ApiParam @Validated @RequestBody QueryDto<CProjectDto.ProjectById> params) throws Exception{ |
|||
log.info("删除项目开始"); |
|||
projectService.deleteProjectById(params.getParam(), params.getUserId()); |
|||
log.info("删除项目结束"); |
|||
return JsonResponse.newInstance().ok(); |
|||
} |
|||
|
|||
@RequestMapping(value = "/tallDelProject", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) |
|||
public JsonResponse deleteProject(@ApiParam @Validated @RequestBody CProjectDto.ProjectById params) throws Exception{ |
|||
log.info("删除项目开始"); |
|||
projectService.deleteProjectById(params,null); |
|||
log.info("删除项目结束"); |
|||
return JsonResponse.newInstance().ok(); |
|||
} |
|||
} |
@ -1,99 +0,0 @@ |
|||
package com.ccsens.ptccsens.api.project; |
|||
|
|||
import com.ccsens.cloudutil.annotation.MustLogin; |
|||
import com.ccsens.common.bean.dto.CRoleDto; |
|||
import com.ccsens.common.bean.vo.CRoleVo; |
|||
import com.ccsens.common.service.IProRoleService; |
|||
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; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @author 逗 |
|||
*/ |
|||
@Api(tags = "角色相关" , description = "DebugController | ") |
|||
@RestController |
|||
@RequestMapping("/role") |
|||
@Slf4j |
|||
public class RoleController { |
|||
@Resource |
|||
private IProRoleService roleService; |
|||
|
|||
@MustLogin |
|||
@ApiOperation(value = "根据项目id查找角色", notes = "") |
|||
@RequestMapping(value = "/show", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) |
|||
public JsonResponse<CRoleVo.QueryRole> queryByProjectId(@ApiParam @Validated @RequestBody QueryDto<CRoleDto.QueryRoleById> params) { |
|||
CRoleVo.QueryRole queryRole = roleService.queryShowRole(params.getParam(), params.getUserId()); |
|||
return JsonResponse.newInstance().ok(queryRole); |
|||
} |
|||
|
|||
@MustLogin |
|||
@ApiOperation(value = "修改角色展示", notes = "") |
|||
@RequestMapping(value = "/updateShow", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) |
|||
public JsonResponse updateShow(@ApiParam @Validated @RequestBody QueryDto<CRoleDto.UpdateRoleShow> params) { |
|||
roleService.updateShowRole(params.getParam(),params.getUserId()); |
|||
return JsonResponse.newInstance().ok(); |
|||
} |
|||
|
|||
@MustLogin |
|||
@ApiOperation(value = "查询角色下的所有成员", notes = "") |
|||
@RequestMapping(value = "/queryMemberOfRole", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) |
|||
public JsonResponse<List<CRoleVo.MemberOfRoleInfo>> queryMemberOfRole(@ApiParam @Validated @RequestBody QueryDto<CRoleDto.QueryMemberOfRole> params) { |
|||
log.info("查询角色下的所有成员开始{}",params); |
|||
List<CRoleVo.MemberOfRoleInfo> member = roleService.queryMemberOfRole(params.getParam(),params.getUserId()); |
|||
log.info("查询角色下的所有成员开始{}",params); |
|||
return JsonResponse.newInstance().ok(member); |
|||
} |
|||
|
|||
@MustLogin |
|||
@ApiOperation(value = "添加角色", notes = "") |
|||
@RequestMapping(value = "/save", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) |
|||
public JsonResponse saveRole(@ApiParam @Validated @RequestBody QueryDto<CRoleDto.SaveRole> params) { |
|||
log.info("添加角色{}",params); |
|||
roleService.saveRole(params.getParam(),params.getUserId()); |
|||
log.info("添加角色成功"); |
|||
return JsonResponse.newInstance().ok(); |
|||
} |
|||
|
|||
@MustLogin |
|||
@ApiOperation(value = "修改角色信息", notes = "") |
|||
@RequestMapping(value = "/update", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) |
|||
public JsonResponse updateRole(@ApiParam @Validated @RequestBody QueryDto<CRoleDto.UpdateRole> params) { |
|||
log.info("修改角色信息{}",params); |
|||
roleService.updateRole(params.getParam(),params.getUserId()); |
|||
log.info("修改角色信息成功"); |
|||
return JsonResponse.newInstance().ok(); |
|||
} |
|||
|
|||
@MustLogin |
|||
@ApiOperation(value = "删除角色", notes = "") |
|||
@RequestMapping(value = "/delete", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) |
|||
public JsonResponse deleteRole(@ApiParam @Validated @RequestBody QueryDto<CRoleDto.QueryMemberOfRole> params) { |
|||
log.info("删除角色{}",params); |
|||
roleService.delRole(params.getParam(),params.getUserId()); |
|||
log.info("删除角色成功"); |
|||
return JsonResponse.newInstance().ok(); |
|||
} |
|||
|
|||
@MustLogin |
|||
@ApiOperation(value = "修改角色下的成员", notes = "") |
|||
@RequestMapping(value = "/roleMembers", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) |
|||
public JsonResponse updateRoleMembers(@ApiParam @Validated @RequestBody QueryDto<CRoleDto.UpdateRoleMembers> params) { |
|||
log.info("修改角色下的成员{}",params); |
|||
roleService.updateRoleMembers(params.getParam(),params.getUserId()); |
|||
log.info("修改角色下的成员成功"); |
|||
return JsonResponse.newInstance().ok(); |
|||
} |
|||
|
|||
} |
@ -1,48 +0,0 @@ |
|||
package com.ccsens.ptccsens.api.project; |
|||
|
|||
import com.ccsens.cloudutil.annotation.MustLogin; |
|||
import com.ccsens.common.bean.dto.CShareDto; |
|||
import com.ccsens.common.bean.vo.CShareVo; |
|||
import com.ccsens.common.service.IShareService; |
|||
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 AUSU |
|||
*/ |
|||
@Api(tags = "分享相关") |
|||
@RestController |
|||
@RequestMapping("/share") |
|||
@Slf4j |
|||
public class ShareController { |
|||
|
|||
@Resource |
|||
private IShareService shareService; |
|||
|
|||
@MustLogin |
|||
@ApiOperation(value = "创建分享连接", notes = "") |
|||
@RequestMapping(value = "/create", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) |
|||
public JsonResponse<CShareVo.CreateShareUrl> createShareUrl(@ApiParam @Validated @RequestBody QueryDto<CShareDto.CreateShareUrl> params) { |
|||
CShareVo.CreateShareUrl shareUrl = shareService.createShareUrl(params.getParam(), params.getUserId()); |
|||
return JsonResponse.newInstance().ok(shareUrl); |
|||
} |
|||
|
|||
@MustLogin |
|||
@ApiOperation(value = "点击分享连接", notes = "") |
|||
@RequestMapping(value = "/click", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) |
|||
public JsonResponse<CShareVo.ClickShareInfo> queryByProjectId(@ApiParam @Validated @RequestBody QueryDto<CShareDto.ClickShareUrl> params) { |
|||
CShareVo.ClickShareInfo clickShareInfo = shareService.clickShareUrl(params.getParam(), params.getUserId(),params.getUserName(),params.getPhone()); |
|||
return JsonResponse.newInstance().ok(clickShareInfo); |
|||
} |
|||
} |
@ -1,129 +0,0 @@ |
|||
package com.ccsens.ptccsens.api.project; |
|||
|
|||
import com.ccsens.cloudutil.annotation.MustLogin; |
|||
import com.ccsens.common.bean.dto.CPluginDto; |
|||
import com.ccsens.common.bean.dto.CTaskDto; |
|||
import com.ccsens.common.bean.vo.CPluginVo; |
|||
import com.ccsens.common.bean.vo.CTaskVo; |
|||
import com.ccsens.common.service.ITaskService; |
|||
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; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @author 逗 |
|||
*/ |
|||
@Api(tags = "任务相关" , description = "DebugController | ") |
|||
@RestController |
|||
@RequestMapping("/task") |
|||
@Slf4j |
|||
public class TaskController { |
|||
@Resource |
|||
private ITaskService taskService; |
|||
|
|||
@MustLogin |
|||
@ApiOperation(value = "查找永久日常任务", notes = "") |
|||
@RequestMapping(value = "/permanent", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) |
|||
public JsonResponse<List<CTaskVo.QueryTask>> queryPermanentGlobalTask(@ApiParam @Validated @RequestBody QueryDto<CTaskDto.QueryPermanentGlobalTask> params) { |
|||
List<CTaskVo.QueryTask> queryTasks = taskService.queryPermanentGlobalTask(params.getParam(), params.getUserId()); |
|||
return JsonResponse.newInstance().ok(queryTasks); |
|||
} |
|||
|
|||
@MustLogin |
|||
@ApiOperation(value = "查找带时间的日常任务", notes = "") |
|||
@RequestMapping(value = "/global", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) |
|||
public JsonResponse<List<CTaskVo.QueryTask>> queryGlobalTask(@ApiParam @Validated @RequestBody QueryDto<CTaskDto.QueryGlobalTask> params) { |
|||
List<CTaskVo.QueryTask> queryTasks = taskService.queryGlobalTask(params.getParam(), params.getUserId()); |
|||
return JsonResponse.newInstance().ok(queryTasks); |
|||
} |
|||
|
|||
@MustLogin |
|||
@ApiOperation(value = "查找定期任务", notes = "") |
|||
@RequestMapping(value = "/regular", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) |
|||
public JsonResponse<List<CTaskVo.QueryTask>> queryRegularTask(@ApiParam @Validated @RequestBody QueryDto<CTaskDto.QueryRegularTask> params) { |
|||
List<CTaskVo.QueryTask> queryTasks = taskService.queryRegularTask(params.getParam(), params.getUserId()); |
|||
return JsonResponse.newInstance().ok(queryTasks); |
|||
} |
|||
|
|||
@MustLogin |
|||
@ApiOperation(value = "修改任务状态", notes = "") |
|||
@RequestMapping(value = "/type", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) |
|||
public JsonResponse updateTaskType(@ApiParam @Validated @RequestBody QueryDto<CTaskDto.UpdateTaskType> params) throws Exception { |
|||
taskService.updateTaskType(params.getParam(),params.getUserId()); |
|||
return JsonResponse.newInstance().ok(); |
|||
} |
|||
|
|||
@ApiOperation(value = "查询子任务", notes = "") |
|||
@RequestMapping(value = "/findSonTask", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) |
|||
public JsonResponse<List<CTaskVo.SonTaskDetail>> findSonTask(@ApiParam @Validated @RequestBody QueryDto<CTaskDto.FindSonTask> params) throws Exception { |
|||
log.info("查询子任务开始"); |
|||
List<CTaskVo.SonTaskDetail> sonTask = taskService.findSonTask(params.getParam(), params.getUserId()); |
|||
log.info("查询子任务开始{}",sonTask); |
|||
return JsonResponse.newInstance().ok(sonTask); |
|||
} |
|||
|
|||
@ApiOperation(value = "添加任务", notes = "") |
|||
@RequestMapping(value = "/save", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) |
|||
public JsonResponse<List<CTaskVo.QueryTask>> saveTask(@ApiParam @Validated @RequestBody QueryDto<CTaskDto.SaveTask> params) throws Exception { |
|||
log.info("添加任务开始"); |
|||
List<CTaskVo.QueryTask> taskList = taskService.saveTask(params.getParam(), params.getUserId()); |
|||
log.info("添加任务结束{}",taskList); |
|||
return JsonResponse.newInstance().ok(taskList); |
|||
} |
|||
|
|||
@ApiOperation(value = "查找项目下的任务", notes = "") |
|||
@RequestMapping(value = "/queryTaskOfProject", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) |
|||
public JsonResponse<List<CTaskVo.TaskOfProject>> queryTaskOfProject(@ApiParam @Validated @RequestBody QueryDto<CTaskDto.QueryTaskOfProject> params) throws Exception { |
|||
log.info("查找项目下的任务开始{}",params); |
|||
List<CTaskVo.TaskOfProject> taskList = taskService.queryTaskOfProject(params.getParam(), params.getUserId()); |
|||
log.info("查找项目下的任务结束{}",taskList); |
|||
return JsonResponse.newInstance().ok(taskList); |
|||
} |
|||
|
|||
@ApiOperation(value = "修改任务信息", notes = "") |
|||
@RequestMapping(value = "/update", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) |
|||
public JsonResponse updateTask(@ApiParam @Validated @RequestBody QueryDto<CTaskDto.UpdateTask> params) throws Exception { |
|||
log.info("修改任务信息开始{}",params); |
|||
taskService.updateTaskDetail(params.getParam(), params.getUserId()); |
|||
log.info("修改任务信息结束"); |
|||
return JsonResponse.newInstance().ok(); |
|||
} |
|||
|
|||
@ApiOperation(value = "删除任务", notes = "") |
|||
@RequestMapping(value = "/delete", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) |
|||
public JsonResponse deleteTask(@ApiParam @Validated @RequestBody QueryDto<CTaskDto.FindSonTask> params) throws Exception { |
|||
log.info("删除任务开始{}",params); |
|||
taskService.deleteTaskDetail(params.getParam(), params.getUserId()); |
|||
log.info("删除任务结束"); |
|||
return JsonResponse.newInstance().ok(); |
|||
} |
|||
|
|||
@ApiOperation(value = "查找任务下的插件列表", notes = "") |
|||
@RequestMapping(value = "/queryTaskPlugin", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) |
|||
public JsonResponse<List<CPluginVo.TaskPlugin>> queryTaskPlugin(@ApiParam @Validated @RequestBody QueryDto<CTaskDto.FindSonTask> params) throws Exception { |
|||
log.info("查找任务下的插件列表开始{}",params); |
|||
List<CPluginVo.TaskPlugin> taskPlugins = taskService.queryPluginByTaskId(params.getParam(), params.getUserId()); |
|||
log.info("查找任务下的插件列表结束:{}",taskPlugins); |
|||
return JsonResponse.newInstance().ok(taskPlugins); |
|||
} |
|||
|
|||
@ApiOperation(value = "给任务添加关联插件", notes = "") |
|||
@RequestMapping(value = "/saveTaskPlugin", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) |
|||
public JsonResponse saveTaskPlugin(@ApiParam @Validated @RequestBody QueryDto<CPluginDto.SaveTaskPlugin> params) throws Exception { |
|||
log.info("给任务添加关联插件{}",params); |
|||
taskService.saveTaskPlugin(params.getParam(), params.getUserId()); |
|||
log.info("给任务添加关联插件结束"); |
|||
return JsonResponse.newInstance().ok(); |
|||
} |
|||
} |
@ -1,46 +0,0 @@ |
|||
package com.ccsens.ptccsens.api.project; |
|||
|
|||
import com.ccsens.common.bean.dto.CMemberDto; |
|||
import com.ccsens.ptccsens.service.IUserService; |
|||
import com.ccsens.util.JsonResponse; |
|||
import io.swagger.annotations.Api; |
|||
import io.swagger.annotations.ApiImplicitParams; |
|||
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; |
|||
|
|||
@Api(tags = "DEBUG" , description = "DebugController | ") |
|||
@RestController |
|||
@RequestMapping("/user") |
|||
@Slf4j |
|||
public class UserController { |
|||
@Resource |
|||
private IUserService userService; |
|||
|
|||
@ApiOperation(value = "根据手机号更新成员的userId",notes = "") |
|||
@ApiImplicitParams({ |
|||
}) |
|||
@RequestMapping(value="/memberWithPhone",method = RequestMethod.POST,produces = {"application/json;charset=UTF-8"}) |
|||
public JsonResponse memberWithPhone(@ApiParam @Validated @RequestBody CMemberDto.PhoneAndUserId params) throws Exception { |
|||
log.info("根据手机号更新成员userId"); |
|||
userService.memberWithPhone(params); |
|||
return JsonResponse.newInstance().ok(); |
|||
} |
|||
|
|||
@ApiOperation(value = "合并用户后修改userId",notes = "") |
|||
@ApiImplicitParams({ |
|||
}) |
|||
@RequestMapping(value="/mergeUser",method = RequestMethod.POST,produces = {"application/json;charset=UTF-8"}) |
|||
public JsonResponse mergeUser(@ApiParam @Validated @RequestBody CMemberDto.MergeUser params) throws Exception { |
|||
log.info("合并用户后修改userId"); |
|||
userService.mergeUser(params); |
|||
return JsonResponse.newInstance().ok(); |
|||
} |
|||
} |
@ -1,74 +0,0 @@ |
|||
package com.ccsens.ptccsens.api.project; |
|||
|
|||
import cn.hutool.core.date.DateUtil; |
|||
import cn.hutool.core.io.FileUtil; |
|||
import cn.hutool.core.util.IdUtil; |
|||
import cn.hutool.core.util.StrUtil; |
|||
import com.ccsens.ptccsens.util.BasicsConstant; |
|||
import com.ccsens.ptccsens.util.BasicsCodeError; |
|||
import com.ccsens.cloudutil.annotation.MustLogin; |
|||
import com.ccsens.ptccsens.bean.vo.ProjectVo; |
|||
import com.ccsens.ptccsens.service.IImportService; |
|||
import com.ccsens.util.JsonResponse; |
|||
import com.ccsens.util.WebConstant; |
|||
import com.ccsens.util.bean.dto.QueryDto; |
|||
import com.ccsens.util.exception.BaseException; |
|||
import io.swagger.annotations.Api; |
|||
import io.swagger.annotations.ApiImplicitParams; |
|||
import io.swagger.annotations.ApiOperation; |
|||
import lombok.extern.slf4j.Slf4j; |
|||
import org.springframework.web.bind.annotation.RequestMapping; |
|||
import org.springframework.web.bind.annotation.RequestMethod; |
|||
import org.springframework.web.bind.annotation.RestController; |
|||
import org.springframework.web.multipart.MultipartFile; |
|||
|
|||
import javax.annotation.Resource; |
|||
import java.io.File; |
|||
import java.util.Date; |
|||
|
|||
/** |
|||
* @author 逗 |
|||
*/ |
|||
@Api(tags = "导入wbs" , description = "DebugController | ") |
|||
@RestController |
|||
@RequestMapping("/wbs") |
|||
@Slf4j |
|||
public class WbsController { |
|||
|
|||
@Resource |
|||
private IImportService importService; |
|||
|
|||
|
|||
|
|||
@MustLogin |
|||
@ApiOperation(value = "导入WBS",notes = "文件大小不能超过20M,支持后缀:.xls|.xlsx") |
|||
@ApiImplicitParams({ |
|||
// @ApiImplicitParam(name = "file", value = "WBS表", required = true, paramType = "form",dataType = "__file")
|
|||
}) |
|||
@RequestMapping(value = "", method = RequestMethod.POST) |
|||
public JsonResponse<ProjectVo.ProjectInfo> importWbs(QueryDto<MultipartFile> params, Long projectId) throws Exception { |
|||
|
|||
MultipartFile f = params.getParam(); |
|||
String ext = FileUtil.extName(f.getOriginalFilename()); |
|||
if(StrUtil.isEmpty(ext) || !BasicsConstant.WbsExcel.WBS_FILE_FORMAT.contains(ext)){ |
|||
throw new BaseException(BasicsCodeError.FILE_FORMAT_ERROR); |
|||
} |
|||
//文件路径
|
|||
String dir = WebConstant.UPLOAD_PROJECT_WBS + File.separator; |
|||
String extraPath = DateUtil.format(new Date(), "yyyyMMdd"); |
|||
String path = extraPath + File.separator + IdUtil.simpleUUID() + "." + ext; |
|||
//转成file
|
|||
File file = new File(dir + extraPath); |
|||
if (!file.exists()) { |
|||
file.mkdirs(); |
|||
} |
|||
String fullPath = dir + File.separator + path; |
|||
FileUtil.writeFromStream(f.getInputStream(), fullPath); |
|||
|
|||
//导入数据库
|
|||
ProjectVo.ProjectInfo projectInfo = importService.importWbs(fullPath,params.getUserId(),projectId); |
|||
|
|||
return JsonResponse.newInstance().ok(projectInfo); |
|||
} |
|||
|
|||
} |
@ -0,0 +1,13 @@ |
|||
package com.ccsens.ptccsens.persist.dao; |
|||
|
|||
import org.apache.ibatis.annotations.Param; |
|||
|
|||
public interface ProMemberDao { |
|||
/** |
|||
* 根据项目ID和userId查找memberId |
|||
* @param projectId 项目ID |
|||
* @param userId 用户ID |
|||
* @return memberId |
|||
*/ |
|||
Long findUserOfMemberId(@Param("projectId") Long projectId,@Param("userId")Long userId); |
|||
} |
@ -0,0 +1,12 @@ |
|||
package com.ccsens.ptccsens.persist.dao; |
|||
|
|||
import org.apache.ibatis.annotations.Param; |
|||
|
|||
public interface ProTaskDetailDao { |
|||
/** |
|||
* 根据任务详情id查找项目id |
|||
* @param taskDetailId 任务ID |
|||
* @return 项目ID |
|||
*/ |
|||
Long projectIdByTaskDetailId(@Param("taskDetailId") Long taskDetailId); |
|||
} |
@ -1,12 +0,0 @@ |
|||
package com.ccsens.ptccsens.persist.dao; |
|||
|
|||
import org.apache.ibatis.annotations.Param; |
|||
|
|||
/** |
|||
* @author 逗 |
|||
*/ |
|||
public interface SPluginDao { |
|||
Long getPluginIdByName(@Param("pluginName") String pluginName); |
|||
|
|||
void updateParamById(@Param("param")String param,@Param("taskPluginId")Long taskPluginId); |
|||
} |
@ -1,29 +0,0 @@ |
|||
package com.ccsens.ptccsens.persist.dao; |
|||
|
|||
import com.ccsens.ptccsens.bean.vo.ProjectVo; |
|||
import org.apache.ibatis.annotations.Param; |
|||
import org.springframework.stereotype.Repository; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @author 逗 |
|||
*/ |
|||
@Repository |
|||
public interface SProjectDao { |
|||
|
|||
List<ProjectVo.SysProject> queryByCreator(@Param("userId") Long userId); |
|||
|
|||
/** |
|||
* 根据项目id查询项目 |
|||
* @param projectId 项目id |
|||
* @return 项目信息 |
|||
*/ |
|||
ProjectVo.SysProject selectById(@Param("projectId") Long projectId); |
|||
|
|||
/** |
|||
* 逻辑删除项目 |
|||
* @param projectId 项目id |
|||
*/ |
|||
void updateStatusById(@Param("projectId") Long projectId); |
|||
} |
@ -1,23 +0,0 @@ |
|||
package com.ccsens.ptccsens.persist.dao; |
|||
|
|||
import com.ccsens.common.bean.po.ProTaskSub; |
|||
import org.apache.ibatis.annotations.Param; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @author 逗 |
|||
*/ |
|||
public interface STaskDao { |
|||
|
|||
void insertSelectiveList(@Param("proTaskSubList") List<ProTaskSub> proTaskSubList); |
|||
|
|||
/** |
|||
* 根据任务名和项目id查找当前时间下的任务的分解id |
|||
* @param taskName 任务名 |
|||
* @param projectId 项目id |
|||
* @param now 当前时间 |
|||
* @return 返回任务分解id |
|||
*/ |
|||
Long getNowTask(@Param("taskName") String taskName, @Param("projectId") Long projectId, @Param("now") long now); |
|||
} |
@ -1,15 +0,0 @@ |
|||
package com.ccsens.ptccsens.persist.dao; |
|||
|
|||
import com.ccsens.common.persist.dao.LabelDao; |
|||
import org.apache.ibatis.annotations.Param; |
|||
import org.springframework.stereotype.Repository; |
|||
|
|||
/** |
|||
* @author 逗 |
|||
*/ |
|||
@Repository |
|||
public interface SubLabelDao extends LabelDao { |
|||
Long getLabelByName(@Param("type") int type, @Param("sysRole") String sysRole); |
|||
|
|||
Long getLabelByTypeAndLevel(@Param("type") int type, @Param("level") int level); |
|||
} |
@ -1,18 +0,0 @@ |
|||
package com.ccsens.ptccsens.service; |
|||
|
|||
|
|||
import com.ccsens.ptccsens.bean.vo.ProjectVo; |
|||
|
|||
/** |
|||
* @author 逗 |
|||
*/ |
|||
public interface IImportService { |
|||
/** |
|||
* 读取excel |
|||
* @param path 路径 |
|||
* @param userId userId |
|||
* @throws Exception 异常 |
|||
*/ |
|||
ProjectVo.ProjectInfo importWbs(String path, Long userId, Long projectId) throws Exception; |
|||
|
|||
} |
@ -1,17 +0,0 @@ |
|||
package com.ccsens.ptccsens.service; |
|||
|
|||
import com.ccsens.common.bean.dto.CMemberDto; |
|||
|
|||
public interface IUserService { |
|||
/** |
|||
* 根据手机号修改成员的userId |
|||
* @param params 手机号和userId |
|||
*/ |
|||
void memberWithPhone(CMemberDto.PhoneAndUserId params); |
|||
|
|||
/** |
|||
* 合并用户后修改userId |
|||
* @param params 新旧userId |
|||
*/ |
|||
void mergeUser(CMemberDto.MergeUser params); |
|||
} |
@ -1,896 +0,0 @@ |
|||
package com.ccsens.ptccsens.service; |
|||
|
|||
import cn.hutool.core.bean.BeanUtil; |
|||
import cn.hutool.core.collection.CollectionUtil; |
|||
import cn.hutool.core.lang.Snowflake; |
|||
import cn.hutool.core.util.ObjectUtil; |
|||
import cn.hutool.core.util.StrUtil; |
|||
import com.ccsens.ptccsens.util.BasicsCodeError; |
|||
import com.ccsens.cloudutil.bean.tall.dto.ProjectDto; |
|||
import com.ccsens.cloudutil.feign.Tall3FeignClient; |
|||
import com.ccsens.common.bean.po.*; |
|||
import com.ccsens.common.persist.dao.*; |
|||
import com.ccsens.common.persist.mapper.ProMemberStakeholderMapper; |
|||
import com.ccsens.ptccsens.bean.dto.RoleDto; |
|||
import com.ccsens.ptccsens.bean.dto.TaskDto; |
|||
import com.ccsens.ptccsens.bean.vo.ProjectVo; |
|||
import com.ccsens.ptccsens.persist.dao.SPluginDao; |
|||
import com.ccsens.ptccsens.persist.dao.SProjectDao; |
|||
import com.ccsens.ptccsens.persist.dao.STaskDao; |
|||
import com.ccsens.ptccsens.persist.dao.SubLabelDao; |
|||
import com.ccsens.ptccsens.util.BasicsConstant; |
|||
import com.ccsens.util.ExcelUtil; |
|||
import com.ccsens.util.JsonResponse; |
|||
import com.ccsens.util.PropUtil; |
|||
import com.ccsens.util.StringUtil; |
|||
import com.ccsens.util.cron.CronConstant; |
|||
import com.ccsens.util.cron.NatureToDate; |
|||
import com.ccsens.util.exception.BaseException; |
|||
import lombok.extern.slf4j.Slf4j; |
|||
import org.apache.poi.xssf.usermodel.XSSFCell; |
|||
import org.apache.poi.xssf.usermodel.XSSFRow; |
|||
import org.apache.poi.xssf.usermodel.XSSFSheet; |
|||
import org.apache.poi.xssf.usermodel.XSSFWorkbook; |
|||
import org.springframework.stereotype.Service; |
|||
import org.springframework.transaction.annotation.Propagation; |
|||
import org.springframework.transaction.annotation.Transactional; |
|||
|
|||
import javax.annotation.Resource; |
|||
import java.io.FileInputStream; |
|||
import java.io.InputStream; |
|||
import java.util.*; |
|||
import java.util.regex.Matcher; |
|||
import java.util.regex.Pattern; |
|||
|
|||
/** |
|||
* @author 逗 |
|||
*/ |
|||
@Slf4j |
|||
@Service |
|||
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) |
|||
public class ImportService implements IImportService { |
|||
|
|||
@Resource |
|||
private Snowflake snowflake; |
|||
@Resource |
|||
private ProTaskDetailDao taskDetailDao; |
|||
@Resource |
|||
private ProTaskSubDao taskSubDao; |
|||
@Resource |
|||
private ProTaskVersionDao taskVersionMapper; |
|||
@Resource |
|||
private SubLabelDao subLabelDao; |
|||
@Resource |
|||
private LabelDao labelDao; |
|||
@Resource |
|||
private ProRoleDao roleDao; |
|||
@Resource |
|||
private ProMemberDao memberDao; |
|||
@Resource |
|||
private ProRoleMemberDao roleMemberDao; |
|||
@Resource |
|||
private ProMemberStakeholderMapper memberStakeholderMapper; |
|||
@Resource |
|||
private ProRoleRepulsionDao repulsionDao; |
|||
@Resource |
|||
private LabelBusinessDao labelBusinessDao; |
|||
@Resource |
|||
private ProParentTaskDao parentTaskMapper; |
|||
@Resource |
|||
private ProRoleTaskDao roleTaskMapper; |
|||
@Resource |
|||
private UserDao userDao; |
|||
@Resource |
|||
private SProjectDao projectDao; |
|||
@Resource |
|||
private STaskDao sTaskDao; |
|||
@Resource |
|||
private SPluginDao sTaskPluginDao; |
|||
@Resource |
|||
private ProTaskPluginDao proTaskPluginDao; |
|||
@Resource |
|||
private Tall3FeignClient tall3FeignClient; |
|||
|
|||
/** |
|||
* 读取wbs文件 |
|||
* @param path 路径 |
|||
* @param userId userId |
|||
* @throws Exception 异常 |
|||
*/ |
|||
@Override |
|||
public ProjectVo.ProjectInfo importWbs(String path, Long userId,Long projectId) throws Exception { |
|||
ProjectVo.ProjectInfo projectInfo = new ProjectVo.ProjectInfo(); |
|||
//获取excel文件
|
|||
InputStream is = new FileInputStream(path); |
|||
XSSFWorkbook xssfWorkbook = new XSSFWorkbook(is); |
|||
//角色
|
|||
Map<String, Long> roleMap = new HashMap<>(); |
|||
//成员
|
|||
Map<String, RoleDto.WbsMember> memberMap = new HashMap<>(); |
|||
//任务
|
|||
Map<String, Object> taskMap = new HashMap<>(); |
|||
|
|||
//读取文件
|
|||
readExcel(xssfWorkbook, userId, roleMap, memberMap, taskMap,projectId,projectInfo); |
|||
|
|||
//读取插件配置表
|
|||
readPluginConfig(xssfWorkbook,taskMap); |
|||
|
|||
return projectInfo; |
|||
} |
|||
|
|||
/** |
|||
* 读取插件配置表 |
|||
*/ |
|||
private void readPluginConfig(XSSFWorkbook wb, Map<String, Object> taskMap) { |
|||
//获取插件配置表Sheet
|
|||
XSSFSheet wbsSheet = wb.getSheet(BasicsConstant.WbsExcel.WBS_PLUGIN_CONFIG); |
|||
if (ObjectUtil.isNotNull(wbsSheet)) { |
|||
for (int i = 0; i <= wbsSheet.getLastRowNum(); i++) { |
|||
//获取行
|
|||
XSSFRow row = wbsSheet.getRow(i); |
|||
if (row == null) { |
|||
continue; |
|||
} |
|||
//序号
|
|||
String sequence = StringUtil.replaceStrSpace(ExcelUtil.getCellValue(row.getCell(0))); |
|||
//任务名
|
|||
String taskName = StringUtil.replaceStrSpace(ExcelUtil.getCellValue(row.getCell(1))); |
|||
if(StrUtil.isEmpty(taskName)){ |
|||
continue; |
|||
} |
|||
//插件1
|
|||
String pluginParam1 = StringUtil.replaceStrSpace(ExcelUtil.getCellValue(row.getCell(2))); |
|||
//插件2
|
|||
String pluginParam2 = StringUtil.replaceStrSpace(ExcelUtil.getCellValue(row.getCell(3))); |
|||
//插件3
|
|||
String pluginParam3 = StringUtil.replaceStrSpace(ExcelUtil.getCellValue(row.getCell(4))); |
|||
Object o = taskMap.get(sequence + "_" + taskName); |
|||
if(ObjectUtil.isNull(o)){ |
|||
continue; |
|||
} |
|||
TaskDto.TaskPluginId taskPlugin = (TaskDto.TaskPluginId) o; |
|||
if(StrUtil.isNotEmpty(pluginParam1)){ |
|||
//修改插件表的param
|
|||
sTaskPluginDao.updateParamById(pluginParam1,taskPlugin.getTaskPluginId1()); |
|||
} |
|||
if(StrUtil.isNotEmpty(pluginParam2)){ |
|||
//修改插件表的param
|
|||
sTaskPluginDao.updateParamById(pluginParam2,taskPlugin.getTaskPluginId2()); |
|||
} |
|||
if(StrUtil.isNotEmpty(pluginParam3)){ |
|||
//修改插件表的param
|
|||
sTaskPluginDao.updateParamById(pluginParam3,taskPlugin.getTaskPluginId3()); |
|||
} |
|||
} |
|||
} |
|||
} |
|||
|
|||
/** |
|||
* 读取每个sheet |
|||
*/ |
|||
private void readExcel(XSSFWorkbook wb, Long userId, Map<String, Long> roleMap, Map<String, RoleDto.WbsMember> memberMap, Map<String, Object> taskMap,Long projectId,ProjectVo.ProjectInfo projectInfo) { |
|||
//获取wbsSheet
|
|||
XSSFSheet wbsSheet = wb.getSheet(BasicsConstant.WbsExcel.WBS_SHEET); |
|||
if (ObjectUtil.isNull(wbsSheet)) { |
|||
throw new BaseException(BasicsCodeError.NOT_WBS_SHEET); |
|||
} |
|||
//获取项目成员表
|
|||
XSSFSheet memberSheet = wb.getSheet(BasicsConstant.WbsExcel.MEMBER_SHEET); |
|||
if (ObjectUtil.isNull(memberSheet)) { |
|||
throw new BaseException(BasicsCodeError.NOT_MEMBER_SHEET); |
|||
} |
|||
//读取项目信息和任务分解信息的开始结束行
|
|||
int projectStart = 0; |
|||
int taskStart = 0; |
|||
for (int i = 0; i <= wbsSheet.getLastRowNum(); i++) { |
|||
//获取行
|
|||
XSSFRow xssfRow = wbsSheet.getRow(i); |
|||
if (xssfRow == null) { |
|||
continue; |
|||
} |
|||
//获取第一列
|
|||
XSSFCell xssfCell = xssfRow.getCell(0); |
|||
if (xssfCell == null) { |
|||
continue; |
|||
} |
|||
String s = ExcelUtil.getCellValue(xssfCell); |
|||
//获取项目开始行
|
|||
if (s.indexOf(BasicsConstant.WbsExcel.PROJECT_INFO_TITLE) == 0) { |
|||
projectStart = i + 1; |
|||
} |
|||
//获取任务开始行
|
|||
if (s.indexOf(BasicsConstant.WbsExcel.TASK_INFO_TITLE) == 0) { |
|||
taskStart = i + 1; |
|||
} |
|||
} |
|||
if (projectStart == 0) { |
|||
throw new BaseException(BasicsCodeError.WSB_NOT_PROJECT_HEADER); |
|||
} |
|||
if (taskStart == 0) { |
|||
throw new BaseException(BasicsCodeError.WSB_NOT_TASK_HEADER); |
|||
} |
|||
//添加项目
|
|||
ProjectVo.SysProject project = readProject(wbsSheet, projectStart, userId,projectId); |
|||
if(ObjectUtil.isNull(project)){ |
|||
throw new BaseException(BasicsCodeError.WSB_NOT_PROJECT_HEADER); |
|||
} |
|||
//读取成员表
|
|||
readMemberSheet(memberSheet,project,roleMap,memberMap); |
|||
//添加任务
|
|||
readTask(wbsSheet,taskStart,project,roleMap,taskMap); |
|||
//获取用户列表
|
|||
Set<Long> userIdSet = new HashSet<>(); |
|||
userIdSet.add(userId); |
|||
//处理创建人的权限问题(添加创建人角色)
|
|||
//查找创建者标签id
|
|||
Long roleLabelId = labelDao.getLabelByTypeAndLevel(5, 5); |
|||
//添加创建者角色
|
|||
ProRole role = new ProRole(); |
|||
role.setId(snowflake.nextId()); |
|||
role.setName("创建者"); |
|||
role.setProjectId(project.getId()); |
|||
role.setLabelId(roleLabelId); |
|||
roleDao.insertSelective(role); |
|||
//查找创建者在项目下的成员信息
|
|||
Long memberId = null; |
|||
if(CollectionUtil.isNotEmpty(memberMap)){ |
|||
for(RoleDto.WbsMember member : memberMap.values()){ |
|||
if(ObjectUtil.isNotNull(member.getUserId())){ |
|||
if(member.getUserId().equals(userId)){ |
|||
memberId = member.getId(); |
|||
} |
|||
userIdSet.add(member.getUserId()); |
|||
} |
|||
} |
|||
} |
|||
//如果当前用户不是项目成员,则添加为成员
|
|||
if(ObjectUtil.isNull(memberId)){ |
|||
//添加成员至数据库
|
|||
ProMember proMember = new ProMember(); |
|||
proMember.setId(snowflake.nextId()); |
|||
proMember.setProjectId(projectId); |
|||
proMember.setUserId(userId); |
|||
memberDao.insertSelective(proMember); |
|||
memberId = proMember.getId(); |
|||
} |
|||
//添加当前用户未创建者
|
|||
//添加角色成员关联信息
|
|||
ProRoleMember roleMember = new ProRoleMember(); |
|||
roleMember.setId(snowflake.nextId()); |
|||
roleMember.setRoleId(role.getId()); |
|||
roleMember.setMemberId(memberId); |
|||
roleMemberDao.insertSelective(roleMember); |
|||
|
|||
//TODO 在tall客户端添加项目和用户的关联信息
|
|||
ProjectDto.SaveProjectDto saveProjectDto = new ProjectDto.SaveProjectDto(); |
|||
saveProjectDto.setId(project.getId()); |
|||
saveProjectDto.setName(project.getName()); |
|||
saveProjectDto.setStartTime(project.getBeginTime()); |
|||
saveProjectDto.setEndTime(project.getEndTime()); |
|||
saveProjectDto.setUrl(PropUtil.domain); |
|||
|
|||
saveProjectDto.setUserIdList(userIdSet); |
|||
JsonResponse jsonResponse = tall3FeignClient.saveProjectList(saveProjectDto); |
|||
if (null == jsonResponse){ |
|||
throw new BaseException(BasicsCodeError.FEIGN_ERROR); |
|||
} |
|||
|
|||
//获取项目信息
|
|||
BeanUtil.copyProperties(saveProjectDto,projectInfo); |
|||
} |
|||
|
|||
/** |
|||
* 读取项目信息 |
|||
*/ |
|||
private ProjectVo.SysProject readProject(XSSFSheet wbsSheet, int projectStart, Long userId,Long projectId) { |
|||
ProjectVo.SysProject project = new ProjectVo.SysProject(); |
|||
// TODO 查询是否项目是否存在
|
|||
if (ObjectUtil.isNotNull(projectId)) { |
|||
project = projectDao.selectById(projectId); |
|||
if (ObjectUtil.isNotNull(project)) { |
|||
project.setId(projectId); |
|||
project.setImportType((byte)1); |
|||
//删除之前的项目详情
|
|||
projectDao.updateStatusById(projectId); |
|||
//删除之前的项目分解
|
|||
ProTaskSubExample taskSubExample = new ProTaskSubExample(); |
|||
taskSubExample.createCriteria().andTaskDetailIdEqualTo(projectId); |
|||
ProTaskSub taskSub = new ProTaskSub(); |
|||
taskSub.setRecStatus((byte)2); |
|||
taskSubDao.updateByExampleSelective(taskSub,taskSubExample); |
|||
//删除之前的版本信息
|
|||
ProTaskVersion taskVersion = new ProTaskVersion(); |
|||
taskVersion.setRecStatus((byte)2); |
|||
ProTaskVersionExample taskVersionExample = new ProTaskVersionExample(); |
|||
taskVersionExample.createCriteria().andTaskDetailIdEqualTo(projectId); |
|||
taskVersionMapper.updateByExampleSelective(taskVersion,taskVersionExample); |
|||
//删除项目标签相关的
|
|||
LabelBusiness labelBusiness = new LabelBusiness(); |
|||
labelBusiness.setRecStatus((byte)2); |
|||
LabelBusinessExample labelBusinessExample = new LabelBusinessExample(); |
|||
labelBusinessExample.createCriteria().andBusinessIdEqualTo(projectId); |
|||
labelBusinessDao.updateByExampleSelective(labelBusiness,labelBusinessExample); |
|||
} |
|||
} |
|||
//获取项目信息的那一行
|
|||
XSSFRow row = wbsSheet.getRow(projectStart + 1); |
|||
if (ObjectUtil.isNull(row)) { |
|||
throw new BaseException(BasicsCodeError.WSB_NOT_PROJECT_HEADER); |
|||
} |
|||
//项目名
|
|||
String projectName = StringUtil.replaceStrSpace(ExcelUtil.getCellValue(row.getCell(0))); |
|||
//详情
|
|||
String description = StringUtil.replaceStrSpace(ExcelUtil.getCellValue(row.getCell(1))); |
|||
//项目时间
|
|||
String address = StringUtil.replaceStrSpace(ExcelUtil.getCellValue(row.getCell(2))); |
|||
//开始时间
|
|||
String beginTime = StringUtil.replaceStrSpace(ExcelUtil.getCellValue(row.getCell(3))); |
|||
//结束时间
|
|||
String endTime = StringUtil.replaceStrSpace(ExcelUtil.getCellValue(row.getCell(4))); |
|||
//版本
|
|||
String version = StringUtil.replaceStrSpace(ExcelUtil.getCellValue(row.getCell(5))); |
|||
if (StrUtil.isEmpty(projectName)) { |
|||
throw new BaseException(BasicsCodeError.WBS_NOT_PROJECT_NAME.addMsg(wbsSheet.getSheetName(),projectStart+1)); |
|||
} |
|||
//项目名不能重复(当前用户创建的项目内名字不能重复)
|
|||
//根据userId查找已创建的项目
|
|||
List<ProjectVo.SysProject> sysProjectList = projectDao.queryByCreator(userId); |
|||
if(CollectionUtil.isNotEmpty(sysProjectList)){ |
|||
sysProjectList.forEach(p -> { |
|||
if(projectName.equalsIgnoreCase(p.getName())){ |
|||
//如果名称重复则提示错误信息
|
|||
throw new BaseException(BasicsCodeError.PROJECT_NAME_REPEAT.addMsg(wbsSheet.getSheetName(),projectStart+1,projectName)); |
|||
} |
|||
}); |
|||
} |
|||
//判断时间是否正确
|
|||
String begin = ExcelUtil.getCellValue(row.getCell(3)); |
|||
String end = ExcelUtil.getCellValue(row.getCell(4)); |
|||
if (StrUtil.isEmpty(begin) || StrUtil.isEmpty(end)) { |
|||
throw new BaseException(BasicsCodeError.WBS_NOT_PROJECT_TIME.addMsg(wbsSheet.getSheetName(),projectStart+1)); |
|||
} |
|||
long bTime; |
|||
long eTime; |
|||
try { |
|||
bTime = Long.parseLong(beginTime); |
|||
eTime = Long.parseLong(endTime); |
|||
} catch (Exception e) { |
|||
//日期格式错误
|
|||
throw new BaseException(BasicsCodeError.WBS_PROJECT_TIME_ERROR.addMsg(wbsSheet.getSheetName(),projectStart+1)); |
|||
} |
|||
//添加项目信息(任务详情)
|
|||
ProTaskDetail taskDetail = new ProTaskDetail(); |
|||
if (0 == project.getImportType()) { |
|||
taskDetail.setId(snowflake.nextId()); |
|||
} |
|||
if (1 == project.getImportType()) { |
|||
taskDetail.setId(projectId); |
|||
} |
|||
taskDetail.setName(projectName); |
|||
taskDetail.setDescription(description); |
|||
if (0 == project.getImportType()){ |
|||
taskDetailDao.insertSelective(taskDetail); |
|||
} |
|||
if (1 == project.getImportType()){ |
|||
taskDetailDao.updateByPrimaryKeySelective(taskDetail); |
|||
} |
|||
project.setId(taskDetail.getId()); |
|||
project.setName(projectName); |
|||
//添加(任务分解)
|
|||
ProTaskSub taskSub = new ProTaskSub(); |
|||
taskSub.setId(snowflake.nextId()); |
|||
taskSub.setTaskDetailId(taskDetail.getId()); |
|||
taskSub.setPlanStartTime(bTime); |
|||
taskSub.setPlanEndTime(eTime); |
|||
taskSub.setPlanDuration(eTime - bTime); |
|||
taskSubDao.insertSelective(taskSub); |
|||
project.setBeginTime(bTime); |
|||
project.setEndTime(eTime); |
|||
//添加版本信息
|
|||
ProTaskVersion taskVersion = new ProTaskVersion(); |
|||
taskVersion.setId(snowflake.nextId()); |
|||
taskVersion.setTaskDetailId(taskDetail.getId()); |
|||
taskVersion.setTaskVersionInfo(version); |
|||
taskVersion.setAddress(address); |
|||
taskVersionMapper.insertSelective(taskVersion); |
|||
//查找项目标签
|
|||
Long labelId = labelDao.getLabelByTypeAndLevel(1, 0); |
|||
//添加任务标签关联信息
|
|||
saveLabelTask(taskDetail.getId(), labelId); |
|||
|
|||
return project; |
|||
} |
|||
|
|||
/** |
|||
* 添加任务标签关联 |
|||
*/ |
|||
private void saveLabelTask(Long taskDetailId,Long labelId) { |
|||
//添加标签
|
|||
LabelBusiness labelBusiness = new LabelBusiness(); |
|||
labelBusiness.setId(snowflake.nextId()); |
|||
labelBusiness.setBusinessType((byte) 0); |
|||
labelBusiness.setBusinessId(taskDetailId); |
|||
labelBusiness.setLabelId(labelId); |
|||
labelBusinessDao.insertSelective(labelBusiness); |
|||
} |
|||
|
|||
/** |
|||
* 读取项目成员表 |
|||
*/ |
|||
private void readMemberSheet(XSSFSheet memberSheet,ProjectVo.SysProject project, Map<String, Long> roleMap, Map<String, RoleDto.WbsMember> memberMap) { |
|||
//系统角色id
|
|||
Long sysRoleId = null; |
|||
//项目角色id
|
|||
Long roleId = null; |
|||
//如果是修改WBS,先进行删除
|
|||
if (1 == project.getImportType()){ |
|||
//删除角色和成员
|
|||
List<Long> roleIdList = roleDao.queryRoleListOfProject(project.getId()); |
|||
ProRole role = new ProRole(); |
|||
role.setRecStatus((byte)2); |
|||
ProRoleExample roleExample = new ProRoleExample(); |
|||
roleExample.createCriteria().andIdIn(roleIdList); |
|||
roleDao.updateByExampleSelective(role,roleExample); |
|||
List<Long> memberIdList = memberDao.queryMembersOfProject(project.getId()); |
|||
ProMember member = new ProMember(); |
|||
member.setRecStatus((byte)2); |
|||
ProMemberExample memberExample = new ProMemberExample(); |
|||
memberExample.createCriteria().andIdIn(memberIdList); |
|||
memberDao.updateByExampleSelective(member,memberExample); |
|||
//删除奖惩干系人
|
|||
ProMemberStakeholder memberStakeholder = new ProMemberStakeholder(); |
|||
memberStakeholder.setRecStatus((byte)2); |
|||
ProMemberStakeholderExample memberStakeholderExample = new ProMemberStakeholderExample(); |
|||
memberStakeholderExample.createCriteria().andMemeberIdIn(memberIdList); |
|||
memberStakeholderMapper.updateByExampleSelective(memberStakeholder,memberStakeholderExample); |
|||
//删除对谁不可见
|
|||
ProRoleRepulsion roleRepulsion = new ProRoleRepulsion(); |
|||
roleRepulsion.setRecStatus((byte)2); |
|||
ProRoleRepulsionExample roleRepulsionExample = new ProRoleRepulsionExample(); |
|||
roleRepulsionExample.createCriteria().andRoleIdIn(roleIdList); |
|||
repulsionDao.updateByExampleSelective(roleRepulsion,roleRepulsionExample); |
|||
//删除角色成员关联
|
|||
ProRoleMember roleMember = new ProRoleMember(); |
|||
roleMember.setRecStatus((byte)2); |
|||
ProRoleMemberExample roleMemberExample = new ProRoleMemberExample(); |
|||
roleMemberExample.createCriteria().andRoleIdIn(roleIdList); |
|||
roleMemberDao.updateByExampleSelective(roleMember,roleMemberExample); |
|||
} |
|||
|
|||
for (int i = 2; i <= memberSheet.getLastRowNum(); i++) { |
|||
//获取当前行
|
|||
XSSFRow row = memberSheet.getRow(i); |
|||
if(ObjectUtil.isNull(row)){ continue; } |
|||
//系统角色名
|
|||
String sysRole = StringUtil.replaceStrSpace(ExcelUtil.getCellValue(row.getCell(1))); |
|||
if(StrUtil.isEmpty(sysRole) && ObjectUtil.isNull(sysRoleId)){ |
|||
continue; |
|||
} |
|||
//验证系统角色(查询标签)
|
|||
if(StrUtil.isNotEmpty(sysRole) && !"/".equalsIgnoreCase(sysRole)){ |
|||
Long labelId = subLabelDao.getLabelByName(5,sysRole); |
|||
if(ObjectUtil.isNull(labelId)){ |
|||
throw new BaseException(BasicsCodeError.WBS_NOT_FIRST_ROLE.addMsg(memberSheet.getSheetName(),i+1,sysRole)); |
|||
} |
|||
sysRoleId = labelId; |
|||
} |
|||
//项目角色
|
|||
String roleName = StringUtil.replaceStrSpace(ExcelUtil.getCellValue(row.getCell(2))); |
|||
if((StrUtil.isEmpty(roleName) || "/".equalsIgnoreCase(roleName)) && ObjectUtil.isNull(roleId)){ continue; } |
|||
//成员
|
|||
String memberName = StringUtil.replaceStrSpace(ExcelUtil.getCellValue(row.getCell(3))); |
|||
|
|||
//角色手机号
|
|||
String memberPhone = StringUtil.replaceStrSpace(ExcelUtil.getCellValue(row.getCell(4))); |
|||
if((StrUtil.isNotEmpty(memberName) && !"/".equalsIgnoreCase(memberName)) && (StrUtil.isEmpty(memberPhone) || !memberPhone.matches(BasicsConstant.PHONE_REGEX))){ |
|||
throw new BaseException(BasicsCodeError.WBS_PHONE_ERROR.addMsg(memberSheet.getSheetName(),i+1,memberPhone)); |
|||
} |
|||
//奖惩干系人
|
|||
String stakeholderName = StringUtil.replaceStrSpace(ExcelUtil.getCellValue(row.getCell(5))); |
|||
//干系人电话
|
|||
String stakeholderPhone = StringUtil.replaceStrSpace(ExcelUtil.getCellValue(row.getCell(6))); |
|||
if((StrUtil.isNotEmpty(stakeholderName) && !"/".equalsIgnoreCase(stakeholderName)) && (StrUtil.isEmpty(stakeholderPhone) || !stakeholderPhone.matches(BasicsConstant.PHONE_REGEX))){ |
|||
throw new BaseException(BasicsCodeError.WBS_PHONE_ERROR.addMsg(memberSheet.getSheetName(),i+1,stakeholderName)); |
|||
} |
|||
//添加角色
|
|||
if(StrUtil.isNotEmpty(roleName) && !"/".equalsIgnoreCase(roleName)){ |
|||
ProRole role = new ProRole(); |
|||
role.setId(snowflake.nextId()); |
|||
role.setName(roleName); |
|||
role.setProjectId(project.getId()); |
|||
role.setLabelId(sysRoleId); |
|||
roleDao.insertSelective(role); |
|||
roleId = role.getId(); |
|||
roleMap.put(roleName,role.getId()); |
|||
} |
|||
//添加成员
|
|||
if(StrUtil.isNotEmpty(memberName) && !"/".equalsIgnoreCase(roleName)){ |
|||
//如果成员名和手机号重复当做一个人来处理
|
|||
RoleDto.WbsMember wbsMembers = memberMap.get(memberName + "_" + memberPhone); |
|||
Long memberId = null; |
|||
if(ObjectUtil.isNotNull(wbsMembers)){ |
|||
memberId = wbsMembers.getId(); |
|||
} |
|||
if(ObjectUtil.isNull(memberId)){ |
|||
//根据成员手机号查找userId 成员关联userId
|
|||
Long userId = userDao.getUserIdByPhone(memberPhone); |
|||
//添加成员至数据库
|
|||
ProMember proMember = new ProMember(); |
|||
proMember.setId(snowflake.nextId()); |
|||
proMember.setName(memberName); |
|||
proMember.setPhone(memberPhone); |
|||
proMember.setProjectId(project.getId()); |
|||
proMember.setUserId(userId); |
|||
memberDao.insertSelective(proMember); |
|||
RoleDto.WbsMember member = new RoleDto.WbsMember(proMember.getId(),userId); |
|||
memberMap.put(memberName+"_"+memberPhone,member); |
|||
memberId = proMember.getId(); |
|||
} |
|||
//添加角色成员关联信息
|
|||
ProRoleMember roleMember = new ProRoleMember(); |
|||
roleMember.setId(snowflake.nextId()); |
|||
roleMember.setRoleId(roleId); |
|||
roleMember.setMemberId(memberId); |
|||
roleMemberDao.insertSelective(roleMember); |
|||
//添加奖惩干系人
|
|||
if(StrUtil.isNotEmpty(stakeholderName) && !"/".equalsIgnoreCase(roleName)){ |
|||
//根据干系人手机号查找userId 奖惩干系人关联userId
|
|||
Long userId = userDao.getUserIdByPhone(memberPhone); |
|||
ProMemberStakeholder memberStakeholder = new ProMemberStakeholder(); |
|||
memberStakeholder.setId(snowflake.nextId()); |
|||
memberStakeholder.setMemeberId(memberId); |
|||
memberStakeholder.setStakeholderName(stakeholderName); |
|||
memberStakeholder.setStakeholderPhone(stakeholderPhone); |
|||
memberStakeholder.setUserId(userId); |
|||
memberStakeholderMapper.insertSelective(memberStakeholder); |
|||
} |
|||
} |
|||
} |
|||
//添加对谁不可见
|
|||
roleRepulsion(memberSheet, roleMap); |
|||
|
|||
} |
|||
|
|||
/** |
|||
* 处理对谁不可见 |
|||
*/ |
|||
private void roleRepulsion(XSSFSheet memberSheet, Map<String, Long> roleMap) { |
|||
//角色排斥表需要的角色id
|
|||
Long roleIdRepulsion = null; |
|||
for (int i = 2; i <= memberSheet.getLastRowNum(); i++) { |
|||
//获取当前行
|
|||
XSSFRow row = memberSheet.getRow(i); |
|||
if(ObjectUtil.isNull(row)){ continue; } |
|||
//项目角色
|
|||
String roleName = StringUtil.replaceStrSpace(ExcelUtil.getCellValue(row.getCell(2))); |
|||
if(StrUtil.isNotEmpty(roleName)){ |
|||
roleIdRepulsion = roleMap.get(roleName); |
|||
} |
|||
if(ObjectUtil.isNull(roleIdRepulsion)){ |
|||
continue; |
|||
} |
|||
//对谁不可见
|
|||
String repulsion = StringUtil.replaceStrSpace(ExcelUtil.getCellValue(row.getCell(7))); |
|||
if(StrUtil.isEmpty(repulsion)){ |
|||
continue; |
|||
} |
|||
//分解对谁不可见
|
|||
String[] split = repulsion.split(BasicsConstant.STRING_REGEX); |
|||
for (String repulsionName : split) { |
|||
Long repulsionId = roleMap.get(repulsionName); |
|||
if (ObjectUtil.isNull(repulsionId)) { |
|||
throw new BaseException(BasicsCodeError.WBS_NOT_FIND_ROLE.addMsg(memberSheet.getSheetName(),i+1,repulsionName)); |
|||
} |
|||
//添加数据
|
|||
ProRoleRepulsion roleRepulsion = new ProRoleRepulsion(); |
|||
roleRepulsion.setId(snowflake.nextId()); |
|||
roleRepulsion.setRoleId(roleIdRepulsion); |
|||
roleRepulsion.setRepulsionRoleId(repulsionId); |
|||
repulsionDao.insertSelective(roleRepulsion); |
|||
} |
|||
} |
|||
} |
|||
|
|||
/** |
|||
* 读取任务信息 |
|||
*/ |
|||
private void readTask(XSSFSheet wbsSheet, int taskStart, ProjectVo.SysProject project, Map<String, Long> roleMap, Map<String, Object> taskMap) { |
|||
|
|||
//一级任务id
|
|||
Long firstTaskId = null; |
|||
Long taskStartTime = project.getBeginTime(); |
|||
|
|||
//如果是修改WBS需要先删除
|
|||
if (1 == project.getImportType()) { |
|||
List<Long> allTaskId = parentTaskMapper.queryAllTaskIdByProjectId(project.getId()); |
|||
//删除所有的任务详情
|
|||
ProTaskDetail taskDetail = new ProTaskDetail(); |
|||
taskDetail.setRecStatus((byte)2); |
|||
ProTaskDetailExample taskDetailExample = new ProTaskDetailExample(); |
|||
taskDetailExample.createCriteria().andIdIn(allTaskId); |
|||
taskDetailDao.updateByExampleSelective(taskDetail,taskDetailExample); |
|||
//删除所有的分解任务
|
|||
ProTaskSub taskSub = new ProTaskSub(); |
|||
taskSub.setRecStatus((byte)2); |
|||
ProTaskSubExample taskSubExample = new ProTaskSubExample(); |
|||
taskSubExample.createCriteria().andTaskDetailIdIn(allTaskId); |
|||
taskSubDao.updateByExampleSelective(taskSub,taskSubExample); |
|||
//删除所有的任务标签
|
|||
LabelBusiness labelBusiness = new LabelBusiness(); |
|||
labelBusiness.setRecStatus((byte)2); |
|||
LabelBusinessExample labelBusinessExample = new LabelBusinessExample(); |
|||
labelBusinessExample.createCriteria().andBusinessIdIn(allTaskId); |
|||
labelBusinessDao.updateByExampleSelective(labelBusiness,labelBusinessExample); |
|||
//删除任务角色关联表
|
|||
ProRoleTask roleTask = new ProRoleTask(); |
|||
roleTask.setRecStatus((byte)2); |
|||
ProRoleTaskExample roleTaskExample = new ProRoleTaskExample(); |
|||
roleTaskExample.createCriteria().andTaskIdIn(allTaskId); |
|||
roleTaskMapper.updateByExampleSelective(roleTask,roleTaskExample); |
|||
//删除任务插件关联信息
|
|||
ProTaskPlugin taskPlugin = new ProTaskPlugin(); |
|||
taskPlugin.setRecStatus((byte)2); |
|||
ProTaskPluginExample taskPluginExample = new ProTaskPluginExample(); |
|||
taskPluginExample.createCriteria().andTaskDetailIdIn(allTaskId); |
|||
proTaskPluginDao.updateByExampleSelective(taskPlugin,taskPluginExample); |
|||
//删除任务关系表
|
|||
allTaskId.add(project.getId()); |
|||
ProParentTask parentTask = new ProParentTask(); |
|||
parentTask.setRecStatus((byte)2); |
|||
ProParentTaskExample parentTaskExample = new ProParentTaskExample(); |
|||
parentTaskExample.createCriteria().andTaskDetailIdIn(allTaskId); |
|||
parentTaskMapper.updateByExampleSelective(parentTask,parentTaskExample); |
|||
} |
|||
|
|||
for (int i = taskStart + 1; i <= wbsSheet.getLastRowNum(); i++) { |
|||
//获取当前行
|
|||
XSSFRow row = wbsSheet.getRow(i); |
|||
if(ObjectUtil.isNull(row)){ continue; } |
|||
//序号
|
|||
String sequence = StringUtil.replaceStrSpace(ExcelUtil.getCellValue(row.getCell(0))); |
|||
//一级任务名
|
|||
String firstTaskName = StringUtil.replaceStrSpace(ExcelUtil.getCellValue(row.getCell(1))); |
|||
if(StrUtil.isEmpty(firstTaskName) && ObjectUtil.isNull(firstTaskId)){ |
|||
continue; |
|||
} |
|||
if(StrUtil.isNotEmpty(firstTaskName)){ |
|||
//添加一级任务
|
|||
firstTaskId = saveFirstTask(project, firstTaskName); |
|||
} |
|||
//二级任务名
|
|||
String taskName = StringUtil.replaceStrSpace(ExcelUtil.getCellValue(row.getCell(2))); |
|||
if(StrUtil.isEmpty(taskName)){ |
|||
continue; |
|||
} |
|||
//任务描述
|
|||
String description = StringUtil.replaceStrSpace(ExcelUtil.getCellValue(row.getCell(3))); |
|||
//重要性标签
|
|||
String vitalLabel = StringUtil.replaceStrSpace(ExcelUtil.getCellValue(row.getCell(7))); |
|||
//负责人
|
|||
String executorRole = StringUtil.replaceStrSpace(ExcelUtil.getCellValue(row.getCell(8))); |
|||
//开始时间
|
|||
String beginTime = StringUtil.replaceStrSpace(ExcelUtil.getCellValue(row.getCell(4))); |
|||
//结束时间
|
|||
String endTime = StringUtil.replaceStrSpace(ExcelUtil.getCellValue(row.getCell(5))); |
|||
//时长
|
|||
String duration = StringUtil.replaceStrSpace(ExcelUtil.getCellValue(row.getCell(6))); |
|||
//插件
|
|||
String plugin1 = StringUtil.replaceStrSpace(ExcelUtil.getCellValue(row.getCell(12))); |
|||
String plugin2 = StringUtil.replaceStrSpace(ExcelUtil.getCellValue(row.getCell(13))); |
|||
String plugin3 = StringUtil.replaceStrSpace(ExcelUtil.getCellValue(row.getCell(14))); |
|||
if(StrUtil.isNotEmpty(taskName)){ |
|||
//添加二级任务信息(任务详情)
|
|||
ProTaskDetail taskDetail = new ProTaskDetail(); |
|||
taskDetail.setId(snowflake.nextId()); |
|||
taskDetail.setName(taskName); |
|||
taskDetail.setDescription(description); |
|||
taskDetailDao.insertSelective(taskDetail); |
|||
//任务关联信息(关联一级任务)
|
|||
ProParentTask parentTask = new ProParentTask(); |
|||
parentTask.setId(snowflake.nextId()); |
|||
parentTask.setTaskDetailId(taskDetail.getId()); |
|||
parentTask.setParentTaskDetailId(firstTaskId); |
|||
parentTaskMapper.insertSelective(parentTask); |
|||
//查找重要性标签
|
|||
Long labelId = subLabelDao.getLabelByName(2,vitalLabel); |
|||
if(ObjectUtil.isNull(labelId)){ |
|||
throw new BaseException(BasicsCodeError.TASK_VITAL_LABEL_ERROR.addMsg(wbsSheet.getSheetName(),i+1,vitalLabel)); |
|||
} |
|||
LabelBusiness labelBusiness = new LabelBusiness(); |
|||
labelBusiness.setId(snowflake.nextId()); |
|||
labelBusiness.setBusinessType((byte) 0); |
|||
labelBusiness.setBusinessId(taskDetail.getId()); |
|||
labelBusiness.setLabelId(labelId); |
|||
labelBusinessDao.insertSelective(labelBusiness); |
|||
//任务和角色关联
|
|||
if(StrUtil.isEmpty(executorRole)){ |
|||
throw new BaseException(BasicsCodeError.WBS_NOT_FIND_ROLE.addMsg(wbsSheet.getSheetName(),i+1,executorRole)); |
|||
} |
|||
String[] split = executorRole.split(BasicsConstant.STRING_REGEX); |
|||
for (String repulsionName : split) { |
|||
Long executorRoleId = roleMap.get(repulsionName); |
|||
if(ObjectUtil.isNull(executorRoleId)){ |
|||
throw new BaseException(BasicsCodeError.WBS_NOT_FIND_ROLE.addMsg(wbsSheet.getSheetName(),i+1,repulsionName)); |
|||
} |
|||
ProRoleTask roleTask = new ProRoleTask(); |
|||
roleTask.setId(snowflake.nextId()); |
|||
roleTask.setRoleId(executorRoleId); |
|||
roleTask.setTaskId(taskDetail.getId()); |
|||
roleTaskMapper.insertSelective(roleTask); |
|||
} |
|||
|
|||
//处理时间、添加任务分解、添加任务标签
|
|||
taskStartTime = taskSaveTime(taskStartTime, project, beginTime, endTime, duration, taskDetail.getId(),wbsSheet,i+1); |
|||
//添加时间颗粒度标签并关联
|
|||
Long timeLabel = labelDao.getLabelByTypeAndLevel(0, 4); |
|||
saveLabelTask(taskDetail.getId(),timeLabel); |
|||
//插件
|
|||
Long taskPlugin1 = plugin(plugin1,taskDetail.getId(),1,wbsSheet,i+1); |
|||
Long taskPlugin2 = plugin(plugin2,taskDetail.getId(),2,wbsSheet,i+1); |
|||
Long taskPlugin3 = plugin(plugin3,taskDetail.getId(),3,wbsSheet,i+1); |
|||
TaskDto.TaskPluginId taskPlugin = new TaskDto.TaskPluginId(taskPlugin1,taskPlugin2,taskPlugin3); |
|||
taskMap.put(sequence + "_" + taskName, taskPlugin); |
|||
} |
|||
//TODO 检查人
|
|||
//TODO 及时奖惩
|
|||
//TODO 交付物
|
|||
//TODO 添加默认插件
|
|||
} |
|||
} |
|||
private Long plugin(String plugin,Long taskId,int row,XSSFSheet wbsSheet,int errorRow) { |
|||
Long taskPlugin = null; |
|||
if(StrUtil.isNotEmpty(plugin)){ |
|||
//根据插件名称查找插件id
|
|||
Long pluginId = sTaskPluginDao.getPluginIdByName(plugin); |
|||
if(ObjectUtil.isNull(pluginId)){ |
|||
throw new BaseException(BasicsCodeError.PLUGIN_NAME_ERROR.addMsg(wbsSheet.getSheetName(),errorRow,plugin)); |
|||
} |
|||
//添加插件
|
|||
ProTaskPlugin proTaskPlugin = new ProTaskPlugin(); |
|||
proTaskPlugin.setId(snowflake.nextId()); |
|||
proTaskPlugin.setTaskDetailId(taskId); |
|||
proTaskPlugin.setPluginId(pluginId); |
|||
proTaskPlugin.setPlginRow(row); |
|||
proTaskPlugin.setPlginCol(1); |
|||
proTaskPlugin.setRowspan(1); |
|||
proTaskPlugin.setColspan(1); |
|||
proTaskPluginDao.insertSelective(proTaskPlugin); |
|||
taskPlugin = proTaskPlugin.getId(); |
|||
} |
|||
return taskPlugin; |
|||
} |
|||
|
|||
private Long taskSaveTime(Long taskStartTime,ProjectVo.SysProject project, String beginTime, String endTime, String duration, Long taskDetailId,XSSFSheet wbsSheet,int row) { |
|||
|
|||
if(StrUtil.isEmpty(beginTime) || "日常".equalsIgnoreCase(beginTime)){ |
|||
if(StrUtil.isEmpty(beginTime) && StrUtil.isNotEmpty(duration)){ |
|||
//获取时长内的字符串
|
|||
String str = "[0-9]"; |
|||
Pattern pStr = Pattern.compile(str); |
|||
Matcher mStr = pStr.matcher(duration); |
|||
String trimStr = mStr.replaceAll("").trim(); |
|||
Long aLong = BasicsConstant.WBS_DURATION.get(trimStr); |
|||
if(ObjectUtil.isNull(aLong)){ |
|||
throw new BaseException(BasicsCodeError.WBS_PROJECT_TIME_ERROR.addMsg(wbsSheet.getSheetName(),row)); |
|||
} |
|||
//获取字符串内的数字
|
|||
String num = "[^0-9]"; |
|||
Pattern pNum = Pattern.compile(num); |
|||
Matcher mNum = pNum.matcher(duration); |
|||
String trimNum = mNum.replaceAll("").trim(); |
|||
//计算时长
|
|||
Long durationTime = Long.parseLong(trimNum) * aLong; |
|||
//添加任务分解
|
|||
ProTaskSub taskSub = new ProTaskSub(); |
|||
taskSub.setId(snowflake.nextId()); |
|||
taskSub.setTaskDetailId(taskDetailId); |
|||
taskSub.setPlanDuration(durationTime); |
|||
taskSub.setPlanStartTime(taskStartTime); |
|||
taskStartTime += durationTime; |
|||
taskSub.setPlanEndTime(taskStartTime); |
|||
taskSubDao.insertSelective(taskSub); |
|||
//查找定期任务标签并关联任务
|
|||
Long taskLabel = labelDao.getLabelByTypeAndLevel(1, 3); |
|||
saveLabelTask(taskDetailId,taskLabel); |
|||
|
|||
}else { |
|||
//添加任务分解
|
|||
ProTaskSub taskSub = new ProTaskSub(); |
|||
taskSub.setId(snowflake.nextId()); |
|||
taskSub.setTaskDetailId(taskDetailId); |
|||
taskSubDao.insertSelective(taskSub); |
|||
//查找日常任务标签并关联信息
|
|||
Long label = labelDao.getLabelByTypeAndLevel(1, 2); |
|||
saveLabelTask(taskDetailId,label); |
|||
} |
|||
}else { |
|||
Long bTime; |
|||
Long eTime; |
|||
try { |
|||
bTime = Long.parseLong(beginTime); |
|||
eTime = StrUtil.isEmpty(endTime) ? project.getEndTime() : Long.parseLong(endTime); |
|||
//添加任务分解
|
|||
ProTaskSub taskSub = new ProTaskSub(); |
|||
taskSub.setId(snowflake.nextId()); |
|||
taskSub.setTaskDetailId(taskDetailId); |
|||
taskSub.setPlanEndTime(eTime); |
|||
taskSub.setPlanStartTime(bTime); |
|||
taskSub.setPlanDuration(eTime - bTime); |
|||
taskSubDao.insertSelective(taskSub); |
|||
//查找定期任务标签并关联任务
|
|||
Long taskLabel = labelDao.getLabelByTypeAndLevel(1, 3); |
|||
saveLabelTask(taskDetailId,taskLabel); |
|||
// //添加时间颗粒度标签并关联
|
|||
// Long timeLabel = subLabelDao.getLabelByTypeAndLevel(0, 4);
|
|||
// saveLabelTask(taskDetailId,timeLabel);
|
|||
}catch (Exception e){ |
|||
Date startDate = new Date(project.getBeginTime()); |
|||
Date endDate = new Date(project.getEndTime()); |
|||
try { |
|||
List<CronConstant.TaskDate> taskDateList = |
|||
NatureToDate.generateDates(beginTime, startDate, endDate); |
|||
if (CollectionUtil.isEmpty(taskDateList)) { |
|||
return taskStartTime; |
|||
} |
|||
List<ProTaskSub> proTaskSubList = new ArrayList<>(); |
|||
for (CronConstant.TaskDate taskDate : taskDateList) { |
|||
|
|||
ProTaskSub proTaskSub = new ProTaskSub(); |
|||
proTaskSub.setId(snowflake.nextId()); |
|||
proTaskSub.setTaskDetailId(taskDetailId); |
|||
proTaskSub.setPlanStartTime(taskDate.getStartDate().getTime()); |
|||
proTaskSub.setPlanEndTime(taskDate.getEndDate().getTime()); |
|||
proTaskSub.setPlanDuration(proTaskSub.getPlanEndTime() - proTaskSub.getPlanStartTime()); |
|||
proTaskSubList.add(proTaskSub); |
|||
} |
|||
if(CollectionUtil.isNotEmpty(proTaskSubList)){ |
|||
sTaskDao.insertSelectiveList(proTaskSubList); |
|||
} |
|||
//查找定期任务标签并关联任务
|
|||
Long taskLabel = labelDao.getLabelByTypeAndLevel(1, 3); |
|||
saveLabelTask(taskDetailId,taskLabel); |
|||
}catch (Exception e1){ |
|||
throw new BaseException(String.valueOf(e1)); |
|||
// throw new BaseException(SportsCodeError.WBS_PROJECT_TIME_ERROR);
|
|||
} |
|||
} |
|||
} |
|||
return taskStartTime; |
|||
} |
|||
|
|||
|
|||
/** |
|||
* 添加一级任务 |
|||
*/ |
|||
private Long saveFirstTask(ProjectVo.SysProject project, String firstTaskName) { |
|||
//TODO 一级任务负责人是项目经理
|
|||
Long firstTaskId; |
|||
ProTaskDetail taskDetail = new ProTaskDetail(); |
|||
taskDetail.setId(snowflake.nextId()); |
|||
taskDetail.setName(firstTaskName); |
|||
taskDetailDao.insertSelective(taskDetail); |
|||
firstTaskId = taskDetail.getId(); |
|||
//添加任务分解
|
|||
ProTaskSub taskSub = new ProTaskSub(); |
|||
taskSub.setId(snowflake.nextId()); |
|||
taskSub.setTaskDetailId(taskDetail.getId()); |
|||
taskSub.setPlanStartTime(project.getBeginTime()); |
|||
taskSub.setPlanEndTime(project.getEndTime()); |
|||
taskSub.setPlanDuration(project.getEndTime() - project.getBeginTime()); |
|||
taskSubDao.insertSelective(taskSub); |
|||
//任务关联信息(关联项目)
|
|||
ProParentTask parentTask = new ProParentTask(); |
|||
parentTask.setId(snowflake.nextId()); |
|||
parentTask.setTaskDetailId(taskDetail.getId()); |
|||
parentTask.setParentTaskDetailId(project.getId()); |
|||
parentTaskMapper.insertSelective(parentTask); |
|||
//查找一级任务标签
|
|||
Long labelId = labelDao.getLabelByTypeAndLevel(1, 1); |
|||
//添加任务标签关联信息
|
|||
saveLabelTask(taskDetail.getId(), labelId); |
|||
return firstTaskId; |
|||
} |
|||
} |
|||
|
|||
|
@ -1,33 +0,0 @@ |
|||
package com.ccsens.ptccsens.service; |
|||
|
|||
import com.ccsens.common.bean.dto.CMemberDto; |
|||
import com.ccsens.common.service.IMemberService; |
|||
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; |
|||
|
|||
@Slf4j |
|||
@Service |
|||
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) |
|||
public class UserService implements IUserService{ |
|||
|
|||
@Resource |
|||
private IMemberService memberService; |
|||
|
|||
@Override |
|||
public void memberWithPhone(CMemberDto.PhoneAndUserId params) { |
|||
memberService.relevancePhone(params); |
|||
} |
|||
|
|||
@Override |
|||
public void mergeUser(CMemberDto.MergeUser params) { |
|||
//最小项目关联的userId
|
|||
memberService.mergeUser(params); |
|||
//TODO 其他业务
|
|||
} |
|||
|
|||
|
|||
} |
@ -1,4 +1,4 @@ |
|||
spring: |
|||
profiles: |
|||
active: dev |
|||
include: common, util-dev |
|||
active: test |
|||
include: common, util-test |
|||
|
@ -0,0 +1,15 @@ |
|||
<?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"> |
|||
<mapper namespace="com.ccsens.ptccsens.persist.dao.ProMemberDao"> |
|||
<select id="findUserOfMemberId" resultType="java.lang.Long"> |
|||
SELECT |
|||
id |
|||
FROM |
|||
t_pro_member |
|||
WHERE |
|||
rec_status = 0 |
|||
AND project_id = #{projectId} |
|||
AND user_id = #{userId} |
|||
limit 1 |
|||
</select> |
|||
</mapper> |
@ -0,0 +1,25 @@ |
|||
<?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"> |
|||
<mapper namespace="com.ccsens.ptccsens.persist.dao.ProTaskDetailDao"> |
|||
<select id="projectIdByTaskDetailId" resultType="java.lang.Long"> |
|||
SELECT |
|||
b.business_id |
|||
FROM |
|||
(SELECT l.id as labelId FROM t_label l LEFT JOIN t_label_type lt on l.label_type_id = lt.id WHERE lt.label_type = 1 and l.level = 0 and l.rec_status = 0 and lt.rec_status = 0) l, |
|||
(SELECT |
|||
@r as _id , |
|||
@r:=(SELECT @r:=parent_task_detail_id FROM t_pro_parent_task WHERE task_detail_id = _id and rec_status = 0) as parentId |
|||
FROM |
|||
(SELECT @r := #{taskDetailId}) d, |
|||
t_pro_parent_task p |
|||
WHERE |
|||
@r is not null |
|||
)p, |
|||
t_label_business b |
|||
WHERE |
|||
l.labelId = b.label_id |
|||
and p.parentId = b.business_id |
|||
and b.rec_status = 0 |
|||
limit 1 |
|||
</select> |
|||
</mapper> |
@ -1,25 +0,0 @@ |
|||
<?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"> |
|||
<mapper namespace="com.ccsens.ptccsens.persist.dao.SPluginDao"> |
|||
|
|||
<select id="getPluginIdByName" resultType="java.lang.Long"> |
|||
SELECT |
|||
id |
|||
FROM |
|||
`plugin`.t_pro_plugin |
|||
WHERE |
|||
`name` = #{pluginName} |
|||
and rec_status = 0 |
|||
limit 1 |
|||
</select> |
|||
|
|||
<update id="updateParamById"> |
|||
update |
|||
t_pro_task_plugin |
|||
set |
|||
param = #{param} |
|||
where |
|||
id = #{taskPluginId} |
|||
and rec_status = 0 |
|||
</update> |
|||
</mapper> |
@ -1,50 +0,0 @@ |
|||
<?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"> |
|||
<mapper namespace="com.ccsens.ptccsens.persist.dao.SProjectDao"> |
|||
|
|||
<update id="updateStatusById"> |
|||
UPDATE t_pro_task_detail |
|||
SET rec_status = 2 |
|||
WHERE |
|||
id = #{projectId} |
|||
</update> |
|||
|
|||
<select id="queryByCreator" resultType="com.ccsens.ptccsens.bean.vo.ProjectVo$SysProject"> |
|||
SELECT |
|||
t.id, |
|||
t.`name` |
|||
FROM |
|||
t_pro_member m, |
|||
t_pro_role_member rm, |
|||
t_pro_role r, |
|||
t_label l, |
|||
t_pro_task_detail t |
|||
WHERE |
|||
m.id = rm.member_id |
|||
and r.id = rm.role_id |
|||
and r.label_id = l.id |
|||
and l.`level` = 5 |
|||
and r.project_id = t.id |
|||
and m.user_id = #{userId} |
|||
and m.rec_status = 0 |
|||
and rm.rec_status = 0 |
|||
and r.rec_status = 0 |
|||
and t.rec_status = 0 |
|||
and l.rec_status = 0 |
|||
</select> |
|||
|
|||
<select id="selectById" resultType="com.ccsens.ptccsens.bean.vo.ProjectVo$SysProject"> |
|||
SELECT |
|||
d.id, |
|||
d.`name`, |
|||
s.plan_start_time AS beginTime, |
|||
s.plan_end_time AS endTime |
|||
FROM |
|||
t_pro_task_detail AS d |
|||
LEFT JOIN t_pro_task_sub AS s ON d.id = s.task_detail_id |
|||
WHERE |
|||
d.rec_status = 0 |
|||
AND s.rec_status = 0 |
|||
AND d.id = #{projectId} |
|||
</select> |
|||
</mapper> |
@ -1,38 +0,0 @@ |
|||
<?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"> |
|||
<mapper namespace="com.ccsens.ptccsens.persist.dao.STaskDao"> |
|||
|
|||
<insert id="insertSelectiveList"> |
|||
INSERT INTO t_pro_task_sub |
|||
( |
|||
id, |
|||
task_detail_id, |
|||
plan_start_time, |
|||
plan_end_time, |
|||
plan_duration |
|||
) |
|||
VALUES |
|||
<foreach collection="proTaskSubList" item="item" separator=","> |
|||
(#{item.id},#{item.taskDetailId},#{item.planStartTime},#{item.planEndTime},#{item.planDuration}) |
|||
</foreach> |
|||
</insert> |
|||
<select id="getNowTask" resultType="java.lang.Long"> |
|||
SELECT |
|||
s.id |
|||
FROM |
|||
t_pro_task_detail d |
|||
LEFT JOIN t_pro_parent_task p on d.id = p.task_detail_id |
|||
LEFT JOIN (SELECT * FROM t_pro_parent_task WHERE parent_task_detail_id = #{projectId}) p1 on p.parent_task_detail_id = p1.task_detail_id |
|||
LEFT JOIN |
|||
t_pro_task_sub s on d.id = s.task_detail_id and s.rec_status = 0 |
|||
WHERE |
|||
`name` = #{taskName} |
|||
and s.plan_start_time <= #{now} |
|||
and s.plan_end_time >= #{now} |
|||
and d.rec_status = 0 |
|||
and p.rec_status = 0 |
|||
and p1.rec_status = 0 |
|||
limit 1 |
|||
</select> |
|||
|
|||
</mapper> |
@ -1,29 +0,0 @@ |
|||
<?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"> |
|||
<mapper namespace="com.ccsens.ptccsens.persist.dao.SubLabelDao"> |
|||
|
|||
<select id="getLabelByName" resultType="java.lang.Long"> |
|||
SELECT |
|||
l.id |
|||
FROM |
|||
t_label l |
|||
LEFT JOIN t_label_type lt on l.label_type_id = lt.id |
|||
WHERE |
|||
lt.label_type = #{type} |
|||
and |
|||
l.description = #{sysRole} |
|||
limit 1 |
|||
</select> |
|||
<select id="getLabelByTypeAndLevel" resultType="java.lang.Long"> |
|||
SELECT |
|||
l.id |
|||
FROM |
|||
t_label l |
|||
LEFT JOIN t_label_type lt on l.label_type_id = lt.id |
|||
WHERE |
|||
lt.label_type = #{type} |
|||
and |
|||
l.level = #{level} |
|||
limit 1 |
|||
</select> |
|||
</mapper> |
Loading…
Reference in new issue