123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788 |
- package com.hssx.cloudmodel.service.impl;
- import com.baomidou.mybatisplus.core.conditions.Wrapper;
- 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.MouldVO;
- import com.hssx.cloudmodel.entity.vo.ProjectVO;
- import com.hssx.cloudmodel.entity.vo.UserVO;
- 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.*;
- import java.util.stream.Collector;
- import java.util.stream.Collectors;
- /**
- * <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;
- @Resource
- ProjectApproveMapper projectApproveMapper;
- @Resource
- PowerMapper powerMapper;
- @Resource
- UserCompanyMapper userCompanyMapper;
- @Override
- public HttpRespMsg addAndUpdateProject(Project project, Integer flag, User user, String userIds,
- String customerCompanyIds, String customerCompanyNames, String modelIds,
- Integer customerApproverId, Integer ownerApproverId) {
- 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 (null != project.getManagerId()) {
- Integer cot = powerMapper.selectCount(new QueryWrapper<Power>().eq("user_id", project.getManagerId()).eq("project_id", project.getId()).eq("power_type", 0));
- if (cot == 0) {
- Power power = new Power();
- power.setUserId(project.getManagerId());
- power.setProjectId(project.getId());
- power.setPowerType(Constant.UPDATE_AUTHORITY);
- powerMapper.insert(power);
- }
- }
- //添加生产方关联公司
- 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++;
- }
- }
- //添加模具
- if (modelIds != null && !"".equals(modelIds)) {
- List<Integer> modelList = ListUtil.convertIntegerIdsArrayToList(modelIds);
- int num = 1;
- if (modelList.size() > 0) {
- for (Integer id : modelList) {
- Mould mould = new Mould();
- mould.setId(id);
- mould.setProjectId(project.getId());
- mould.setBelongProjectGrade(num+"");
- num++;
- mouldMapper.updateById(mould);
- }
- }
- }
- }
- } else if (flag == 1) {
- Project pro = projectMapper.selectById(project.getId());
- projectMapper.updateById(project);
- //删除参与人与项目项目经理相同id的人
- projectUserMapper.delete(new QueryWrapper<ProjectUser>().eq("user_id", project.getManagerId()).eq("project_id", project.getId()));
- //删除之前添加的生产方公司
- customCompanyMapper.delete(new QueryWrapper<CustomCompany>().eq("project_id", project.getId()));
- //删除之前的项目经理上传权限
- powerMapper.delete(new QueryWrapper<Power>().eq("user_id", pro.getManagerId()).eq("project_id", pro.getId()).eq("power_type", 0));
- //重新添加项目经理上传权限
- if (null != project.getManagerId()) {
- Integer cot = powerMapper.selectCount(new QueryWrapper<Power>().eq("user_id", project.getManagerId()).eq("project_id", project.getId()).eq("power_type", 0));
- if (cot == 0) {
- Power power = new Power();
- power.setUserId(project.getManagerId());
- power.setProjectId(project.getId());
- power.setPowerType(Constant.UPDATE_AUTHORITY);
- powerMapper.insert(power);
- }
- }
- //重新添加生产方公司
- 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++;
- }
- }
- //删除之前的项目审批人
- projectApproveMapper.delete(new QueryWrapper<ProjectApprove>().eq("project_id", project.getId()));
- //删除权限表里的审批权限数据
- powerMapper.delete(new QueryWrapper<Power>().eq("project_id", project.getId()).eq("power_type", Constant.APPROVAL_AUTHORITY));
- //删除之前项目参与人的下载权限
- projectMapper.selectById(project.getId());
- List<Integer> approverIds = projectApproveMapper.selectList(new QueryWrapper<ProjectApprove>().eq("project_id", project.getId()))
- .stream()
- .map(ProjectApprove::getApproverId)
- .collect(Collectors.toList());
- approverIds.add(-1);
- powerMapper.delete(new QueryWrapper<Power>().in("user_id", approverIds));
- //删除之前分配的人员
- QueryWrapper<ProjectUser> qwPro = new QueryWrapper<>();
- qwPro.eq("project_id", project.getId());
- projectUserMapper.delete(qwPro);
- //再次重新分配
- this.handOutProject(project, userIds);
- //重新添加审批人
- //1.添加生产方审批人
- if (null != customerApproverId && !"".equals(customerApproverId)) {
- User customerExaminer = userMapper.selectById(customerApproverId);
- Company company = companyMapper.selectById(customerExaminer.getCompanyId());
- ProjectApprove projectApprove = new ProjectApprove();
- projectApprove.setApproverId(customerExaminer.getId());
- projectApprove.setApproverName(customerExaminer.getUsername());
- projectApprove.setCompanyId(customerExaminer.getCompanyId());
- projectApprove.setCompanyName(company.getCompanyName());
- projectApprove.setProjectId(project.getId());
- projectApprove.setSubordinateType(customerExaminer.getSubordinateType());
- projectApproveMapper.insert(projectApprove);
- Power power = new Power();
- power.setUserId(customerExaminer.getId());
- power.setProjectId(project.getId());
- power.setPowerType(Constant.APPROVAL_AUTHORITY);
- powerMapper.insert(power);
- //审批人默认有下载权限
- power.setUserId(customerExaminer.getId());
- power.setProjectId(project.getId());
- power.setPowerType(Constant.DOWNLOAD_AUTHORITY);
- powerMapper.insert(power);
- //将审批人加入到参与人中
- ProjectUser projectUser = new ProjectUser();
- projectUser.setUserId(customerExaminer.getId());
- projectUser.setSubordinateType(customerExaminer.getSubordinateType());
- projectUser.setProjectId(project.getId());
- projectUser.setSubordinate(customerExaminer.getCompanyId());
- projectUser.setRoleType(1);//审批人
- projectUserMapper.insert(projectUser);
- }
- if (null != ownerApproverId && !"".equals(ownerApproverId)) {
- //2.添加资产方审批人
- User ownerExaminer = userMapper.selectById(ownerApproverId);
- Company company = companyMapper.selectById(ownerExaminer.getCompanyId());
- ProjectApprove ownerProjectApprove = new ProjectApprove();
- ownerProjectApprove.setApproverId(ownerExaminer.getId());
- ownerProjectApprove.setApproverName(ownerExaminer.getUsername());
- ownerProjectApprove.setCompanyId(ownerExaminer.getCompanyId());
- ownerProjectApprove.setCompanyName(company.getCompanyName());
- ownerProjectApprove.setProjectId(project.getId());
- ownerProjectApprove.setSubordinateType(ownerExaminer.getSubordinateType());
- projectApproveMapper.insert(ownerProjectApprove);
- Power power = new Power();
- power.setUserId(ownerExaminer.getId());
- power.setProjectId(project.getId());
- power.setPowerType(Constant.APPROVAL_AUTHORITY);
- powerMapper.insert(power);
- //审批人默认有下载权限
- power.setUserId(ownerExaminer.getId());
- power.setProjectId(project.getId());
- power.setPowerType(Constant.DOWNLOAD_AUTHORITY);
- powerMapper.insert(power);
- //将审批人加入到参与人中
- ProjectUser projectUser = new ProjectUser();
- projectUser.setUserId(ownerExaminer.getId());
- projectUser.setSubordinateType(ownerExaminer.getSubordinateType());
- projectUser.setProjectId(project.getId());
- projectUser.setSubordinate(ownerExaminer.getCompanyId());
- projectUser.setRoleType(1);//审批人
- projectUserMapper.insert(projectUser);
- }
- //删除之前分配与项目关联的模具,即将之前的关联项目id修改成未关联
- mouldMapper.updateMouldByProjectId(project);
- //再次模具的分配
- if (modelIds != null && !"".equals(modelIds)) {
- List<Integer> modelList = ListUtil.convertIntegerIdsArrayToList(modelIds);
- int sum = 1;
- if (modelList.size() > 0) {
- for (Integer id : modelList) {
- Mould mould = new Mould();
- mould.setId(id);
- mould.setProjectId(project.getId());
- mould.setBelongProjectGrade(sum + "");
- mouldMapper.updateById(mould);
- sum++;
- }
- }
- }
- }
- } 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.setUserId(Integer.parseInt(id));
- projectUser.setProjectId(project.getId());
- projectUser.setSubordinate(user.getSubordinateType());
- projectUserMapper.insert(projectUser);
- }
- }
- } else {
- msg.setError("添加项目参与人失败,人员id不存在");
- }
- return msg;
- }
- @Override
- public HttpRespMsg getList(String keyName, PageUtil page, User user) {
- HttpRespMsg msg = new HttpRespMsg();
- if (user != null) {
- PageHelper.startPage(page.getPageNum(), page.getPageSize());
- List<Integer> uIds = new ArrayList<>();
- List<ProjectVO> projects = new ArrayList<>();
- List<Integer> projectIds = new ArrayList<>();
- if (Constant.SYS_PARENT_ID.equals(user.getParentId())) {
- projects = projectMapper.getProjectListByUid(keyName, user);
- } else if (Constant.SYS_ID.equals(user.getParentId())) {
- if (user.getSubordinateType() == 0) {
- QueryWrapper<Project> qwr = new QueryWrapper<>();
- //资产方管理员,看到自己创建的项目
- qwr.select("id").eq("creator_id", user.getId());
- projectIds = projectMapper.selectList(qwr).stream().map(Project::getId).collect(Collectors.toList());
- projectIds.add(-1);
- projects = projectMapper.getProjectListByUidInProjectIds(keyName, projectIds);
- } else if (user.getSubordinateType() == 1) {
- projectIds = customCompanyMapper.selectList(new QueryWrapper<CustomCompany>().eq("company_id", user.getCompanyId())).stream().map(CustomCompany::getProjectId).collect(Collectors.toList());
- projectIds.add(-1);
- projects = projectMapper.getProjectListByUidInProjectIds(keyName, projectIds);
- }
- } else {
- QueryWrapper<Project> qwPro = new QueryWrapper<>();
- qwPro.eq("manager_id", user.getId());
- projectIds = projectMapper.selectList(qwPro).stream().map(Project::getId).collect(Collectors.toList());
- projectIds.add(-1);
- //项目经理或者普通用户
- projectIds.addAll(projectUserMapper.selectList(new QueryWrapper<ProjectUser>()
- .eq("user_id", user.getId()))
- .stream()
- .map(ProjectUser::getProjectId)
- .collect(Collectors.toList()));
- //作为审批人
- projectIds.addAll(projectApproveMapper.selectList(new QueryWrapper<ProjectApprove>()
- .eq("approver_id", user.getId()))
- .stream()
- .map(ProjectApprove::getProjectId)
- .collect(Collectors.toList()));
- projects = projectMapper.getProjectListByUidInProjectIds(keyName, projectIds);
- }
- PageInfo<ProjectVO> 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, String token) {
- Map<String, Object> map = new HashMap<>();
- HttpRespMsg msg = new HttpRespMsg();
- User user = userMapper.selectOne(new QueryWrapper<User>().eq("head_imgurl", token));
- List<ProjectVO> projects = new ArrayList<>();
- String keyName = null;
- if (user != null) {
- List<Integer> uIds = new ArrayList<>();
- List<Integer> projectIds = new ArrayList<>();
- if (Constant.SYS_PARENT_ID.equals(user.getParentId())) {
- projects = projectMapper.getProjectListByUid(keyName, user);
- } else if (Constant.SYS_ID.equals(user.getParentId())) {
- if (user.getSubordinateType() == 0) {
- QueryWrapper<Project> qwr = new QueryWrapper<>();
- //资产方管理员,看到自己创建的项目
- qwr.select("id").eq("creator_id", user.getId());
- projectIds = projectMapper.selectList(qwr).stream().map(Project::getId).collect(Collectors.toList());
- projectIds.add(-1);
- projects = projectMapper.getProjectListByUidInProjectIds(keyName, projectIds);
- } else if (user.getSubordinateType() == 1) {
- projectIds = customCompanyMapper.selectList(new QueryWrapper<CustomCompany>().eq("company_id", user.getCompanyId())).stream().map(CustomCompany::getProjectId).collect(Collectors.toList());
- projectIds.add(-1);
- projects = projectMapper.getProjectListByUidInProjectIds(keyName, projectIds);
- }
- } else {
- QueryWrapper<Project> qwPro = new QueryWrapper<>();
- qwPro.eq("manager_id", user.getId());
- projectIds = projectMapper.selectList(qwPro).stream().map(Project::getId).collect(Collectors.toList());
- projectIds.add(-1);
- //项目经理或者普通用户
- projectIds.addAll(projectUserMapper.selectList(new QueryWrapper<ProjectUser>()
- .eq("user_id", user.getId()))
- .stream()
- .map(ProjectUser::getProjectId)
- .collect(Collectors.toList()));
- //作为审批人
- projectIds.addAll(projectApproveMapper.selectList(new QueryWrapper<ProjectApprove>()
- .eq("approver_id", user.getId()))
- .stream()
- .map(ProjectApprove::getProjectId)
- .collect(Collectors.toList()));
- projects = projectMapper.getProjectListByUidInProjectIds(keyName, projectIds);
- }
- } else {
- msg.setError("用户不存在或者未登录");
- }
- List<Integer> pIds = projects.stream().map(Project::getId).collect(Collectors.toList());
- if (!pIds.contains(project.getId())) {
- msg.setError("您没有该权限!");
- return msg;
- }
- ProjectVO vo = projectMapper.getProjectById(project.getId());
- if (Constant.SYS_PARENT_ID.equals(user.getParentId())) {
- //当前人超级管理员 ,对项目只可以浏览
- map.put("update", 0);
- map.put("download", 0);
- map.put("view", 1);
- map.put("approve", 0);
- } else if (Constant.SYS_ID.equals(user.getParentId())) {
- //当前为系统管理员
- if (Constant.ASSETS_COMPANY.equals(user.getSubordinateType())) {
- map.put("update", 1);
- map.put("download", 1);
- map.put("view", 1);
- map.put("approve", 0);
- } else if (Constant.PRODUCER_COMPANY.equals(user.getSubordinateType())) {
- map.put("update", 0);
- map.put("download", 1);
- map.put("view", 1);
- map.put("approve", 0);
- }
- } else if (vo.getManagerId().equals(user.getId())) {
- //当前人是该项目的项目经理
- Integer approve = 0;
- if (projectApproveMapper.selectCount(new QueryWrapper<ProjectApprove>().eq("approver_id", user.getId())) > 0) {
- //查看当前项目经理是否为审批人
- approve = 1;
- }
- map.put("update", 1);
- map.put("download", 1);
- map.put("view", 1);
- map.put("approve", approve);
- } /*else if (projectApproveMapper.selectCount(new QueryWrapper<ProjectApprove>().eq("approver_id", user.getId())) > 0) {
- //是否为审批人
- //该项目的参与人
- Integer update = 0;
- Integer download = 0;
- Integer view = 0;
- Integer approve = 1;
- List<Power> powers = powerMapper.selectList(new QueryWrapper<Power>().eq("project_id", project.getId()).eq("user_id", user.getId()));
- if (powers.size() > 0) {
- for (Power power : powers) {
- if (power.getPowerType() == 0) {
- update = 1;
- } else if (power.getPowerType() == 1) {
- download = 1;
- } else if (power.getPowerType() == 2) {
- view = 1;
- } else {
- approve = 1;
- }
- }
- }
- map.put("update", update);
- map.put("download", download);
- map.put("view", view);
- map.put("approve", approve);
- }*/ else {
- //该项目的参与人
- Integer update = 0;
- Integer download = 0;
- Integer view = 0;
- Integer approve = 0;
- List<Power> powers = powerMapper.selectList(new QueryWrapper<Power>().eq("project_id", project.getId()).eq("user_id", user.getId()));
- if (powers.size() > 0) {
- for (Power power : powers) {
- if (power.getPowerType() == 0) {
- update = 1;
- } else if (power.getPowerType() == 1) {
- download = 1;
- } else if (power.getPowerType() == 2) {
- view = 1;
- } else {
- approve = 1;
- }
- }
- }
- map.put("update", update);
- map.put("download", download);
- map.put("view", view);
- map.put("approve", approve);
- }
- List<User> users = projectMapper.getProjectUserById(project.getId());
- vo.setParticipateUsers(users);
- //处理users按照客户呼和供应商分组
- map.put("vo", vo);
- msg.data = map;
- return msg;
- }
- @Override
- public HttpRespMsg getUserListByCompanyIds(String companyIds, Integer id, Integer projectId) {
- HttpRespMsg msg = new HttpRespMsg();
- User user = userMapper.selectById(id);
- QueryWrapper<User> qw = new QueryWrapper<User>();
- List<Integer> ids = new ArrayList<>();
- ids.add(-1);
- if (!"".equals(companyIds) && companyIds != null) {
- ids = ListUtil.convertIntegerIdsArrayToList(companyIds);
- }
- List<Integer> uids = new ArrayList<>();
- uids.add(-1);
- if (Constant.SYS_ID.equals(user.getParentId())) {
- //资产方管理员
- uids = userCompanyMapper.selectList(new QueryWrapper<UserCompany>().eq("cooperation_company_id", user.getCompanyId()).in("belong_company_id", ids)).stream().map(UserCompany::getUserId).collect(Collectors.toList());
- List<Integer> userIds = userMapper.selectList(new QueryWrapper<User>().eq("company_id", user.getCompanyId()).ne("parent_id", 1)).stream().map(User::getId).collect(Collectors.toList());
- uids.addAll(userIds);
- uids.add(-1);
- } else {
- //项目经理
- if (null != projectId) {
- Project pro = projectMapper.selectById(projectId);
- user = userMapper.selectById(pro.getCreatorId());
- uids = userCompanyMapper.selectList(new QueryWrapper<UserCompany>().eq("cooperation_company_id", user.getCompanyId()).in("belong_company_id", ids)).stream().map(UserCompany::getUserId).collect(Collectors.toList());
- List<Integer> userIds = userMapper.selectList(new QueryWrapper<User>().eq("company_id", user.getCompanyId()).ne("parent_id", 1)).stream().map(User::getId).collect(Collectors.toList());
- uids.addAll(userIds);
- uids.add(-1);
- id = user.getId();//不能是管理员本人
- }
- }
- List<UserVO> userVOS = userMapper.selsctUsersByUids(uids, id);
- msg.data = userVOS;
- return msg;
- }
- @Override
- public HttpRespMsg getModelListByCompanyId(User user) {
- HttpRespMsg msg = new HttpRespMsg();
- QueryWrapper<Mould> qw = new QueryWrapper<>();
- Integer companyId = -1;
- if (Constant.SYS_ID.equals(user.getParentId())) {
- //此时是admin
- User admin = userMapper.selectOne(new QueryWrapper<User>().eq("id", user.getId()));
- companyId = admin.getCompanyId();
- // qw.eq("company_id", admin.getCompanyId());
- } else if (Constant.SYS_PARENT_ID.equals(user.getParentId())) {
- //系统管理员
- // qw.eq("company_type",Constant.ASSETS_COMPANY);
- } else {
- //此时是项目经理
- User admin = userMapper.selectOne(new QueryWrapper<User>().eq("id", user.getParentId()));
- companyId = admin.getCompanyId();
- // qw.eq("company_id", admin.getCompanyId());
- }
- // List<Mould> moulds = mouldMapper.selectList(new QueryWrapper<Mould>().eq("company_id", companyId).isNull("project_id"));
- msg.data = mouldMapper.selectListByCompanyId(companyId, null);
- return msg;
- }
- @Override
- public HttpRespMsg getModelListByUser(UserVO userVO, PageUtil page) {
- HttpRespMsg msg = new HttpRespMsg();
- List<Integer> set = new ArrayList<>();
- set.add(-1);
- List<MouldVO> moulds = new ArrayList<>();
- if (userVO.getId() != null) {
- //资产方管理员,获取他公司下的所有模具
- PageHelper.startPage(page.getPageNum(), page.getPageSize());
- if (Constant.SYS_PARENT_ID.equals(userVO.getParentId())) {
- //超级管理员,获取平台所有模具
- moulds = mouldMapper.selectListByCondition(userVO);
- } else if (Constant.SYS_ID.equals(userVO.getParentId())) {
- if (Constant.ASSETS_COMPANY.equals(userVO.getSubordinateType())) {
- //资产方管理员
- moulds = mouldMapper.selectListByCondition(userVO);
- } else if (Constant.PRODUCER_COMPANY.equals(userVO.getSubordinateType())) {
- set = customCompanyMapper.selectList(new QueryWrapper<CustomCompany>().eq("company_id", userVO.getCompanyId())).stream().map(CustomCompany::getProjectId).collect(Collectors.toList());
- set.add(-1);
- moulds = mouldMapper.selectListByConditionByProject(userVO, set);
- }
- } else {
- //普通用户或者项目经理
- //充当项目经理参与的项目
- if (userVO.getProjectId() != -1) {
- set.add(userVO.getProjectId());
- set.add(-1);
- moulds = mouldMapper.selectListByConditionByProject(userVO, set);
- } else {
- QueryWrapper<Project> qw = new QueryWrapper<>();
- qw.eq("manager_id", userVO.getId());
- List<Project> projects = projectMapper.selectList(qw);
- if (projects.size() > 0) {
- for (Project project : projects) {
- set.add(project.getId());
- }
- }
- // //充当普通人员参与的项目
- List<ProjectUser> projectUsers = projectUserMapper.selectList(new QueryWrapper<ProjectUser>().eq("user_id", userVO.getId()));
- if (projectUsers.size() > 0) {
- for (ProjectUser projectUser : projectUsers) {
- set.add(projectUser.getProjectId());
- }
- }
- // //充当审批人员参与的项目
- List<ProjectApprove> projectss = projectApproveMapper.selectList(new QueryWrapper<ProjectApprove>().eq("approver_id", userVO.getId()));
- if (projectss.size() > 0) {
- for (ProjectApprove projectUser : projectss) {
- set.add(projectUser.getProjectId());
- }
- }
- set.add(-1);
- moulds = mouldMapper.selectListByConditionByProject(userVO, set);
- }
- }
- PageInfo<MouldVO> pageInfo = new PageInfo<>(moulds);
- msg.data = pageInfo;
- } else {
- msg.setError("用户不存在或者未登录");
- }
- return msg;
- }
- @Override
- public HttpRespMsg getListByUser(String token) {
- HttpRespMsg msg = new HttpRespMsg();
- List<Integer> ides = new ArrayList<>();
- ides.add(-1);
- User user = userMapper.selectOne(new QueryWrapper<User>().eq("head_imgurl", token));
- List<Project> projects = new ArrayList<>();
- if (user != null) {
- QueryWrapper<Project> qw = new QueryWrapper<>();
- qw.select("id", "project_name");
- if (Constant.SYS_PARENT_ID.equals(user.getParentId())) {
- //系统超级管理员,可获得所有项目
- projects = projectMapper.selectList(qw);
- } else if (Constant.SYS_ID.equals(user.getParentId())) {
- //资产方管理员
- qw.eq("owner_company", user.getCompanyId());
- projects = projectMapper.selectList(qw);
- } else {
- QueryWrapper<Project> qwPro = new QueryWrapper<>();
- qwPro.eq("manager_id", user.getId());
- List<Project> projectList = projectMapper.selectList(qw);
- for (Project project : projectList) {
- ides.add(project.getId());
- }
- //项目经理或者普通用户
- List<ProjectUser> projectUsers = projectUserMapper.selectList(new QueryWrapper<ProjectUser>().eq("user_id", user.getId()));
- for (ProjectUser projectUser : projectUsers) {
- ides.add(projectUser.getProjectId());
- }
- //作为审批人
- List<ProjectApprove> projectApproves = projectApproveMapper.selectList(new QueryWrapper<ProjectApprove>().eq("approver_id", user.getId()));
- for (ProjectApprove projectApprove : projectApproves) {
- ides.add(projectApprove.getProjectId());
- }
- qw.in("id", ides);
- projects = projectMapper.selectList(qw);
- }
- msg.data = projects;
- } else {
- msg.setError("用户不存在或者未登录");
- }
- return msg;
- }
- @Override
- public HttpRespMsg getProjectListByUserAndCompany(UserVO userVO) {
- HttpRespMsg msg = new HttpRespMsg();
- User user = userMapper.selectOne(new QueryWrapper<User>().eq("head_imgurl", userVO.getToken()));
- List<Project> list = new ArrayList<>();
- if (user == null) {
- msg.setError("用户不存在或者未登录");
- return msg;
- } else {
- if (Constant.SYS_ID.equals(user.getParentId())) {
- //admin创建人员,获取该公司下的所有项目
- list = projectMapper.selectList(new QueryWrapper<Project>().eq("owner_company", user.getCompanyId()));
- } else {
- //项目经理创建人员,获取当前项目经理的充当项目经理的任务
- list = projectMapper.selectList(new QueryWrapper<Project>().eq("manager_id", user.getId()));
- }
- msg.data = list;
- }
- return msg;
- }
- @Override
- public HttpRespMsg getModelListMapByUser(UserVO userVO) {
- HttpRespMsg msg = new HttpRespMsg();
- userVO.setProjectId(-1);
- userVO.setMouleMap(-1);
- List<Integer> set = new ArrayList<>();
- set.add(-1);
- List<MouldVO> moulds = new ArrayList<>();
- if (userVO.getId() != null) {
- //资产方管理员,获取他公司下的所有模具
- if (Constant.SYS_PARENT_ID.equals(userVO.getParentId())) {
- //超级管理员,获取平台所有模具
- moulds = mouldMapper.selectListByCondition(userVO);
- } else if (Constant.SYS_ID.equals(userVO.getParentId())) {
- if (Constant.ASSETS_COMPANY.equals(userVO.getSubordinateType())) {
- //资产方管理员
- moulds = mouldMapper.selectListByCondition(userVO);
- } else if (Constant.PRODUCER_COMPANY.equals(userVO.getSubordinateType())) {
- set = customCompanyMapper.selectList(new QueryWrapper<CustomCompany>().eq("company_id", userVO.getCompanyId())).stream().map(CustomCompany::getProjectId).collect(Collectors.toList());
- set.add(-1);
- moulds = mouldMapper.selectListByConditionByProject(userVO, set);
- }
- } else {
- //普通用户或者项目经理
- //充当项目经理参与的项目
- if (userVO.getProjectId() != -1) {
- set.add(userVO.getProjectId());
- set.add(-1);
- moulds = mouldMapper.selectListByConditionByProject(userVO, set);
- } else {
- QueryWrapper<Project> qw = new QueryWrapper<>();
- qw.eq("manager_id", userVO.getId());
- List<Project> projects = projectMapper.selectList(qw);
- if (projects.size() > 0) {
- for (Project project : projects) {
- set.add(project.getId());
- }
- }
- // //充当普通人员参与的项目
- List<ProjectUser> projectUsers = projectUserMapper.selectList(new QueryWrapper<ProjectUser>().eq("user_id", userVO.getId()));
- if (projectUsers.size() > 0) {
- for (ProjectUser projectUser : projectUsers) {
- set.add(projectUser.getProjectId());
- }
- }
- // //充当审批人员参与的项目
- List<ProjectApprove> projectss = projectApproveMapper.selectList(new QueryWrapper<ProjectApprove>().eq("approver_id", userVO.getId()));
- if (projectss.size() > 0) {
- for (ProjectApprove projectUser : projectss) {
- set.add(projectUser.getProjectId());
- }
- }
- set.add(-1);
- moulds = mouldMapper.selectListByConditionByProject(userVO, set);
- }
- }
- msg.data = moulds;
- } else {
- msg.setError("用户不存在或者未登录");
- }
- return msg;
- }
- @Override
- public HttpRespMsg getModelListByCompanyIdAndProjectId(UserVO userVO) {
- HttpRespMsg msg = new HttpRespMsg();
- User user = userMapper.selectOne(new QueryWrapper<User>().eq("head_imgurl", userVO.getToken()));
- QueryWrapper<Mould> qw = new QueryWrapper<>();
- Integer companyId = -1;
- if (Constant.SYS_ID == user.getParentId()) {
- //此时是admin
- User admin = userMapper.selectOne(new QueryWrapper<User>().eq("id", user.getId()));
- companyId = admin.getCompanyId();
- // 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()));
- companyId = admin.getCompanyId();
- // qw.eq("company_id", admin.getCompanyId());
- }
- // List<Mould> moulds = mouldMapper.selectList(new QueryWrapper<Mould>().eq("company_id", companyId).isNull("project_id"));
- msg.data = mouldMapper.selectListByCompanyId(companyId, userVO.getProjectId());
- return msg;
- }
- @Override
- public HttpRespMsg setProjectDelete(Project project, String token) {
- HttpRespMsg msg = new HttpRespMsg();
- User user = userMapper.selectOne(new QueryWrapper<User>().eq("head_imgurl", token));
- if ((user.getParentId() == 1 && user.getSubordinateType() == 0)) {
- //资产方管理员才有权限操作
- projectMapper.updateById(project);
- } else {
- msg.setError("您无权操作,请联系资产方管理员操作。");
- }
- return msg;
- }
- }
|