123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227 |
- package com.hssx.cloudmodel.service.impl;
- import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
- import com.github.pagehelper.PageHelper;
- import com.github.pagehelper.PageInfo;
- import com.hssx.cloudmodel.constant.Constant;
- import com.hssx.cloudmodel.entity.*;
- import com.hssx.cloudmodel.entity.vo.ProjectVO;
- import com.hssx.cloudmodel.mapper.*;
- import com.hssx.cloudmodel.service.ProjectService;
- import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
- import com.hssx.cloudmodel.util.HttpRespMsg;
- import com.hssx.cloudmodel.util.ListUtil;
- import com.hssx.cloudmodel.util.PageUtil;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import javax.annotation.Resource;
- import javax.jws.soap.SOAPBinding;
- import java.text.SimpleDateFormat;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.Spliterator;
- /**
- * <p>
- * 服务实现类
- * </p>
- *
- * @author 吴涛涛
- * @since 2019-07-27
- */
- @Service
- public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> implements ProjectService {
- @Resource
- ProjectMapper projectMapper;
- @Resource
- ProjectUserMapper projectUserMapper;
- @Resource
- UserMapper userMapper;
- @Resource
- CompanyMapper companyMapper;
- @Resource
- CustomCompanyMapper customCompanyMapper;
- @Resource
- MouldMapper mouldMapper;
- @Override
- public HttpRespMsg addAndUpdateProject(Project project, Integer flag, User user,String userIds,
- String customerCompanyIds,String customerCompanyNames,String modelIds) {
- HttpRespMsg msg = new HttpRespMsg();
- if(user != null){
- QueryWrapper<Project> qw = new QueryWrapper<>();
- qw.orderByDesc("id").last("limit 1");
- Project lastProject = projectMapper.selectOne(qw);
- if (flag == 0) {
- synchronized (this) {
- int count = 1;
- if (lastProject != null) {
- //YMXM201903220001
- String numStr = lastProject.getProjectNo().substring(13);
- int num = Integer.valueOf(numStr).intValue();
- count += num;
- }
- long time = System.currentTimeMillis();
- Company company = companyMapper.selectById(user.getCompanyId());
- SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
- String seq = sdf.format(time) + String.format("%04d", count);
- project.setCreatorId(user.getId());
- project.setCreator(user.getUsername());
- project.setOwnerCompany(user.getCompanyId());
- project.setOwnerCompanyName(company.getCompanyName());
- project.setProjectNo(Constant.PROJECT_PREFIX+seq);
- projectMapper.insert(project);
- //添加生产方关联公司
- if(customerCompanyIds != null && !"".equals(customerCompanyIds) && customerCompanyNames != null && !"".equals(customerCompanyNames)){
- List<Integer> ides = ListUtil.convertIntegerIdsArrayToList(customerCompanyIds);
- String[] split = customerCompanyNames.split(",");
- int index = 0;
- for(String cusCompany:split){
- CustomCompany customCompany = new CustomCompany();
- customCompany.setCompanyId(ides.get(index));
- customCompany.setCompanyName(cusCompany);
- customCompany.setProjectId(project.getId());
- customCompanyMapper.insert(customCompany);
- index++;
- }
- }
- }
- }else if(flag == 1){
- projectMapper.updateById(project);
- //删除之前分配的人员
- QueryWrapper<ProjectUser> qwPro = new QueryWrapper<>();
- qwPro.eq("project_id",project.getId());
- projectUserMapper.delete(qwPro);
- //再次重新分配
- this.handOutProject(project, userIds);
- //删除之前分配与项目关联的模具,即将之前的关联项目id修改成未关联
- mouldMapper.updateMouldByProjectId(project);
- //再次模具的分配
- if(modelIds != null && !"".equals(modelIds)){
- List<Integer> modelList = ListUtil.convertIntegerIdsArrayToList(modelIds);
- int index = 1;
- if(modelList.size()>0){
- for (Integer id : modelList) {
- Mould mould = new Mould();
- mould.setId(id);
- mould.setProjectId(project.getId());
- mould.setBelongProjectGrade(index/modelList.size()+"");
- mouldMapper.updateById(mould);
- }
- }
- }
- }
- }else{
- msg.setError("当前角色涉及权限问题,请重新登录");
- }
- return msg;
- }
- @Override
- public HttpRespMsg handOutProject(Project project, String userIds) {
- HttpRespMsg msg = new HttpRespMsg();
- Project pro = projectMapper.selectById(project.getId());
- List<Integer> ids = new ArrayList<>();
- if(userIds != null && userIds != ""){
- List<String> list = ListUtil.convertLongIdsArrayToList(userIds);
- if(list().size()>0){
- for(String id:list){
- User user = userMapper.selectById(id);
- ProjectUser projectUser = new ProjectUser();
- projectUser.setId(Integer.parseInt(id));
- projectUser.setProjectId(project.getId());
- projectUser.setSubordinate(user.getSubordinateType());
- projectUserMapper.insert(projectUser);
- }
- }
- }else{
- msg.setError("用户id不能为null和空");
- }
- return msg;
- }
- @Override
- public HttpRespMsg getList(String keyName,PageUtil page,User currentUser) {
- HttpRespMsg msg = new HttpRespMsg();
- if(currentUser != null){
- PageHelper.startPage(page.getPageNum(),page.getPageSize());
- List<Project> projects = projectMapper.getProjectListByUid(keyName,currentUser);
- PageInfo<Project> pageInfos = new PageInfo<>(projects);
- msg.data = pageInfos;
- }else{
- msg.setError("当前用户不存,或涉及到权限问题,请重新登录");
- }
- QueryWrapper<Project> qw = new QueryWrapper<>();
- qw.select("project_name", "creator","charger","indate");
- if(keyName != null){
- qw.like("project_name",keyName);
- }
- return msg;
- }
- @Override
- public HttpRespMsg getUserByCompanyIdOrSubordinateType(User user) {
- HttpRespMsg msg = new HttpRespMsg();
- List<User> users = new ArrayList<>();
- QueryWrapper<User>qw = new QueryWrapper<>();
- if(user.getCompanyId() != null){
- qw.eq("company_id", user.getCompanyId());
- }else if(user.getSubordinateType() != null){
- qw.eq("subordinate_type", user.getSubordinateType());
- }
- users = userMapper.selectList(qw);
- msg.data = users;
- return msg;
- }
- @Override
- public HttpRespMsg getProjectDetail(Project project) {
- HttpRespMsg msg = new HttpRespMsg();
- ProjectVO vo = projectMapper.getProjectById(project.getId());
- List<User> users = projectMapper.getProjectUserById(project.getId());
- //处理users按照客户呼和供应商分组
- for (User user : users) {
- if(user.getSubordinateType()==0){
- //资产方
- vo.getOwnerUsers().add(user);
- }else if(user.getSubordinateType()==1){
- //生产方
- vo.getCustomUsers().add(user);
- }
- }
- msg.data = vo;
- return msg;
- }
- @Override
- public HttpRespMsg getUserListByCompanyIds(String companyIds,Integer adminId) {
- HttpRespMsg msg = new HttpRespMsg();
- if(!"".equals(companyIds) && companyIds != null){
- List<Integer> ids = ListUtil.convertIntegerIdsArrayToList(companyIds);
- msg.data = userMapper.selectList(new QueryWrapper<User>().in("company_id",ids).ne("id",adminId));
- }
- return msg;
- }
- @Override
- public HttpRespMsg getModelListByCompanyId(User user) {
- HttpRespMsg msg = new HttpRespMsg();
- QueryWrapper<Mould> qw = new QueryWrapper<>();
- if(Constant.SYS_ID == user.getParentId()){
- //此时是admin
- User admin = userMapper.selectOne(new QueryWrapper<User>().eq("id", user.getId()));
- qw.eq("company_id",admin.getCompanyId());
- }else if(Constant.SYS_PARENT_ID == user.getParentId()){
- //系统管理员
- // qw.eq("company_type",Constant.ASSETS_COMPANY);
- }else{
- //此时是项目经理
- User admin = userMapper.selectOne(new QueryWrapper<User>().eq("id", user.getParentId()));
- qw.eq("company_id",admin.getCompanyId());
- }
- msg.data = mouldMapper.selectList(qw);
- return msg;
- }
- }
|