ProjectServiceImpl.java 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  1. package com.hssx.cloudmodel.service.impl;
  2. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  3. import com.github.pagehelper.PageHelper;
  4. import com.github.pagehelper.PageInfo;
  5. import com.hssx.cloudmodel.constant.Constant;
  6. import com.hssx.cloudmodel.entity.*;
  7. import com.hssx.cloudmodel.entity.vo.ProjectVO;
  8. import com.hssx.cloudmodel.mapper.*;
  9. import com.hssx.cloudmodel.service.ProjectService;
  10. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  11. import com.hssx.cloudmodel.util.HttpRespMsg;
  12. import com.hssx.cloudmodel.util.ListUtil;
  13. import com.hssx.cloudmodel.util.PageUtil;
  14. import org.springframework.beans.factory.annotation.Autowired;
  15. import org.springframework.stereotype.Service;
  16. import javax.jws.soap.SOAPBinding;
  17. import java.text.SimpleDateFormat;
  18. import java.util.ArrayList;
  19. import java.util.List;
  20. import java.util.Spliterator;
  21. /**
  22. * <p>
  23. * 服务实现类
  24. * </p>
  25. *
  26. * @author 吴涛涛
  27. * @since 2019-07-27
  28. */
  29. @Service
  30. public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> implements ProjectService {
  31. @Autowired
  32. ProjectMapper projectMapper;
  33. @Autowired
  34. ProjectUserMapper projectUserMapper;
  35. @Autowired
  36. UserMapper userMapper;
  37. @Autowired
  38. CompanyMapper companyMapper;
  39. @Autowired
  40. CustomCompanyMapper customCompanyMapper;
  41. @Override
  42. public HttpRespMsg addAndUpdateProject(Project project, Integer flag, User user,String userIds,String customerCompanyIds,String customerCompanyNames) {
  43. HttpRespMsg msg = new HttpRespMsg();
  44. if(user != null){
  45. QueryWrapper<Project> qw = new QueryWrapper<>();
  46. qw.orderByDesc("id").last("limit 1");
  47. Project lastProject = projectMapper.selectOne(qw);
  48. if (flag == 0) {
  49. synchronized (this) {
  50. int count = 1;
  51. if (lastProject != null) {
  52. //YMXM201903220001
  53. String numStr = lastProject.getProjectNo().substring(13);
  54. int num = Integer.valueOf(numStr).intValue();
  55. count += num;
  56. }
  57. long time = System.currentTimeMillis();
  58. Company company = companyMapper.selectById(user.getCompanyId());
  59. SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
  60. String seq = sdf.format(time) + String.format("%04d", count);
  61. project.setCreatorId(user.getId());
  62. project.setCreator(user.getUsername());
  63. project.setOwnerCompany(user.getCompanyId());
  64. project.setOwnerCompanyName(company.getCompanyName());
  65. project.setProjectNo(Constant.PROJECT_PREFIX+seq);
  66. projectMapper.insert(project);
  67. //添加生产方关联公司
  68. if(customerCompanyIds != null && !"".equals(customerCompanyIds) && customerCompanyNames != null && !"".equals(customerCompanyNames)){
  69. List<Integer> ides = ListUtil.convertIntegerIdsArrayToList(customerCompanyIds);
  70. String[] split = customerCompanyNames.split(",");
  71. int index = 0;
  72. for(String cusCompany:split){
  73. CustomCompany customCompany = new CustomCompany();
  74. customCompany.setCompanyId(ides.get(index));
  75. customCompany.setCompanyName(cusCompany);
  76. customCompany.setProjectId(project.getId());
  77. customCompanyMapper.insert(customCompany);
  78. index++;
  79. }
  80. }
  81. }
  82. }else if(flag == 1){
  83. projectMapper.updateById(project);
  84. //删除之前分配的人员
  85. QueryWrapper<ProjectUser> qwPro = new QueryWrapper<>();
  86. qwPro.eq("project_id",project.getId());
  87. projectUserMapper.delete(qwPro);
  88. //再次重新分配
  89. this.handOutProject(project, userIds);
  90. }
  91. }else{
  92. msg.setError("当前角色涉及权限问题,请重新登录");
  93. }
  94. return msg;
  95. }
  96. @Override
  97. public HttpRespMsg handOutProject(Project project, String userIds) {
  98. HttpRespMsg msg = new HttpRespMsg();
  99. Project pro = projectMapper.selectById(project.getId());
  100. List<Integer> ids = new ArrayList<>();
  101. if(userIds != null && userIds != ""){
  102. List<String> list = ListUtil.convertLongIdsArrayToList(userIds);
  103. if(list().size()>0){
  104. for(String id:list){
  105. User user = userMapper.selectById(id);
  106. ProjectUser projectUser = new ProjectUser();
  107. projectUser.setId(Integer.parseInt(id));
  108. projectUser.setProjectId(project.getId());
  109. projectUser.setSubordinate(user.getSubordinateType());
  110. projectUserMapper.insert(projectUser);
  111. }
  112. }
  113. }else{
  114. msg.setError("用户id不能为null和空");
  115. }
  116. return msg;
  117. }
  118. @Override
  119. public HttpRespMsg getList(String keyName,PageUtil page,User currentUser) {
  120. HttpRespMsg msg = new HttpRespMsg();
  121. if(currentUser != null){
  122. PageHelper.startPage(page.getPageNum(),page.getPageSize());
  123. List<Project> projects = projectMapper.getProjectListByUid(keyName,currentUser);
  124. PageInfo<Project> pageInfos = new PageInfo<>(projects);
  125. msg.data = pageInfos;
  126. }else{
  127. msg.setError("当前用户不存,或涉及到权限问题,请重新登录");
  128. }
  129. QueryWrapper<Project> qw = new QueryWrapper<>();
  130. qw.select("project_name", "creator","charger","indate");
  131. if(keyName != null){
  132. qw.like("project_name",keyName);
  133. }
  134. return msg;
  135. }
  136. @Override
  137. public HttpRespMsg getUserByCompanyIdOrSubordinateType(User user) {
  138. HttpRespMsg msg = new HttpRespMsg();
  139. List<User> users = new ArrayList<>();
  140. QueryWrapper<User>qw = new QueryWrapper<>();
  141. if(user.getCompanyId() != null){
  142. qw.eq("company_id", user.getCompanyId());
  143. }else if(user.getSubordinateType() != null){
  144. qw.eq("subordinate_type", user.getSubordinateType());
  145. }
  146. users = userMapper.selectList(qw);
  147. msg.data = users;
  148. return msg;
  149. }
  150. @Override
  151. public HttpRespMsg getProjectDetail(Project project) {
  152. HttpRespMsg msg = new HttpRespMsg();
  153. ProjectVO vo = projectMapper.getProjectById(project.getId());
  154. List<User> users = projectMapper.getProjectUserById(project.getId());
  155. //处理users按照客户呼和供应商分组
  156. for (User user : users) {
  157. if(user.getSubordinateType()==0){
  158. //资产方
  159. vo.getOwnerUsers().add(user);
  160. }else if(user.getSubordinateType()==1){
  161. //生产方
  162. vo.getCustomUsers().add(user);
  163. }
  164. }
  165. msg.data = vo;
  166. return msg;
  167. }
  168. @Override
  169. public HttpRespMsg getUserListByCompanyIds(String companyIds) {
  170. HttpRespMsg msg = new HttpRespMsg();
  171. if(!"".equals(companyIds) && companyIds != null){
  172. List<Integer> ids = ListUtil.convertIntegerIdsArrayToList(companyIds);
  173. msg.data = userMapper.selectList(new QueryWrapper<User>().in("company_id",ids));
  174. }
  175. return msg;
  176. }
  177. }