ProjectServiceImpl.java 9.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227
  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.annotation.Resource;
  17. import javax.jws.soap.SOAPBinding;
  18. import java.text.SimpleDateFormat;
  19. import java.util.ArrayList;
  20. import java.util.List;
  21. import java.util.Spliterator;
  22. /**
  23. * <p>
  24. * 服务实现类
  25. * </p>
  26. *
  27. * @author 吴涛涛
  28. * @since 2019-07-27
  29. */
  30. @Service
  31. public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> implements ProjectService {
  32. @Resource
  33. ProjectMapper projectMapper;
  34. @Resource
  35. ProjectUserMapper projectUserMapper;
  36. @Resource
  37. UserMapper userMapper;
  38. @Resource
  39. CompanyMapper companyMapper;
  40. @Resource
  41. CustomCompanyMapper customCompanyMapper;
  42. @Resource
  43. MouldMapper mouldMapper;
  44. @Override
  45. public HttpRespMsg addAndUpdateProject(Project project, Integer flag, User user,String userIds,
  46. String customerCompanyIds,String customerCompanyNames,String modelIds) {
  47. HttpRespMsg msg = new HttpRespMsg();
  48. if(user != null){
  49. QueryWrapper<Project> qw = new QueryWrapper<>();
  50. qw.orderByDesc("id").last("limit 1");
  51. Project lastProject = projectMapper.selectOne(qw);
  52. if (flag == 0) {
  53. synchronized (this) {
  54. int count = 1;
  55. if (lastProject != null) {
  56. //YMXM201903220001
  57. String numStr = lastProject.getProjectNo().substring(13);
  58. int num = Integer.valueOf(numStr).intValue();
  59. count += num;
  60. }
  61. long time = System.currentTimeMillis();
  62. Company company = companyMapper.selectById(user.getCompanyId());
  63. SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
  64. String seq = sdf.format(time) + String.format("%04d", count);
  65. project.setCreatorId(user.getId());
  66. project.setCreator(user.getUsername());
  67. project.setOwnerCompany(user.getCompanyId());
  68. project.setOwnerCompanyName(company.getCompanyName());
  69. project.setProjectNo(Constant.PROJECT_PREFIX+seq);
  70. projectMapper.insert(project);
  71. //添加生产方关联公司
  72. if(customerCompanyIds != null && !"".equals(customerCompanyIds) && customerCompanyNames != null && !"".equals(customerCompanyNames)){
  73. List<Integer> ides = ListUtil.convertIntegerIdsArrayToList(customerCompanyIds);
  74. String[] split = customerCompanyNames.split(",");
  75. int index = 0;
  76. for(String cusCompany:split){
  77. CustomCompany customCompany = new CustomCompany();
  78. customCompany.setCompanyId(ides.get(index));
  79. customCompany.setCompanyName(cusCompany);
  80. customCompany.setProjectId(project.getId());
  81. customCompanyMapper.insert(customCompany);
  82. index++;
  83. }
  84. }
  85. }
  86. }else if(flag == 1){
  87. projectMapper.updateById(project);
  88. //删除之前分配的人员
  89. QueryWrapper<ProjectUser> qwPro = new QueryWrapper<>();
  90. qwPro.eq("project_id",project.getId());
  91. projectUserMapper.delete(qwPro);
  92. //再次重新分配
  93. this.handOutProject(project, userIds);
  94. //删除之前分配与项目关联的模具,即将之前的关联项目id修改成未关联
  95. mouldMapper.updateMouldByProjectId(project);
  96. //再次模具的分配
  97. if(modelIds != null && !"".equals(modelIds)){
  98. List<Integer> modelList = ListUtil.convertIntegerIdsArrayToList(modelIds);
  99. int index = 1;
  100. if(modelList.size()>0){
  101. for (Integer id : modelList) {
  102. Mould mould = new Mould();
  103. mould.setId(id);
  104. mould.setProjectId(project.getId());
  105. mould.setBelongProjectGrade(index/modelList.size()+"");
  106. mouldMapper.updateById(mould);
  107. }
  108. }
  109. }
  110. }
  111. }else{
  112. msg.setError("当前角色涉及权限问题,请重新登录");
  113. }
  114. return msg;
  115. }
  116. @Override
  117. public HttpRespMsg handOutProject(Project project, String userIds) {
  118. HttpRespMsg msg = new HttpRespMsg();
  119. Project pro = projectMapper.selectById(project.getId());
  120. List<Integer> ids = new ArrayList<>();
  121. if(userIds != null && userIds != ""){
  122. List<String> list = ListUtil.convertLongIdsArrayToList(userIds);
  123. if(list().size()>0){
  124. for(String id:list){
  125. User user = userMapper.selectById(id);
  126. ProjectUser projectUser = new ProjectUser();
  127. projectUser.setId(Integer.parseInt(id));
  128. projectUser.setProjectId(project.getId());
  129. projectUser.setSubordinate(user.getSubordinateType());
  130. projectUserMapper.insert(projectUser);
  131. }
  132. }
  133. }else{
  134. msg.setError("用户id不能为null和空");
  135. }
  136. return msg;
  137. }
  138. @Override
  139. public HttpRespMsg getList(String keyName,PageUtil page,User currentUser) {
  140. HttpRespMsg msg = new HttpRespMsg();
  141. if(currentUser != null){
  142. PageHelper.startPage(page.getPageNum(),page.getPageSize());
  143. List<Project> projects = projectMapper.getProjectListByUid(keyName,currentUser);
  144. PageInfo<Project> pageInfos = new PageInfo<>(projects);
  145. msg.data = pageInfos;
  146. }else{
  147. msg.setError("当前用户不存,或涉及到权限问题,请重新登录");
  148. }
  149. QueryWrapper<Project> qw = new QueryWrapper<>();
  150. qw.select("project_name", "creator","charger","indate");
  151. if(keyName != null){
  152. qw.like("project_name",keyName);
  153. }
  154. return msg;
  155. }
  156. @Override
  157. public HttpRespMsg getUserByCompanyIdOrSubordinateType(User user) {
  158. HttpRespMsg msg = new HttpRespMsg();
  159. List<User> users = new ArrayList<>();
  160. QueryWrapper<User>qw = new QueryWrapper<>();
  161. if(user.getCompanyId() != null){
  162. qw.eq("company_id", user.getCompanyId());
  163. }else if(user.getSubordinateType() != null){
  164. qw.eq("subordinate_type", user.getSubordinateType());
  165. }
  166. users = userMapper.selectList(qw);
  167. msg.data = users;
  168. return msg;
  169. }
  170. @Override
  171. public HttpRespMsg getProjectDetail(Project project) {
  172. HttpRespMsg msg = new HttpRespMsg();
  173. ProjectVO vo = projectMapper.getProjectById(project.getId());
  174. List<User> users = projectMapper.getProjectUserById(project.getId());
  175. //处理users按照客户呼和供应商分组
  176. for (User user : users) {
  177. if(user.getSubordinateType()==0){
  178. //资产方
  179. vo.getOwnerUsers().add(user);
  180. }else if(user.getSubordinateType()==1){
  181. //生产方
  182. vo.getCustomUsers().add(user);
  183. }
  184. }
  185. msg.data = vo;
  186. return msg;
  187. }
  188. @Override
  189. public HttpRespMsg getUserListByCompanyIds(String companyIds,Integer adminId) {
  190. HttpRespMsg msg = new HttpRespMsg();
  191. if(!"".equals(companyIds) && companyIds != null){
  192. List<Integer> ids = ListUtil.convertIntegerIdsArrayToList(companyIds);
  193. msg.data = userMapper.selectList(new QueryWrapper<User>().in("company_id",ids).ne("id",adminId));
  194. }
  195. return msg;
  196. }
  197. @Override
  198. public HttpRespMsg getModelListByCompanyId(User user) {
  199. HttpRespMsg msg = new HttpRespMsg();
  200. QueryWrapper<Mould> qw = new QueryWrapper<>();
  201. if(Constant.SYS_ID == user.getParentId()){
  202. //此时是admin
  203. User admin = userMapper.selectOne(new QueryWrapper<User>().eq("id", user.getId()));
  204. qw.eq("company_id",admin.getCompanyId());
  205. }else if(Constant.SYS_PARENT_ID == user.getParentId()){
  206. //系统管理员
  207. // qw.eq("company_type",Constant.ASSETS_COMPANY);
  208. }else{
  209. //此时是项目经理
  210. User admin = userMapper.selectOne(new QueryWrapper<User>().eq("id", user.getParentId()));
  211. qw.eq("company_id",admin.getCompanyId());
  212. }
  213. msg.data = mouldMapper.selectList(qw);
  214. return msg;
  215. }
  216. }