MemberServiceImpl.java
6.43 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
package com.subsidy.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.subsidy.dto.member.AddProjectMembersDTO;
import com.subsidy.dto.member.DownloadFailClassMembers;
import com.subsidy.dto.member.DownloadFailClassMembersDTO;
import com.subsidy.dto.member.ImportClassMemberDTO;
import com.subsidy.mapper.*;
import com.subsidy.model.GroupMemberMappingDO;
import com.subsidy.model.LaborGroupDictDO;
import com.subsidy.model.MemberDO;
import com.subsidy.model.ProjectDO;
import com.subsidy.service.MemberService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.subsidy.util.excel.ExcelUtil;
import com.subsidy.vo.member.GetMembersVO;
import com.subsidy.vo.member.GroupMembersVO;
import com.subsidy.vo.member.ImportClassMembersVO;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import java.util.ArrayList;
import java.util.List;
/**
* <p>
* 服务实现类
* </p>
*
* @author Tuyp
* @since 2024-07-18
*/
@Service
public class MemberServiceImpl extends ServiceImpl<MemberMapper, MemberDO> implements MemberService {
@Autowired
private LaborGroupDictMapper laborGroupDictMapper;
@Autowired
private GroupMemberMappingMapper groupMemberMappingMapper;
@Autowired
private ProjectMemberMappingMapper projectMemberMappingMapper;
@Autowired
private ProjectMapper projectMapper;
@Autowired
private MemberMapper memberMapper;
public GetMembersVO getMembers(ProjectDO projectDO) {
GetMembersVO getMembersVO = new GetMembersVO();
ProjectDO projectDO1 = projectMapper.selectById(projectDO.getId());
LaborGroupDictDO laborGroupDictDO1 = laborGroupDictMapper.selectOne(new QueryWrapper<LaborGroupDictDO>()
.lambda()
.eq(LaborGroupDictDO::getLaborId, projectDO1.getLaborServiceId())
.isNull(LaborGroupDictDO::getParentId));
//父节点
getMembersVO.setId(laborGroupDictDO1.getId());
getMembersVO.setGroupName(laborGroupDictDO1.getGroupName());
//人
List<GroupMembersVO> groupMembersVOS = groupMemberMappingMapper.groupMembers(laborGroupDictDO1.getId(),projectDO.getId());
getMembersVO.setGroupMembersVOS(groupMembersVOS);
//子节点
List<LaborGroupDictDO> laborGroupDictDOS = laborGroupDictMapper.selectList(new QueryWrapper<LaborGroupDictDO>()
.lambda()
.eq(LaborGroupDictDO::getParentId, laborGroupDictDO1.getId()));
List<GetMembersVO> getMembersVOS = new ArrayList<>();
for (LaborGroupDictDO laborGroupDictDO2 : laborGroupDictDOS) {
GetMembersVO getMembersVO1 = new GetMembersVO();
List<GroupMembersVO> groupMembersVOS1 = groupMemberMappingMapper.groupMembers(laborGroupDictDO2.getId(),projectDO.getId());
getMembersVO1.setGroupName(laborGroupDictDO2.getGroupName());
getMembersVO1.setId(laborGroupDictDO2.getId());
getMembersVO1.setGroupMembersVOS(groupMembersVOS1);
getMembersVOS.add(getMembersVO1);
}
getMembersVO.setGetMembersVOS(getMembersVOS);
return getMembersVO;
}
public ImportClassMembersVO importClassMembers(MultipartFile multipartFile, Long projectId) {
ImportClassMembersVO importClassMembersVO = new ImportClassMembersVO();
ProjectDO projectDO = projectMapper.selectById(projectId);
List<ImportClassMemberDTO> importClassMemberDTOS = ExcelUtil.readExcel(null, ImportClassMemberDTO.class, multipartFile);
//查找企业下所有的学员的手机号 手机 姓名 身份证
List<String> companyMembers = groupMemberMappingMapper.allLaborMembers(projectDO.getLaborServiceId());
//查找项目下已经存在的人
List<String> projectMembers = groupMemberMappingMapper.allProjectMembers(projectDO.getId());
List<ImportClassMemberDTO> successMembers = new ArrayList<>();
List<ImportClassMemberDTO> failMembers = new ArrayList<>();
//查看该学员是否该企业下的人,不是的话就要返回 是的话直接导入成功
for (ImportClassMemberDTO imd : importClassMemberDTOS) {
//这个人是否已经在项目里了,在的话就不属于失败
if (null == imd.getUserName() || null == imd.getTelephone() || null == imd.getIdCard()) {
imd.setReason("人员信息不完整");
failMembers.add(imd);
} else if (!companyMembers.contains(imd.getUserName() + imd.getIdCard())) {
imd.setReason("企业内未查询到该成员信息");
failMembers.add(imd);
} else if (successMembers.contains(imd.getUserName() + imd.getIdCard())||projectMembers.contains(imd.getUserName() + imd.getIdCard())) {
imd.setReason("人员信息重复");
failMembers.add(imd);
} else{
MemberDO memberDO = memberMapper.selectOne(new QueryWrapper<MemberDO>()
.lambda()
.eq(MemberDO::getTelephone,imd.getTelephone()));
imd.setId(memberDO.getId());
imd.setLaborId(projectDO.getLaborServiceId());
GroupMemberMappingDO groupMemberMappingDO = groupMemberMappingMapper.selectOne(new QueryWrapper<GroupMemberMappingDO>()
.lambda()
.eq(GroupMemberMappingDO::getMemberId,memberDO.getId()));
imd.setGroupId(groupMemberMappingDO.getGroupId());
successMembers.add(imd);
}
}
importClassMembersVO.setSuccessMembers(successMembers);
importClassMembersVO.setFailureMembers(failMembers);
return importClassMembersVO;
}
public void downloadFailClassMembers(DownloadFailClassMembers downloadFailClassMembers) {
List<DownloadFailClassMembersDTO> downloadFailClassMembersDTOS = downloadFailClassMembers.getDownloadFailClassMembersDTOS();
ExcelUtil.writeExcel(downloadFailClassMembersDTOS, DownloadFailClassMembersDTO.class);
}
public void addProjectMembers(AddProjectMembersDTO addProjectMembersDTO) {
addProjectMembersDTO.getProjectMemberMappingDOS().stream().forEach(x->{
x.setProjectId(addProjectMembersDTO.getProjectId());
x.setStatus(1);
projectMemberMappingMapper.insert(x);
});
}
}