ProjectTaskServiceImpl.java 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. package com.ruoyi.project.service.impl;
  2. import com.ruoyi.common.core.domain.AjaxResult;
  3. import com.ruoyi.common.core.domain.entity.SysUser;
  4. import com.ruoyi.common.enums.UserRolesType;
  5. import com.ruoyi.common.exception.ServiceException;
  6. import com.ruoyi.common.utils.SecurityUtils;
  7. import com.ruoyi.common.utils.StringUtils;
  8. import com.ruoyi.common.utils.bean.BeanUtils;
  9. import com.ruoyi.common.utils.bean.BeanValidators;
  10. import com.ruoyi.project.bo.ProjectListInput;
  11. import com.ruoyi.project.bo.ProjectTaskListOut;
  12. import com.ruoyi.project.bo.ProjectTaskOut;
  13. import com.ruoyi.project.domain.ProjectStaff;
  14. import com.ruoyi.project.domain.ProjectTask;
  15. import com.ruoyi.project.mapper.ProjectStaffMapper;
  16. import com.ruoyi.project.mapper.ProjectTaskMapper;
  17. import com.ruoyi.project.service.ProjectTaskService;
  18. import com.ruoyi.system.service.ISysDeptService;
  19. import com.ruoyi.system.service.impl.SysUserServiceImpl;
  20. import org.slf4j.Logger;
  21. import org.slf4j.LoggerFactory;
  22. import org.springframework.beans.factory.annotation.Autowired;
  23. import org.springframework.stereotype.Service;
  24. import javax.validation.Validator;
  25. import java.util.List;
  26. import java.util.Set;
  27. @Service
  28. public class ProjectTaskServiceImpl implements ProjectTaskService {
  29. private static final Logger log = LoggerFactory.getLogger(ProjectTaskServiceImpl.class);
  30. @Autowired
  31. private ProjectTaskMapper projectTaskMapper;
  32. @Autowired
  33. private ProjectStaffMapper projectStaffMapper;
  34. @Autowired
  35. private ISysDeptService deptService;
  36. @Autowired
  37. protected Validator validator;
  38. @Override
  39. public AjaxResult addProjectTask(ProjectTask projectTask) {
  40. return AjaxResult.success(projectTaskMapper.insertSelective(projectTask));
  41. }
  42. @Override
  43. public AjaxResult deleteProject(ProjectTask in) {
  44. int i = projectTaskMapper.deleteByPrimaryKey(in.getId());
  45. if (i>0){
  46. projectStaffMapper.deleteBypid(in.getId());
  47. return AjaxResult.success();
  48. }
  49. return AjaxResult.error("项目编号不存在");
  50. }
  51. @Override
  52. public AjaxResult details(Long id) {
  53. ProjectTask projectTask = projectTaskMapper.selectByPrimaryKey(id);
  54. ProjectTaskOut out= new ProjectTaskOut();
  55. if (projectTask!=null){
  56. BeanUtils.copyBeanProp(out, projectTask);
  57. List<ProjectStaff> projectStaffs = projectStaffMapper.selectBypid(id);
  58. if (!projectStaffs.isEmpty())out.setList(projectStaffs);
  59. return AjaxResult.success(out);
  60. }
  61. return AjaxResult.error("项目不存在");
  62. }
  63. @Override
  64. public List<ProjectTaskListOut> list(ProjectListInput in) {
  65. if (in.getRoleType()==null)in.setRoleType(0);
  66. in.setUid(SecurityUtils.getUserId());
  67. Long companyId = deptService.selectCompanyByDeptId();
  68. if (companyId!=null)in.setCompanyId(companyId);
  69. if (in.getEndTime()!=null)in.setEndTime(in.getEndTime()+" 23:59:59");
  70. return projectTaskMapper.selectList(in);
  71. }
  72. @Override
  73. public String importProject(List<ProjectTaskListOut> list, boolean isUpdateSupport, String operName) {
  74. if (StringUtils.isNull(list) || list.size() == 0)
  75. {
  76. throw new ServiceException("导入用户数据不能为空!");
  77. }
  78. int successNum = 0;
  79. int failureNum = 0;
  80. StringBuilder successMsg = new StringBuilder();
  81. StringBuilder failureMsg = new StringBuilder();
  82. for (ProjectTaskListOut p : list)
  83. {
  84. try
  85. {
  86. // 验证是否存在这个用户
  87. ProjectTask projectTask = projectTaskMapper.selectByPrimaryKey(p.getId());
  88. if (StringUtils.isNull(projectTask)){
  89. BeanValidators.validateWithException(validator, projectTask);
  90. projectTaskMapper.insertSelective(projectTask);
  91. successNum++;
  92. successMsg.append("<br/>" + successNum + "、项目: " + projectTask.getName() + " 导入成功");
  93. }else if (isUpdateSupport){
  94. BeanValidators.validateWithException(validator, p);
  95. projectTaskMapper.updateByPrimaryKeySelective(p);
  96. successNum++;
  97. successMsg.append("<br/>" + successNum + "、项目: " + projectTask.getName() + " 更新成功");
  98. }
  99. else
  100. {
  101. failureNum++;
  102. failureMsg.append("<br/>" + failureNum + "、项目: " + projectTask.getName() + " 已存在");
  103. }
  104. }
  105. catch (Exception e)
  106. {
  107. failureNum++;
  108. String msg = "<br/>" + failureNum + "、项目: " + p.getName() + " 导入失败:";
  109. failureMsg.append(msg + e.getMessage());
  110. log.error(msg, e);
  111. }
  112. }
  113. if (failureNum > 0)
  114. {
  115. failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:");
  116. throw new ServiceException(failureMsg.toString());
  117. }
  118. else
  119. {
  120. successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,数据如下:");
  121. }
  122. return successMsg.toString();
  123. }
  124. }