|
|
@@ -1,12 +1,15 @@
|
|
1
|
1
|
package com.smartSteward.service.schedule.impl;
|
|
|
2
|
+import java.util.ArrayList;
|
|
2
|
3
|
import java.util.Date;
|
|
3
|
4
|
import java.util.List;
|
|
|
5
|
+import java.util.function.Function;
|
|
4
|
6
|
import java.util.stream.Collectors;
|
|
5
|
7
|
|
|
6
|
8
|
import com.smartSteward.common.core.SecurityUtils;
|
|
7
|
9
|
import com.smartSteward.common.exception.ParameterException;
|
|
8
|
10
|
import com.smartSteward.common.utils.CollUtil;
|
|
9
|
11
|
import com.smartSteward.common.utils.DateUtils;
|
|
|
12
|
+import com.smartSteward.common.utils.bean.BeanUtils;
|
|
10
|
13
|
import com.smartSteward.entity.database.schedule.ScheduleClassUser;
|
|
11
|
14
|
import com.smartSteward.entity.database.schedule.ScheduleShiftManagement;
|
|
12
|
15
|
import com.smartSteward.entity.database.schedule.ScheduleWorkRecord;
|
|
|
@@ -118,6 +121,9 @@ public class ScheduleClassOpeningServiceImpl implements IScheduleClassOpeningSer
|
|
118
|
121
|
//新增班级用户关联
|
|
119
|
122
|
List<ScheduleClassUser> scheduleClassUsers = getScheduleClassUsers(scheduleClassOpening);
|
|
120
|
123
|
scheduleClassUserMapper.insertBatchScheduleClassUser(scheduleClassUsers);
|
|
|
124
|
+ //新增上班记录
|
|
|
125
|
+ List<ScheduleWorkRecord> scheduleWorkRecords = getScheduleWorkRecords(scheduleClassOpening);
|
|
|
126
|
+ scheduleWorkRecordMapper.insertBatchScheduleWorkRecord(scheduleWorkRecords);
|
|
121
|
127
|
}
|
|
122
|
128
|
return result;
|
|
123
|
129
|
}
|
|
|
@@ -141,6 +147,11 @@ public class ScheduleClassOpeningServiceImpl implements IScheduleClassOpeningSer
|
|
141
|
147
|
scheduleClassUserMapper.insertBatchScheduleClassUser(scheduleClassUsers);
|
|
142
|
148
|
scheduleClassOpening.setUpdateBy(SecurityUtils.getUsername());
|
|
143
|
149
|
scheduleClassOpening.setUpdateTime(DateUtils.getNowDate());
|
|
|
150
|
+ //删除原上班记录
|
|
|
151
|
+ scheduleWorkRecordMapper.deleteScheduleWorkRecordByClassId(scheduleClassOpening.getId());
|
|
|
152
|
+ //新增上班记录
|
|
|
153
|
+ List<ScheduleWorkRecord> scheduleWorkRecords = getScheduleWorkRecords(scheduleClassOpening);
|
|
|
154
|
+ scheduleWorkRecordMapper.insertBatchScheduleWorkRecord(scheduleWorkRecords);
|
|
144
|
155
|
return scheduleClassOpeningMapper.updateScheduleClassOpening(scheduleClassOpening);
|
|
145
|
156
|
}
|
|
146
|
157
|
|
|
|
@@ -163,28 +174,51 @@ public class ScheduleClassOpeningServiceImpl implements IScheduleClassOpeningSer
|
|
163
|
174
|
//从用户表获取用户信息
|
|
164
|
175
|
List<SysUserStationResult> sysUserStationResults =
|
|
165
|
176
|
sysUserMapper.selectUserStation(null,
|
|
166
|
|
- null, scheduleClassOpening.getUserIds().toArray(new Long[0]));
|
|
|
177
|
+ scheduleClassOpening.getStationId(), scheduleClassOpening.getUserIds().toArray(new Long[0]));
|
|
167
|
178
|
ScheduleShiftManagement scheduleShiftManagement =
|
|
168
|
179
|
scheduleShiftManagementMapper.selectScheduleShiftManagementById(scheduleClassOpening.getShiftId());
|
|
169
|
180
|
if (scheduleShiftManagement == null) {
|
|
170
|
181
|
throw new ParameterException("班次不存在");
|
|
171
|
182
|
}
|
|
172
|
|
- return sysUserStationResults.stream().map(userId -> {
|
|
173
|
|
-
|
|
|
183
|
+ //根据用户id去重
|
|
|
184
|
+ sysUserStationResults= new ArrayList<>(sysUserStationResults.stream().
|
|
|
185
|
+ collect(Collectors.toMap(SysUserStationResult::getUserId, Function.identity(), (oldValue, newValue) -> oldValue))
|
|
|
186
|
+ .values());
|
|
|
187
|
+ List<ScheduleWorkRecord> scheduleWorkRecords = new ArrayList<>();
|
|
|
188
|
+ for(SysUserStationResult sysUserStationResult : sysUserStationResults) {
|
|
174
|
189
|
ScheduleWorkRecord scheduleWorkRecord = new ScheduleWorkRecord();
|
|
175
|
|
- scheduleWorkRecord.setEmployeeId(userId.getUserId());
|
|
176
|
|
- scheduleWorkRecord.setEmployeeName(userId.getNickName());
|
|
177
|
|
- scheduleWorkRecord.setEmployeeNo(userId.getUserName());
|
|
|
190
|
+ scheduleWorkRecord.setEmployeeId(sysUserStationResult.getUserId());
|
|
|
191
|
+ scheduleWorkRecord.setEmployeeName(sysUserStationResult.getNickName());
|
|
|
192
|
+ scheduleWorkRecord.setEmployeeNo(sysUserStationResult.getUserName());
|
|
178
|
193
|
scheduleWorkRecord.setShiftId(scheduleShiftManagement.getId());
|
|
179
|
194
|
scheduleWorkRecord.setShiftName(scheduleShiftManagement.getShiftName());
|
|
180
|
|
- scheduleWorkRecord.setPosition(userId.getPostId());
|
|
181
|
|
-
|
|
|
195
|
+ scheduleWorkRecord.setPosition(sysUserStationResult.getPostId());
|
|
182
|
196
|
scheduleWorkRecord.setWorkDate(scheduleClassOpening.getWorkDate());
|
|
183
|
|
-// scheduleWorkRecord.setStartTime(scheduleShiftManagement.getStartTime());
|
|
184
|
|
-// scheduleWorkRecord.setEndTime(scheduleShiftManagement.getEndTime());
|
|
185
|
|
-// scheduleWorkRecord.setDuration(scheduleShiftManagement.getDuration());
|
|
186
|
|
- return scheduleWorkRecord;
|
|
187
|
|
- }).collect(Collectors.toList());
|
|
|
197
|
+ scheduleWorkRecord.setStationId(sysUserStationResult.getStationId());
|
|
|
198
|
+ scheduleWorkRecord.setStationName(sysUserStationResult.getStationName());
|
|
|
199
|
+ if (scheduleShiftManagement.getFirstStartTime()!=null&&scheduleShiftManagement.getFirstEndTime()!=null) {
|
|
|
200
|
+ //复制公共字段生成新对象
|
|
|
201
|
+ ScheduleWorkRecord newScheduleWorkRecord = new ScheduleWorkRecord();
|
|
|
202
|
+ BeanUtils.copyProperties(scheduleWorkRecord, newScheduleWorkRecord);
|
|
|
203
|
+ newScheduleWorkRecord.setStatus(0L);
|
|
|
204
|
+ newScheduleWorkRecord.setStartTime(scheduleShiftManagement.getFirstStartTime());
|
|
|
205
|
+ newScheduleWorkRecord.setEndTime(scheduleShiftManagement.getFirstEndTime());
|
|
|
206
|
+ newScheduleWorkRecord.setDuration(scheduleShiftManagement.getFirstDuration());
|
|
|
207
|
+ scheduleWorkRecords.add(newScheduleWorkRecord);
|
|
|
208
|
+ }
|
|
|
209
|
+ if(scheduleShiftManagement.getSecondStartTime()!=null&&scheduleShiftManagement.getSecondEndTime()!=null) {
|
|
|
210
|
+ //复制公共字段生成新对象
|
|
|
211
|
+ ScheduleWorkRecord newScheduleWorkRecord = new ScheduleWorkRecord();
|
|
|
212
|
+ BeanUtils.copyProperties(scheduleWorkRecord, newScheduleWorkRecord);
|
|
|
213
|
+ newScheduleWorkRecord.setStatus(0L);
|
|
|
214
|
+ newScheduleWorkRecord.setStartTime(scheduleShiftManagement.getSecondStartTime());
|
|
|
215
|
+ newScheduleWorkRecord.setEndTime(scheduleShiftManagement.getSecondEndTime());
|
|
|
216
|
+ newScheduleWorkRecord.setDuration(scheduleShiftManagement.getSecondDuration());
|
|
|
217
|
+ scheduleWorkRecords.add(newScheduleWorkRecord);
|
|
|
218
|
+ }
|
|
|
219
|
+
|
|
|
220
|
+ }
|
|
|
221
|
+ return scheduleWorkRecords;
|
|
188
|
222
|
}
|
|
189
|
223
|
|
|
190
|
224
|
|