浏览代码

Merge branch 'master' of http://10.1.235.20:3000/asiainfo/ebc

xiayu3 4 年之前
父节点
当前提交
3cbe6f2c39

+ 46 - 8
location-rescue-service/pom.xml

@ -202,14 +202,47 @@
202 202
    </pluginRepositories>
203 203
204 204
    <build>
205
206 205
        <resources>
207 206
            <resource>
208 207
                <directory>src/main/resources</directory>
208
                <!-- 根据输入参数动态修改相关内容 -->
209
                <filtering>true</filtering>
210
                <excludes/>
209 211
            </resource>
210 212
        </resources>
211
212 213
        <plugins>
214
            <!-- 配置文件转移到conf目录 -->
215
            <plugin>
216
                <groupId>org.apache.maven.plugins</groupId>
217
                <artifactId>maven-resources-plugin</artifactId>
218
                <executions>
219
                    <execution>
220
                        <id>copy-resources</id>
221
                        <phase>package</phase>
222
                        <goals>
223
                            <goal>copy-resources</goal>
224
                        </goals>
225
                        <configuration>
226
                            <encoding>UTF-8</encoding>
227
                            <!-- 表示把配置文件拷到和jar包同一个路径下 -->
228
                            <outputDirectory>
229
                                ${project.build.directory}/conf
230
                            </outputDirectory>
231
                            <resources>
232
                                <resource>
233
                                    <directory>${project.build.directory}/classes</directory>
234
                                    <includes>
235
                                        <include>db/*.sql</include>
236
                                        <include>**/*.yml</include>
237
                                        <include>**/*.xml</include>
238
                                        <include>**/*.properties</include>
239
                                    </includes>
240
                                </resource>
241
                            </resources>
242
                        </configuration>
243
                    </execution>
244
                </executions>
245
            </plugin>
213 246
214 247
            <!-- The configuration of maven-jar-plugin -->
215 248
            <plugin>
@ -218,7 +251,7 @@
218 251
                <version>2.4</version>
219 252
                <!-- The configuration of the plugin -->
220 253
                <configuration>
221
                    <!-- Configuration of the archiver -->
254
                    <!-- Configuration of the archive -->
222 255
                    <archive>
223 256
                        <!--生成的jar中,不要包含pom.xml和pom.properties这两个文件-->
224 257
                        <addMavenDescriptor>false</addMavenDescriptor>
@ -231,20 +264,25 @@
231 264
                            <classpathPrefix>lib/</classpathPrefix>
232 265
                            <!--应用的main class-->
233 266
                            <mainClass>com.ai.bss.location.rescue.LocationRescueApp</mainClass>
234
                            <!--                            <useUniqueVersions>true</useUniqueVersions>-->
267
                            <!-- MANIFEST.MF文件添加SNAPSHOT依赖包的时候,不带时间戳,直接使用SNAPSHOT -->
268
                            <useUniqueVersions>false</useUniqueVersions>
235 269
                        </manifest>
236 270
                        <manifestEntries>
237
                            <Class-Path>./config/</Class-Path>
271
                            <Class-Path>./conf/</Class-Path>
238 272
                        </manifestEntries>
239 273
                    </archive>
240 274
                    <!--过滤掉不希望包含在jar中的文件-->
241 275
                    <excludes>
242 276
                        <exclude>**/*.properties</exclude>
243 277
                        <exclude>**/*.xml</exclude>
278
                        <exclude>**/*.yml</exclude>
279
                        <exclude>**/*.sql</exclude>
280
                        <exclude>db</exclude>
244 281
                    </excludes>
245 282
                </configuration>
246 283
            </plugin>
247 284
285
            <!-- 配置依赖jar转移到lib目录 -->
248 286
            <plugin>
249 287
                <groupId>org.apache.maven.plugins</groupId>
250 288
                <artifactId>maven-dependency-plugin</artifactId>
@ -272,7 +310,7 @@
272 310
                <configuration>
273 311
                    <!-- Specifies the configuration file of the assembly plugin -->
274 312
                    <descriptors>
275
                        <descriptor>src/main/assembly/package.xml</descriptor>
313
                        <descriptor>src/main/assembly/assembly.xml</descriptor>
276 314
                    </descriptors>
277 315
                </configuration>
278 316
                <executions>
@ -286,6 +324,7 @@
286 324
                </executions>
287 325
            </plugin>
288 326
327
            <!-- 不打包test代码 -->
289 328
            <plugin>
290 329
                <groupId>org.apache.maven.plugins</groupId>
291 330
                <artifactId>maven-surefire-plugin</artifactId>
@ -294,8 +333,7 @@
294 333
                </configuration>
295 334
            </plugin>
296 335
        </plugins>
297
298
        <finalName>${project.artifactId}</finalName>
299 336
    </build>
300 337
338
301 339
</project>

+ 68 - 0
location-rescue-service/src/main/assembly/assembly.xml

@ -0,0 +1,68 @@
1
<assembly>
2
    <id>bin</id>
3
    <!-- 最终打包成一个用于发布的zip文件 -->
4
    <formats>
5
        <format>zip</format>
6
    </formats>
7
8
    <fileSets>
9
        <!-- 把项目相关的说明文件,打包进zip文件的根目录 -->
10
        <fileSet>
11
            <directory>${project.basedir}</directory>
12
            <outputDirectory>/</outputDirectory>
13
            <includes>
14
                <include>README*</include>
15
                <include>LICENSE*</include>
16
                <include>NOTICE*</include>
17
            </includes>
18
        </fileSet>
19
20
        <!-- 把项目的配置文件,打包进zip文件的conf目录 -->
21
        <fileSet>
22
            <directory>${project.build.directory}/conf</directory>
23
            <outputDirectory>/${project.build.finalName}/conf</outputDirectory>
24
            <directoryMode>0755</directoryMode>
25
            <fileMode>0644</fileMode>
26
        </fileSet>
27
28
        <!-- Adds dependencies to zip package under lib directory -->
29
        <fileSet>
30
            <directory>${project.build.directory}/lib</directory>
31
            <outputDirectory>/${project.build.finalName}/lib</outputDirectory>
32
            <directoryMode>0755</directoryMode>
33
            <fileMode>0644</fileMode>
34
        </fileSet>
35
36
         <!--把项目的脚本文件目录( src/main/scripts )中的启动脚本文件,打包进zip文件的根目录下script文件夹下 -->
37
         <fileSet>
38
             <directory>${project.basedir}/src/bin</directory>
39
             <outputDirectory>/bin</outputDirectory>
40
             <directoryMode>0755</directoryMode>
41
             <fileMode>0755</fileMode>
42
             <lineEnding>unix</lineEnding>
43
             <includes>
44
                 <include>*.sh</include>
45
                 <include>*.conf</include>
46
             </includes>
47
         </fileSet>
48
49
        <fileSet>
50
            <directory>${project.basedir}/src/bin</directory>
51
            <outputDirectory>/bin</outputDirectory>
52
            <directoryMode>0755</directoryMode>
53
            <fileMode>0755</fileMode>
54
            <lineEnding>dos</lineEnding>
55
            <includes>
56
                <include>*.bat</include>
57
            </includes>
58
        </fileSet>
59
        <!-- 把项目自己编译出来的jar文件,打包进zip文件的根目录 -->
60
        <fileSet>
61
            <directory>${project.build.directory}</directory>
62
            <outputDirectory>/${project.build.finalName}</outputDirectory>
63
            <includes>
64
                <include>${project.build.finalName}.jar</include>
65
            </includes>
66
        </fileSet>
67
    </fileSets>
68
</assembly>

+ 46 - 8
security-protection-service/pom.xml

@ -189,10 +189,44 @@
189 189
        <resources>
190 190
            <resource>
191 191
                <directory>src/main/resources</directory>
192
                <!-- 根据输入参数动态修改相关内容 -->
193
                <filtering>true</filtering>
194
                <excludes/>
192 195
            </resource>
193 196
        </resources>
194
195 197
        <plugins>
198
            <!-- 配置文件转移到conf目录 -->
199
            <plugin>
200
                <groupId>org.apache.maven.plugins</groupId>
201
                <artifactId>maven-resources-plugin</artifactId>
202
                <executions>
203
                    <execution>
204
                        <id>copy-resources</id>
205
                        <phase>package</phase>
206
                        <goals>
207
                            <goal>copy-resources</goal>
208
                        </goals>
209
                        <configuration>
210
                            <encoding>UTF-8</encoding>
211
                            <!-- 表示把配置文件拷到和jar包同一个路径下 -->
212
                            <outputDirectory>
213
                                ${project.build.directory}/conf
214
                            </outputDirectory>
215
                            <resources>
216
                                <resource>
217
                                    <directory>${project.build.directory}/classes</directory>
218
                                    <includes>
219
                                        <include>db/*.sql</include>
220
                                        <include>**/*.yml</include>
221
                                        <include>**/*.xml</include>
222
                                        <include>**/*.properties</include>
223
                                    </includes>
224
                                </resource>
225
                            </resources>
226
                        </configuration>
227
                    </execution>
228
                </executions>
229
            </plugin>
196 230
197 231
            <!-- The configuration of maven-jar-plugin -->
198 232
            <plugin>
@ -201,7 +235,7 @@
201 235
                <version>2.4</version>
202 236
                <!-- The configuration of the plugin -->
203 237
                <configuration>
204
                    <!-- Configuration of the archiver -->
238
                    <!-- Configuration of the archive -->
205 239
                    <archive>
206 240
                        <!--生成的jar中,不要包含pom.xml和pom.properties这两个文件-->
207 241
                        <addMavenDescriptor>false</addMavenDescriptor>
@ -214,19 +248,25 @@
214 248
                            <classpathPrefix>lib/</classpathPrefix>
215 249
                            <!--应用的main class-->
216 250
                            <mainClass>com.ai.bss.security.protection.SecurityProtectionApp</mainClass>
251
                            <!-- MANIFEST.MF文件添加SNAPSHOT依赖包的时候,不带时间戳,直接使用SNAPSHOT -->
252
                            <useUniqueVersions>false</useUniqueVersions>
217 253
                        </manifest>
218 254
                        <manifestEntries>
219
                            <Class-Path>./config/</Class-Path>
255
                            <Class-Path>./conf/</Class-Path>
220 256
                        </manifestEntries>
221 257
                    </archive>
222 258
                    <!--过滤掉不希望包含在jar中的文件-->
223 259
                    <excludes>
224 260
                        <exclude>**/*.properties</exclude>
225 261
                        <exclude>**/*.xml</exclude>
262
                        <exclude>**/*.yml</exclude>
263
                        <exclude>**/*.sql</exclude>
264
                        <exclude>db</exclude>
226 265
                    </excludes>
227 266
                </configuration>
228 267
            </plugin>
229 268
269
            <!-- 配置依赖jar转移到lib目录 -->
230 270
            <plugin>
231 271
                <groupId>org.apache.maven.plugins</groupId>
232 272
                <artifactId>maven-dependency-plugin</artifactId>
@ -240,7 +280,6 @@
240 280
                        </goals>
241 281
                        <configuration>
242 282
                            <outputDirectory>${project.build.directory}/lib</outputDirectory>
243
                            <outputAbsoluteArtifactFilename></outputAbsoluteArtifactFilename>
244 283
                        </configuration>
245 284
                    </execution>
246 285
                </executions>
@ -255,7 +294,7 @@
255 294
                <configuration>
256 295
                    <!-- Specifies the configuration file of the assembly plugin -->
257 296
                    <descriptors>
258
                        <descriptor>src/main/assembly/package.xml</descriptor>
297
                        <descriptor>src/main/assembly/assembly.xml</descriptor>
259 298
                    </descriptors>
260 299
                </configuration>
261 300
                <executions>
@ -269,6 +308,7 @@
269 308
                </executions>
270 309
            </plugin>
271 310
311
            <!-- 不打包test代码 -->
272 312
            <plugin>
273 313
                <groupId>org.apache.maven.plugins</groupId>
274 314
                <artifactId>maven-surefire-plugin</artifactId>
@ -277,8 +317,6 @@
277 317
                </configuration>
278 318
            </plugin>
279 319
        </plugins>
280
281
        <finalName>${project.artifactId}</finalName>
282
283 320
    </build>
321
284 322
</project>

+ 68 - 0
security-protection-service/src/main/assembly/assembly.xml

@ -0,0 +1,68 @@
1
<assembly>
2
    <id>bin</id>
3
    <!-- 最终打包成一个用于发布的zip文件 -->
4
    <formats>
5
        <format>zip</format>
6
    </formats>
7
8
    <fileSets>
9
        <!-- 把项目相关的说明文件,打包进zip文件的根目录 -->
10
        <fileSet>
11
            <directory>${project.basedir}</directory>
12
            <outputDirectory>/</outputDirectory>
13
            <includes>
14
                <include>README*</include>
15
                <include>LICENSE*</include>
16
                <include>NOTICE*</include>
17
            </includes>
18
        </fileSet>
19
20
        <!-- 把项目的配置文件,打包进zip文件的conf目录 -->
21
        <fileSet>
22
            <directory>${project.build.directory}/conf</directory>
23
            <outputDirectory>/${project.build.finalName}/conf</outputDirectory>
24
            <directoryMode>0755</directoryMode>
25
            <fileMode>0644</fileMode>
26
        </fileSet>
27
28
        <!-- Adds dependencies to zip package under lib directory -->
29
        <fileSet>
30
            <directory>${project.build.directory}/lib</directory>
31
            <outputDirectory>/${project.build.finalName}/lib</outputDirectory>
32
            <directoryMode>0755</directoryMode>
33
            <fileMode>0644</fileMode>
34
        </fileSet>
35
36
         <!--把项目的脚本文件目录( src/main/scripts )中的启动脚本文件,打包进zip文件的根目录下script文件夹下 -->
37
         <fileSet>
38
             <directory>${project.basedir}/src/bin</directory>
39
             <outputDirectory>/bin</outputDirectory>
40
             <directoryMode>0755</directoryMode>
41
             <fileMode>0755</fileMode>
42
             <lineEnding>unix</lineEnding>
43
             <includes>
44
                 <include>*.sh</include>
45
                 <include>*.conf</include>
46
             </includes>
47
         </fileSet>
48
49
        <fileSet>
50
            <directory>${project.basedir}/src/bin</directory>
51
            <outputDirectory>/bin</outputDirectory>
52
            <directoryMode>0755</directoryMode>
53
            <fileMode>0755</fileMode>
54
            <lineEnding>dos</lineEnding>
55
            <includes>
56
                <include>*.bat</include>
57
            </includes>
58
        </fileSet>
59
        <!-- 把项目自己编译出来的jar文件,打包进zip文件的根目录 -->
60
        <fileSet>
61
            <directory>${project.build.directory}</directory>
62
            <outputDirectory>/${project.build.finalName}</outputDirectory>
63
            <includes>
64
                <include>${project.build.finalName}.jar</include>
65
            </includes>
66
        </fileSet>
67
    </fileSets>
68
</assembly>

+ 31 - 15
security-protection-service/src/main/java/com/ai/bss/security/protection/service/impl/AiAlarmManageServiceImpl.java

@ -18,6 +18,7 @@ import com.ai.bss.security.protection.service.interfaces.AiAlarmManageService;
18 18
import com.ai.bss.security.protection.service.interfaces.CharSpecService;
19 19
import com.ai.bss.security.protection.service.interfaces.MonitorVideoLogManageService;
20 20
import com.ai.bss.security.protection.service.interfaces.UploadFileService;
21
import com.ai.bss.security.protection.utils.DateUtil;
21 22
import com.ai.bss.security.protection.utils.EbcConstant;
22 23
import com.ai.bss.user.dto.EmployeeDto;
23 24
import com.ai.bss.user.service.api.EmployeeService;
@ -26,6 +27,9 @@ import com.ai.bss.work.safety.model.WorkTaskSafetyAlarm;
26 27
import com.ai.bss.work.safety.service.api.AiTaskQuery;
27 28
import com.ai.bss.work.service.api.WorkTaskCommand;
28 29
import com.ai.bss.work.task.model.common.WorkTask;
30
import com.alibaba.fastjson.JSON;
31
import com.alibaba.fastjson.JSONObject;
32
import com.alibaba.fastjson.TypeReference;
29 33
30 34
/**
31 35
 * @Auther: 王超
@ -77,11 +81,10 @@ public class AiAlarmManageServiceImpl implements AiAlarmManageService {
77 81
                }
78 82
            }
79 83
            //根据报警类型查找报警中文名字
84
			aiAlarm.put("alarmTypeName", aiAlarm.get("alarmTypeCode"));
80 85
            aiAlarmTypeList.forEach((aiAlarmType) -> {
81 86
                if (aiAlarmType.getCode().equals(aiAlarm.get("alarmTypeCode"))) {
82 87
                    aiAlarm.put("alarmTypeName", aiAlarmType.getValue());
83
                }else {
84
                    aiAlarm.put("alarmTypeName", aiAlarm.get("alarmTypeCode"));
85 88
                }
86 89
            });
87 90
        });
@ -91,7 +94,7 @@ public class AiAlarmManageServiceImpl implements AiAlarmManageService {
91 94
92 95
    @Override
93 96
    public CommonResponse<WorkTask> changeTaskStatus(CommonRequest<WorkTask> workTaskRequest) {
94
        CommonResponse changeResultResponse = workTaskCommand.changeTaskStatus(workTaskRequest);
97
    	CommonResponse<WorkTask> changeResultResponse = workTaskCommand.changeTaskStatus(workTaskRequest);
95 98
        return changeResultResponse;
96 99
    }
97 100
    
@ -118,40 +121,53 @@ public class AiAlarmManageServiceImpl implements AiAlarmManageService {
118 121
			return CommonResponse.fail("504", "获取失败");
119 122
		}
120 123
		
121
		WorkTaskSafetyAlarm workTaskSafetyAlarm=response.getData();
124
		//报警详细信息
125
		Map<String, String> workTaskSafetyAlarmMap= JSON.parseObject(JSON.toJSONString(response.getData()), new TypeReference<Map<String, String>>() {
126
        });
122 127
		
123 128
		List<CharacteristicSpecValue> aiAlarmTypeList = charSpecService.getCharSpecList(EbcConstant.BUSINESS_SPEC_AI_ALARM_TYPE);
124 129
		for (CharacteristicSpecValue characteristicSpecValue : aiAlarmTypeList) {
125
			if (characteristicSpecValue.getCode().equals(workTaskSafetyAlarm.getAlarmTypeCode())) {
126
				workTaskSafetyAlarm.setAlarmTypeCode(characteristicSpecValue.getValue());
130
			if (characteristicSpecValue.getCode().equals(workTaskSafetyAlarmMap.get("alarmTypeCode"))) {
131
				workTaskSafetyAlarmMap.put("alarmTypeCodeZh",characteristicSpecValue.getValue());
127 132
				break;
128 133
			}
129 134
		}
130 135
		List<CharacteristicSpecValue> aiAlarmStatusList = charSpecService.getCharSpecList(EbcConstant.BUSINESS_SPEC_AI_TASK_STATUS);
131 136
		for (CharacteristicSpecValue characteristicSpecValue : aiAlarmStatusList) {
132
			if (characteristicSpecValue.getCode().equals(workTaskSafetyAlarm.getStatus())) {
133
				workTaskSafetyAlarm.setStatus(characteristicSpecValue.getValue());
137
			if (characteristicSpecValue.getCode().equals(workTaskSafetyAlarmMap.get("status"))) {
138
				workTaskSafetyAlarmMap.put("statusZh",characteristicSpecValue.getValue());
134 139
				break;
135 140
			}
136 141
		}
137 142
		
138
		if(StringUtils.isNotEmpty(workTaskSafetyAlarm.getWorkEmployeeRoleId())){
139
            long relateEmployeeRoleId = Long.parseLong(workTaskSafetyAlarm.getWorkEmployeeRoleId());
143
		if(StringUtils.isNotEmpty(workTaskSafetyAlarmMap.get("workEmployeeRoleId"))){
144
            long relateEmployeeRoleId = Long.parseLong(workTaskSafetyAlarmMap.get("workEmployeeRoleId"));
140 145
141 146
            EmployeeDto employeeDto = new EmployeeDto();
142 147
            employeeDto.setId(relateEmployeeRoleId);
143 148
            CommonRequest<EmployeeDto> employeeDtoRequest = new CommonRequest<EmployeeDto>(employeeDto);
144 149
            CommonResponse<EmployeeDto> employeeDtoResponse = employeeService.queryEmployee(employeeDtoRequest);
145 150
            if (employeeDtoResponse==null||employeeDtoResponse.getData()==null) {
146
            	workTaskSafetyAlarm.setWorkEmployeeRoleName("--");
151
            	workTaskSafetyAlarmMap.put("workEmployeeRoleName","--");
147 152
			}else {
148
				workTaskSafetyAlarm.setWorkEmployeeRoleName(employeeDtoResponse.getData().getName());
153
				workTaskSafetyAlarmMap.put("workEmployeeRoleName",employeeDtoResponse.getData().getName());
149 154
			}
150 155
        }
151 156
		
152
		Map<String, String> pictureMap= uploadFileService.getFileUrlToMap(workTaskSafetyAlarm.getIdenPictureUrl());
157
		if (WorkTask.END_STATUS.equals(workTaskSafetyAlarmMap.get("status"))||WorkTask.FALSE_ALARM_STATUS.equals(workTaskSafetyAlarmMap.get("status"))) {
158
			workTaskSafetyAlarmMap.put("disposeDate",DateUtil.formatDate(response.getData().getDoneDate()));
159
		}else {
160
			workTaskSafetyAlarmMap.put("disposeDate","");
161
		}
162
		
163
		workTaskSafetyAlarmMap.put("createDate",DateUtil.formatDate(response.getData().getCreateDate()));
164
		workTaskSafetyAlarmMap.put("aiIdenTime",DateUtil.formatDate(response.getData().getAiIdenTime()));
165
		
166
		//图片信息
167
		Map<String, String> pictureMap= uploadFileService.getFileUrlToMap(workTaskSafetyAlarmMap.get("idenPictureUrl"));
153 168
		
154
		List<EbcMonitorVideoLog> logsList=monitorVideoLogManageService.getMonitorVideoLogByPictureTime(pictureMap.get("fileDateTimeStr"), workTaskSafetyAlarm.getResourceToolId()).getData();
169
		//视频信息
170
		List<EbcMonitorVideoLog> logsList=monitorVideoLogManageService.getMonitorVideoLogByPictureTime(pictureMap.get("fileDateTimeStr"), workTaskSafetyAlarmMap.get("resourceToolId")).getData();
155 171
		EbcMonitorVideoLog ebcMonitorVideoLog=null;
156 172
		if (!CollectionUtils.isEmpty(logsList)) {
157 173
			ebcMonitorVideoLog=logsList.get(0);
@ -159,7 +175,7 @@ public class AiAlarmManageServiceImpl implements AiAlarmManageService {
159 175
		}
160 176
		
161 177
		Map<String,Object> resultMap= new HashMap<String, Object>();
162
		resultMap.put("alarmInfo", workTaskSafetyAlarm);
178
		resultMap.put("alarmInfo", workTaskSafetyAlarmMap);
163 179
		resultMap.put("pictureInfo", pictureMap);
164 180
		resultMap.put("videoInfo", ebcMonitorVideoLog);
165 181
		return CommonResponse.ok(resultMap);

+ 248 - 171
security-protection-service/src/main/java/com/ai/bss/security/protection/service/impl/AttendanceReportServiceImpl.java

@ -12,6 +12,8 @@ import org.springframework.beans.factory.annotation.Autowired;
12 12
import org.springframework.stereotype.Service;
13 13
import org.springframework.util.CollectionUtils;
14 14
15
import java.math.BigDecimal;
16
import java.text.NumberFormat;
15 17
import java.text.ParseException;
16 18
import java.text.SimpleDateFormat;
17 19
import java.util.ArrayList;
@ -57,18 +59,17 @@ public class AttendanceReportServiceImpl implements AttendanceReportService {
57 59
                paramap.put("beginDay",formatter.format((Date) dailyAttendanceMap.get("beginDay")));
58 60
                paramap.put("endDay",formatter.format((Date) dailyAttendanceMap.get("endDay")));
59 61
60
           /* for(Map<String, Object> dailyAttendance:dailyAttendanceList ){
61
                dailyAttendance.put("beginDay",paramap.get("beginDay"));
62
                dailyAttendance.put("endDay",paramap.get("endDay"));
63
                mainjobpositionList.forEach((mainjobposition) -> {
64
                    if (mainjobposition.getCode().equals(dailyAttendance.get("mainJobPositionId"))) {
65
                        dailyAttendance.put("mainJobPositionId", mainjobposition.getValue());
66
                    }
67
                });
68
            }*/
69
70 62
                dailyAttendanceList.forEach((dailyAttendance)-> {
71
                    //转换迟到和早退的分钟为小时
63
                    //转换迟到和早退的分钟为小时 lateMinutes
64
                    long lateMinutes1 = (long) dailyAttendance.get("lateMinutes");
65
                    int lateMinute = (int)lateMinutes1;
66
                    double lateMinutes = new BigDecimal((float)lateMinute/60).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
67
                    dailyAttendance.put("lateMinutes", lateMinutes);
68
69
                    long earlyExitMinutes1 = (long) dailyAttendance.get("earlyExitMinutes");
70
                    int earlyExitMinute = (int)earlyExitMinutes1;
71
                    double earlyExitMinutes = new BigDecimal((float)earlyExitMinute/60).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
72
                    dailyAttendance.put("earlyExitMinutes", earlyExitMinutes);
72 73
73 74
                    //将每一条都加上开始和结束时间
74 75
                    dailyAttendance.put("beginDay",paramap.get("beginDay"));
@ -173,46 +174,85 @@ public class AttendanceReportServiceImpl implements AttendanceReportService {
173 174
                }
174 175
                //如果上午正常,下午非正常 则显示下午的
175 176
                if("正常".equals(dailyAttendance.get("goToWorkStatus"))&&!"正常".equals(dailyAttendance.get("goOffWorkStatus"))){
176
                    if("迟到".equals(dailyAttendance.get("goOffWorkStatus"))){
177
                        attendanceStatusList.add("迟到"+dailyAttendance.get("goOffWorkTime") +"分");
178
                        dailyAttendance.put("isAbnormal",true);
179
                    }else if("早退".equals(dailyAttendance.get("goOffWorkStatus"))){
180
                        attendanceStatusList.add("早退"+dailyAttendance.get("goOffWorkTime") +"分");
181
                        dailyAttendance.put("isAbnormal",true);
182
                    }else if("旷工".equals(dailyAttendance.get("goOffWorkStatus"))){
183
                        attendanceStatusList.add("旷工0.5天");
184
                        dailyAttendance.put("isAbnormal",true);
185
                    }else if("倒休".equals(dailyAttendance.get("goOffWorkStatus"))||"事假".equals(dailyAttendance.get("goOffWorkStatus"))||"年假".equals(dailyAttendance.get("goOffWorkStatus"))||"放假".equals(dailyAttendance.get("goOffWorkStatus"))||"病假".equals(dailyAttendance.get("goOffWorkStatus"))){
186
                        attendanceStatusList.add(dailyAttendance.get("goOffWorkStatus"));
187
                        dailyAttendance.put("isAbnormal",false);
177
                    //如果包含下午外勤,则除了放假之类的和旷工都不显示
178
                    if(!attendanceStatusList.isEmpty()&&!attendanceStatusList.contains("下午外勤")){
179
                        if("迟到".equals(dailyAttendance.get("goOffWorkStatus"))){
180
                            attendanceStatusList.add("迟到"+dailyAttendance.get("goOffWorkTime") +"分");
181
                            dailyAttendance.put("isAbnormal",true);
182
                        }else if("早退".equals(dailyAttendance.get("goOffWorkStatus"))){
183
                            attendanceStatusList.add("早退"+dailyAttendance.get("goOffWorkTime") +"分");
184
                            dailyAttendance.put("isAbnormal",true);
185
                        }else if("旷工".equals(dailyAttendance.get("goOffWorkStatus"))){
186
                            attendanceStatusList.add("旷工0.5天");
187
                            dailyAttendance.put("isAbnormal",true);
188
                        }else if("未打卡".equals(dailyAttendance.get("goOffWorkStatus"))){
189
                            attendanceStatusList.add("下午未打卡");
190
                            dailyAttendance.put("isAbnormal",true);
191
                        }else if("倒休".equals(dailyAttendance.get("goOffWorkStatus"))||"事假".equals(dailyAttendance.get("goOffWorkStatus"))||"年假".equals(dailyAttendance.get("goOffWorkStatus"))||"放假".equals(dailyAttendance.get("goOffWorkStatus"))||"病假".equals(dailyAttendance.get("goOffWorkStatus"))){
192
                            attendanceStatusList.add(dailyAttendance.get("goOffWorkStatus"));
193
                            dailyAttendance.put("isAbnormal",false);
194
                        }else{
195
                            attendanceStatusList.add(dailyAttendance.get("goOffWorkStatus"));
196
                            dailyAttendance.put("isAbnormal",true);
197
                        }
188 198
                    }else{
189
                        attendanceStatusList.add(dailyAttendance.get("goOffWorkStatus"));
190
                        dailyAttendance.put("isAbnormal",true);
199
                        if("旷工".equals(dailyAttendance.get("goOffWorkStatus"))){
200
                            attendanceStatusList.add("旷工0.5天");
201
                            dailyAttendance.put("isAbnormal",true);
202
                        }else if("倒休".equals(dailyAttendance.get("goOffWorkStatus"))||"事假".equals(dailyAttendance.get("goOffWorkStatus"))||"年假".equals(dailyAttendance.get("goOffWorkStatus"))||"放假".equals(dailyAttendance.get("goOffWorkStatus"))||"病假".equals(dailyAttendance.get("goOffWorkStatus"))){
203
                            attendanceStatusList.clear();
204
                            attendanceStatusList.add(dailyAttendance.get("goOffWorkStatus"));
205
                            dailyAttendance.put("isAbnormal",false);
206
                        }else{
207
                            dailyAttendance.put("isAbnormal",false);
208
                        }
209
191 210
                    }
211
212
192 213
                }
193 214
                //如果上午非正常,下午正常 则显示上午的
194 215
                if(!"正常".equals(dailyAttendance.get("goToWorkStatus"))&&"正常".equals(dailyAttendance.get("goOffWorkStatus"))){
195
                    if("迟到".equals(dailyAttendance.get("goToWorkStatus"))){
196
                        attendanceStatusList.add("迟到"+dailyAttendance.get("lateMinutes") +"分");
197
                        dailyAttendance.put("isAbnormal",true);
198
                    }else if("早退".equals(dailyAttendance.get("goToWorkStatus"))){
199
                        attendanceStatusList.add("早退"+dailyAttendance.get("earlyExitMinutes") +"分");
200
                        dailyAttendance.put("isAbnormal",true);
201
                    }else if("旷工".equals(dailyAttendance.get("goToWorkStatus"))){
202
                        attendanceStatusList.add("旷工0.5天");
203
                        dailyAttendance.put("isAbnormal",true);
204
                    }else if("倒休".equals(dailyAttendance.get("goToWorkStatus"))||"事假".equals(dailyAttendance.get("goToWorkStatus"))||"年假".equals(dailyAttendance.get("goToWorkStatus"))||"放假".equals(dailyAttendance.get("goToWorkStatus"))||"病假".equals(dailyAttendance.get("goToWorkStatus"))){
205
                        attendanceStatusList.add(dailyAttendance.get("goToWorkStatus"));
206
                        dailyAttendance.put("isAbnormal",false);
216
                    //如果包含上午外勤,则除了放假之类的和旷工都不显示
217
                    if(!attendanceStatusList.isEmpty()&&!attendanceStatusList.contains("上午外勤")){
218
                        if("迟到".equals(dailyAttendance.get("goToWorkStatus"))){
219
                            attendanceStatusList.add("迟到"+dailyAttendance.get("lateMinutes") +"分");
220
                            dailyAttendance.put("isAbnormal",true);
221
                        }else if("早退".equals(dailyAttendance.get("goToWorkStatus"))){
222
                            attendanceStatusList.add("早退"+dailyAttendance.get("earlyExitMinutes") +"分");
223
                            dailyAttendance.put("isAbnormal",true);
224
                        }else if("旷工".equals(dailyAttendance.get("goToWorkStatus"))){
225
                            attendanceStatusList.add("旷工0.5天");
226
                            dailyAttendance.put("isAbnormal",true);
227
                        }else if("未打卡".equals(dailyAttendance.get("goToWorkStatus"))){
228
                            attendanceStatusList.add("上午未打卡");
229
                            dailyAttendance.put("isAbnormal",true);
230
                        }else if("倒休".equals(dailyAttendance.get("goToWorkStatus"))||"事假".equals(dailyAttendance.get("goToWorkStatus"))||"年假".equals(dailyAttendance.get("goToWorkStatus"))||"放假".equals(dailyAttendance.get("goToWorkStatus"))||"病假".equals(dailyAttendance.get("goToWorkStatus"))){
231
                            attendanceStatusList.add(dailyAttendance.get("goToWorkStatus"));
232
                            dailyAttendance.put("isAbnormal",false);
233
                        }else{
234
                            attendanceStatusList.add(dailyAttendance.get("goToWorkStatus"));
235
                            dailyAttendance.put("isAbnormal",true);
236
                        }
207 237
                    }else{
208
                        attendanceStatusList.add(dailyAttendance.get("goToWorkStatus"));
209
                        dailyAttendance.put("isAbnormal",true);
238
                        if("旷工".equals(dailyAttendance.get("goToWorkStatus"))){
239
                            attendanceStatusList.add("旷工0.5天");
240
                            dailyAttendance.put("isAbnormal",true);
241
                        }else if("倒休".equals(dailyAttendance.get("goToWorkStatus"))||"事假".equals(dailyAttendance.get("goToWorkStatus"))||"年假".equals(dailyAttendance.get("goToWorkStatus"))||"放假".equals(dailyAttendance.get("goToWorkStatus"))||"病假".equals(dailyAttendance.get("goToWorkStatus"))){
242
                            attendanceStatusList.clear();
243
                            attendanceStatusList.add(dailyAttendance.get("goToWorkStatus"));
244
                            dailyAttendance.put("isAbnormal",false);
245
                        }else{
246
                            dailyAttendance.put("isAbnormal",false);
247
                        }
210 248
                    }
249
211 250
                }
212 251
                //如果上午非正常,下午非正常
213 252
                if(!"正常".equals(dailyAttendance.get("goToWorkStatus"))&&!"正常".equals(dailyAttendance.get("goOffWorkStatus"))){
214 253
                    //如果上下午状态相等且是放假 倒休 事假 年假 病假 放假 显示一种状态 非异常考勤
215 254
                    if(dailyAttendance.get("goToWorkStatus").equals(dailyAttendance.get("goOffWorkStatus"))&&("倒休".equals(dailyAttendance.get("goToWorkStatus"))||"事假".equals(dailyAttendance.get("goToWorkStatus"))||"年假".equals(dailyAttendance.get("goToWorkStatus"))||"放假".equals(dailyAttendance.get("goToWorkStatus"))||"病假".equals(dailyAttendance.get("goToWorkStatus")))){
255
                        attendanceStatusList.clear();
216 256
                        attendanceStatusList.add(dailyAttendance.get("goToWorkStatus"));
217 257
                        dailyAttendance.put("isAbnormal",false);
218 258
                    }
@ -240,68 +280,69 @@ public class AttendanceReportServiceImpl implements AttendanceReportService {
240 280
                            dailyAttendance.put("isAbnormal",true);
241 281
                        }
242 282
                        if("旷工".equals(dailyAttendance.get("goOffWorkStatus"))){
243
                            attendanceStatusArray[0]="旷工0.5天";
283
                            attendanceStatusArray[1]="旷工0.5天";
244 284
                            dailyAttendance.put("isAbnormal",true);
245 285
                        }
246
                        if("未打卡".equals(dailyAttendance.get("goToWorkStatus"))||"未打卡".equals(dailyAttendance.get("goOffWorkStatus"))){
286
                        if("未打卡".equals(dailyAttendance.get("goToWorkStatus"))){
287
                            attendanceStatusArray[0]="上午未打卡";
247 288
                            dailyAttendance.put("isAbnormal",true);
248 289
                        }
290
                        if("未打卡".equals(dailyAttendance.get("goOffWorkStatus"))){
291
                            attendanceStatusArray[1]="下午未打卡";
292
                            dailyAttendance.put("isAbnormal",true);
293
                        }
294
                        if(!attendanceStatusList.isEmpty()&&attendanceStatusList.contains("上午外勤")){
295
                            //如果上午外勤,上午放假等假期显示假期,上午旷工显示外勤与假期,否则都显示外勤
296
                            if("旷工".equals(dailyAttendance.get("goToWorkStatus"))){
297
                                //不动
298
                            }else if("倒休".equals(dailyAttendance.get("goToWorkStatus"))||"事假".equals(dailyAttendance.get("goToWorkStatus"))||"年假".equals(dailyAttendance.get("goToWorkStatus"))||"放假".equals(dailyAttendance.get("goToWorkStatus"))||"病假".equals(dailyAttendance.get("goToWorkStatus"))){
299
                                //将上午外勤移除
300
                                Iterator<Object> iterator = attendanceStatusList.iterator();
301
                                while (iterator.hasNext()){
302
                                    String next =(String) iterator.next();
303
                                    if("上午外勤".equals(next)){
304
                                        iterator.remove();
305
                                    }
306
                                }
307
                            }else{
308
                                //将attendanceStatusArray[0]移除
309
                                attendanceStatusArray[0]=null;
310
                            }
311
                        }
312
                        if(!attendanceStatusList.isEmpty()&&attendanceStatusList.contains("下午外勤")){
313
                            //如果下午外勤,下午放假等假期显示假期,下午旷工显示外勤与假期,否则都显示外勤
314
                            if("旷工".equals(dailyAttendance.get("goToWorkStatus"))){
315
                                //不动
316
                            }else if("倒休".equals(dailyAttendance.get("goToWorkStatus"))||"事假".equals(dailyAttendance.get("goToWorkStatus"))||"年假".equals(dailyAttendance.get("goToWorkStatus"))||"放假".equals(dailyAttendance.get("goToWorkStatus"))||"病假".equals(dailyAttendance.get("goToWorkStatus"))){
317
                                //将下午外勤移除
318
                                Iterator<Object> iterator = attendanceStatusList.iterator();
319
                                while (iterator.hasNext()){
320
                                    String next =(String) iterator.next();
321
                                    if("下午外勤".equals(next)){
322
                                        iterator.remove();
323
                                    }
324
                                }
325
                            }else{
326
                                //将attendanceStatusArray[1]移除
327
                                attendanceStatusArray[1]=null;
328
                            }
329
                        }
249 330
                        attendanceStatusList.add(attendanceStatusArray[0]);
250 331
                        attendanceStatusList.add(attendanceStatusArray[1]);
251 332
                    }
252
                   // dailyAttendance.put("descr",attendanceStatusList);
253 333
                }
254
                dailyAttendance.put("descr",attendanceStatusList);
255
              /*  String[] attendanceStatusArray = new String[2];
256
                dailyAttendance.put("date",dailyAttendance.get("workDay"));
257
                dailyAttendance.put("isAbnormal",true);
258
                if("正常".equals(dailyAttendance.get("goToWorkStatus"))&&"正常".equals(dailyAttendance.get("goOffWorkStatus"))){
259
                    //上下班都正常
260
                    dailyAttendance.put("isAbnormal",false);
261
                    attendanceStatusArray[0]="正常";
262
                    dailyAttendance.put("descr",attendanceStatusArray);
263
                }else if(!"正常".equals(dailyAttendance.get("goToWorkStatus"))&&!"正常".equals(dailyAttendance.get("goOffWorkStatus"))){
264
                    attendanceStatusArray[0]= (String) dailyAttendance.get("goToWorkStatus");
265
                    attendanceStatusArray[1]= (String) dailyAttendance.get("goOffWorkStatus");
266
                    //上下班都不正常
267
                    if("迟到".equals(dailyAttendance.get("goToWorkStatus"))){
268
                        attendanceStatusArray[0]="迟到"+dailyAttendance.get("goToWorkTime") +"分";
269
                    }
270
                    if("早退".equals(dailyAttendance.get("goOffWorkStatus"))){
271
                        attendanceStatusArray[1]="早退"+dailyAttendance.get("goOffWorkTime") +"分";
272
                    }
273
                    if("旷工".equals(dailyAttendance.get("goToWorkStatus"))){
274
                        //attendanceStatusArray[1]=null;
275
                        attendanceStatusArray[1]="旷工"+dailyAttendance.get("goOffWorkTime") +"天";
276
                        attendanceStatusArray[0]="旷工"+dailyAttendance.get("goToWorkTime") +"天";
277
                    }
278
                    if("倒休".equals(dailyAttendance.get("goToWorkStatus"))||"事假".equals(dailyAttendance.get("goToWorkStatus"))||"年假".equals(dailyAttendance.get("goToWorkStatus"))||"放假".equals(dailyAttendance.get("goToWorkStatus"))||"病假".equals(dailyAttendance.get("goToWorkStatus"))){
279
                        //attendanceStatusArray[1]=null;
280
                        attendanceStatusArray[1]=(String) dailyAttendance.get("goOffWorkStatus");
281
                        attendanceStatusArray[0]=(String) dailyAttendance.get("goToWorkStatus");
282
                    }
283
                    dailyAttendance.put("descr",attendanceStatusArray);
284
                }else{
285
                    //上下班一个正常一个不正常
286
                    if("正常".equals(dailyAttendance.get("goToWorkStatus"))){
287
                        attendanceStatusArray[0]= (String) dailyAttendance.get("goOffWorkStatus");
288
                    }else{
289
                        attendanceStatusArray[0]= (String) dailyAttendance.get("goToWorkStatus");
290
                    }
291
                    dailyAttendance.put("descr",attendanceStatusArray);
292
                }*/
293
            });
294
          /*  List<Map<String, Object>> dataList = attendanceReportResponse.getData();
295
            dataList.forEach((data)->{
296
                String[] attendanceStatus = (String[]) data.get("descr");
297
                if(null!=attendanceStatus&&attendanceStatus.length>0){
298
                    String[] attendanceStatusArray = new String[1];
299
                    if(null==attendanceStatus[1]){
300
                        attendanceStatusArray[0]=attendanceStatus[0];
301
                        data.put("descr",attendanceStatusArray);
334
                //遍历集合,将为null的值去掉
335
                Iterator<Object> iterator = attendanceStatusList.iterator();
336
                while (iterator.hasNext()){
337
                    String next =(String) iterator.next();
338
                    if(null==next){
339
                        iterator.remove();
302 340
                    }
303 341
                }
304
            });*/
342
                dailyAttendance.put("descr",attendanceStatusList);
343
344
            });
345
305 346
306 347
            HashMap<String, Object> attendanceReportMap = new HashMap<>();
307 348
            attendanceReportMap.put("userId",params.get("id"));
@ -383,46 +424,83 @@ public class AttendanceReportServiceImpl implements AttendanceReportService {
383 424
                }
384 425
                //如果上午正常,下午非正常 则显示下午的
385 426
                if("正常".equals(dailyAttendance.get("goToWorkStatus"))&&!"正常".equals(dailyAttendance.get("goOffWorkStatus"))){
386
                    if("迟到".equals(dailyAttendance.get("goOffWorkStatus"))){
387
                        attendanceStatusList.add("迟到"+dailyAttendance.get("goOffWorkTime") +"分");
388
                        dailyAttendance.put("isAbnormal",true);
389
                    }else if("早退".equals(dailyAttendance.get("goOffWorkStatus"))){
390
                        attendanceStatusList.add("早退"+dailyAttendance.get("goOffWorkTime") +"分");
391
                        dailyAttendance.put("isAbnormal",true);
392
                    }else if("旷工".equals(dailyAttendance.get("goOffWorkStatus"))){
393
                        attendanceStatusList.add("旷工0.5天");
394
                        dailyAttendance.put("isAbnormal",true);
395
                    }else if("倒休".equals(dailyAttendance.get("goOffWorkStatus"))||"事假".equals(dailyAttendance.get("goOffWorkStatus"))||"年假".equals(dailyAttendance.get("goOffWorkStatus"))||"放假".equals(dailyAttendance.get("goOffWorkStatus"))||"病假".equals(dailyAttendance.get("goOffWorkStatus"))){
396
                        attendanceStatusList.add(dailyAttendance.get("goOffWorkStatus"));
397
                        dailyAttendance.put("isAbnormal",false);
427
                    //如果包含下午外勤,则除了放假之类的和旷工都不显示
428
                    if(!attendanceStatusList.isEmpty()&&!attendanceStatusList.contains("下午外勤")){
429
                        if("迟到".equals(dailyAttendance.get("goOffWorkStatus"))){
430
                            attendanceStatusList.add("迟到"+dailyAttendance.get("goOffWorkTime") +"分");
431
                            dailyAttendance.put("isAbnormal",true);
432
                        }else if("早退".equals(dailyAttendance.get("goOffWorkStatus"))){
433
                            attendanceStatusList.add("早退"+dailyAttendance.get("goOffWorkTime") +"分");
434
                            dailyAttendance.put("isAbnormal",true);
435
                        }else if("旷工".equals(dailyAttendance.get("goOffWorkStatus"))){
436
                            attendanceStatusList.add("旷工0.5天");
437
                            dailyAttendance.put("isAbnormal",true);
438
                        }else if("未打卡".equals(dailyAttendance.get("goOffWorkStatus"))){
439
                            attendanceStatusList.add("下午未打卡");
440
                            dailyAttendance.put("isAbnormal",true);
441
                        }else if("倒休".equals(dailyAttendance.get("goOffWorkStatus"))||"事假".equals(dailyAttendance.get("goOffWorkStatus"))||"年假".equals(dailyAttendance.get("goOffWorkStatus"))||"放假".equals(dailyAttendance.get("goOffWorkStatus"))||"病假".equals(dailyAttendance.get("goOffWorkStatus"))){
442
                            attendanceStatusList.add(dailyAttendance.get("goOffWorkStatus"));
443
                            dailyAttendance.put("isAbnormal",false);
444
                        }else{
445
                            attendanceStatusList.add(dailyAttendance.get("goOffWorkStatus"));
446
                            dailyAttendance.put("isAbnormal",true);
447
                        }
398 448
                    }else{
399
                        attendanceStatusList.add(dailyAttendance.get("goOffWorkStatus"));
400
                        dailyAttendance.put("isAbnormal",true);
449
                        if("旷工".equals(dailyAttendance.get("goOffWorkStatus"))){
450
                            attendanceStatusList.add("旷工0.5天");
451
                            dailyAttendance.put("isAbnormal",true);
452
                        }else if("倒休".equals(dailyAttendance.get("goOffWorkStatus"))||"事假".equals(dailyAttendance.get("goOffWorkStatus"))||"年假".equals(dailyAttendance.get("goOffWorkStatus"))||"放假".equals(dailyAttendance.get("goOffWorkStatus"))||"病假".equals(dailyAttendance.get("goOffWorkStatus"))){
453
                            attendanceStatusList.clear();
454
                            attendanceStatusList.add(dailyAttendance.get("goOffWorkStatus"));
455
                            dailyAttendance.put("isAbnormal",false);
456
                        }else{
457
                            dailyAttendance.put("isAbnormal",false);
458
                        }
459
401 460
                    }
402 461
                }
403 462
                //如果上午非正常,下午正常 则显示上午的
404 463
                if(!"正常".equals(dailyAttendance.get("goToWorkStatus"))&&"正常".equals(dailyAttendance.get("goOffWorkStatus"))){
405
                    if("迟到".equals(dailyAttendance.get("goToWorkStatus"))){
406
                        attendanceStatusList.add("迟到"+dailyAttendance.get("lateMinutes") +"分");
407
                        dailyAttendance.put("isAbnormal",true);
408
                    }else if("早退".equals(dailyAttendance.get("goToWorkStatus"))){
409
                        attendanceStatusList.add("早退"+dailyAttendance.get("earlyExitMinutes") +"分");
410
                        dailyAttendance.put("isAbnormal",true);
411
                    }else if("旷工".equals(dailyAttendance.get("goToWorkStatus"))){
412
                        attendanceStatusList.add("旷工0.5天");
413
                        dailyAttendance.put("isAbnormal",true);
414
                    }else if("倒休".equals(dailyAttendance.get("goToWorkStatus"))||"事假".equals(dailyAttendance.get("goToWorkStatus"))||"年假".equals(dailyAttendance.get("goToWorkStatus"))||"放假".equals(dailyAttendance.get("goToWorkStatus"))||"病假".equals(dailyAttendance.get("goToWorkStatus"))){
415
                        attendanceStatusList.add(dailyAttendance.get("goToWorkStatus"));
416
                        dailyAttendance.put("isAbnormal",false);
464
                    //如果包含上午外勤,则除了放假之类的和旷工都不显示
465
                    if(!attendanceStatusList.isEmpty()&&!attendanceStatusList.contains("上午外勤")){
466
                        if("迟到".equals(dailyAttendance.get("goToWorkStatus"))){
467
                            attendanceStatusList.add("迟到"+dailyAttendance.get("lateMinutes") +"分");
468
                            dailyAttendance.put("isAbnormal",true);
469
                        }else if("早退".equals(dailyAttendance.get("goToWorkStatus"))){
470
                            attendanceStatusList.add("早退"+dailyAttendance.get("earlyExitMinutes") +"分");
471
                            dailyAttendance.put("isAbnormal",true);
472
                        }else if("旷工".equals(dailyAttendance.get("goToWorkStatus"))){
473
                            attendanceStatusList.add("旷工0.5天");
474
                            dailyAttendance.put("isAbnormal",true);
475
                        }else if("未打卡".equals(dailyAttendance.get("goToWorkStatus"))){
476
                            attendanceStatusList.add("上午未打卡");
477
                            dailyAttendance.put("isAbnormal",true);
478
                        }else if("倒休".equals(dailyAttendance.get("goToWorkStatus"))||"事假".equals(dailyAttendance.get("goToWorkStatus"))||"年假".equals(dailyAttendance.get("goToWorkStatus"))||"放假".equals(dailyAttendance.get("goToWorkStatus"))||"病假".equals(dailyAttendance.get("goToWorkStatus"))){
479
                            attendanceStatusList.add(dailyAttendance.get("goToWorkStatus"));
480
                            dailyAttendance.put("isAbnormal",false);
481
                        }else{
482
                            attendanceStatusList.add(dailyAttendance.get("goToWorkStatus"));
483
                            dailyAttendance.put("isAbnormal",true);
484
                        }
417 485
                    }else{
418
                        attendanceStatusList.add(dailyAttendance.get("goToWorkStatus"));
419
                        dailyAttendance.put("isAbnormal",true);
486
                        if("旷工".equals(dailyAttendance.get("goToWorkStatus"))){
487
                            attendanceStatusList.add("旷工0.5天");
488
                            dailyAttendance.put("isAbnormal",true);
489
                        }else if("倒休".equals(dailyAttendance.get("goToWorkStatus"))||"事假".equals(dailyAttendance.get("goToWorkStatus"))||"年假".equals(dailyAttendance.get("goToWorkStatus"))||"放假".equals(dailyAttendance.get("goToWorkStatus"))||"病假".equals(dailyAttendance.get("goToWorkStatus"))){
490
                            attendanceStatusList.clear();
491
                            attendanceStatusList.add(dailyAttendance.get("goToWorkStatus"));
492
                            dailyAttendance.put("isAbnormal",false);
493
                        }else{
494
                            dailyAttendance.put("isAbnormal",false);
495
                        }
420 496
                    }
497
421 498
                }
422 499
                //如果上午非正常,下午非正常
423 500
                if(!"正常".equals(dailyAttendance.get("goToWorkStatus"))&&!"正常".equals(dailyAttendance.get("goOffWorkStatus"))){
424 501
                    //如果上下午状态相等且是放假 倒休 事假 年假 病假 放假 显示一种状态 非异常考勤
425 502
                    if(dailyAttendance.get("goToWorkStatus").equals(dailyAttendance.get("goOffWorkStatus"))&&("倒休".equals(dailyAttendance.get("goToWorkStatus"))||"事假".equals(dailyAttendance.get("goToWorkStatus"))||"年假".equals(dailyAttendance.get("goToWorkStatus"))||"放假".equals(dailyAttendance.get("goToWorkStatus"))||"病假".equals(dailyAttendance.get("goToWorkStatus")))){
503
                        attendanceStatusList.clear();
426 504
                        attendanceStatusList.add(dailyAttendance.get("goToWorkStatus"));
427 505
                        dailyAttendance.put("isAbnormal",false);
428 506
                    }
@ -450,73 +528,72 @@ public class AttendanceReportServiceImpl implements AttendanceReportService {
450 528
                            dailyAttendance.put("isAbnormal",true);
451 529
                        }
452 530
                        if("旷工".equals(dailyAttendance.get("goOffWorkStatus"))){
453
                            attendanceStatusArray[0]="旷工0.5天";
531
                            attendanceStatusArray[1]="旷工0.5天";
532
                            dailyAttendance.put("isAbnormal",true);
533
                        }
534
                        if("未打卡".equals(dailyAttendance.get("goToWorkStatus"))){
535
                            attendanceStatusArray[0]="上午未打卡";
454 536
                            dailyAttendance.put("isAbnormal",true);
455 537
                        }
456
                        if("未打卡".equals(dailyAttendance.get("goToWorkStatus"))||"未打卡".equals(dailyAttendance.get("goOffWorkStatus"))){
538
                        if("未打卡".equals(dailyAttendance.get("goOffWorkStatus"))){
539
                            attendanceStatusArray[1]="下午未打卡";
457 540
                            dailyAttendance.put("isAbnormal",true);
458 541
                        }
542
                        if(!attendanceStatusList.isEmpty()&&attendanceStatusList.contains("上午外勤")){
543
                            //如果上午外勤,上午放假等假期显示假期,上午旷工显示外勤与假期,否则都显示外勤
544
                            if("旷工".equals(dailyAttendance.get("goToWorkStatus"))){
545
                                //不动
546
                            }else if("倒休".equals(dailyAttendance.get("goToWorkStatus"))||"事假".equals(dailyAttendance.get("goToWorkStatus"))||"年假".equals(dailyAttendance.get("goToWorkStatus"))||"放假".equals(dailyAttendance.get("goToWorkStatus"))||"病假".equals(dailyAttendance.get("goToWorkStatus"))){
547
                                //将上午外勤移除
548
                                Iterator<Object> iterator = attendanceStatusList.iterator();
549
                                while (iterator.hasNext()){
550
                                    String next =(String) iterator.next();
551
                                    if("上午外勤".equals(next)){
552
                                        iterator.remove();
553
                                    }
554
                                }
555
                            }else{
556
                                //将attendanceStatusArray[0]移除
557
                                attendanceStatusArray[0]=null;
558
                            }
559
                        }
560
                        if(!attendanceStatusList.isEmpty()&&attendanceStatusList.contains("下午外勤")){
561
                            //如果下午外勤,下午放假等假期显示假期,下午旷工显示外勤与假期,否则都显示外勤
562
                            if("旷工".equals(dailyAttendance.get("goToWorkStatus"))){
563
                                //不动
564
                            }else if("倒休".equals(dailyAttendance.get("goToWorkStatus"))||"事假".equals(dailyAttendance.get("goToWorkStatus"))||"年假".equals(dailyAttendance.get("goToWorkStatus"))||"放假".equals(dailyAttendance.get("goToWorkStatus"))||"病假".equals(dailyAttendance.get("goToWorkStatus"))){
565
                                //将下午外勤移除
566
                                Iterator<Object> iterator = attendanceStatusList.iterator();
567
                                while (iterator.hasNext()){
568
                                    String next =(String) iterator.next();
569
                                    if("下午外勤".equals(next)){
570
                                        iterator.remove();
571
                                    }
572
                                }
573
                            }else{
574
                                //将attendanceStatusArray[1]移除
575
                                attendanceStatusArray[1]=null;
576
                            }
577
                        }
459 578
                        attendanceStatusList.add(attendanceStatusArray[0]);
460 579
                        attendanceStatusList.add(attendanceStatusArray[1]);
461 580
                    }
462
                    // dailyAttendance.put("descr",attendanceStatusList);
581
                }
582
                //遍历集合,将为null的值去掉
583
                Iterator<Object> iterator = attendanceStatusList.iterator();
584
                while (iterator.hasNext()){
585
                    String next =(String) iterator.next();
586
                    if(null==next){
587
                        iterator.remove();
588
                    }
463 589
                }
464 590
                dailyAttendance.put("descr",attendanceStatusList);
465 591
466 592
467
               /* String[] attendanceStatusArray = new String[2];
468
469
                if("正常".equals(dailyAttendance.get("goToWorkStatus"))&&"正常".equals(dailyAttendance.get("goOffWorkStatus"))){
470
                    //上下班都正常
471
                    dailyAttendance.put("isAbnormal",false);
472
                    attendanceStatusArray[0]="正常";
473
                    dailyAttendance.put("descr",attendanceStatusArray);
474
                }else if(!"正常".equals(dailyAttendance.get("goToWorkStatus"))&&!"正常".equals(dailyAttendance.get("goOffWorkStatus"))){
475
                    attendanceStatusArray[0]= (String) dailyAttendance.get("goToWorkStatus");
476
                    attendanceStatusArray[1]= (String) dailyAttendance.get("goOffWorkStatus");
477
                    //上下班都不正常
478
                    if("迟到".equals(dailyAttendance.get("goToWorkStatus"))){
479
                        attendanceStatusArray[0]="迟到"+dailyAttendance.get("goToWorkTime") +"分";
480
                    }
481
                    if("早退".equals(dailyAttendance.get("goOffWorkStatus"))){
482
                        attendanceStatusArray[1]="早退"+dailyAttendance.get("goOffWorkTime") +"分";
483
                    }
484
                    if("旷工".equals(dailyAttendance.get("goToWorkStatus"))){
485
                        //attendanceStatusArray[1]=null;
486
                        attendanceStatusArray[1]="旷工"+dailyAttendance.get("goOffWorkTime") +"天";
487
                        attendanceStatusArray[0]="旷工"+dailyAttendance.get("goToWorkTime") +"天";
488
                    }
489
                    if("倒休".equals(dailyAttendance.get("goToWorkStatus"))||"事假".equals(dailyAttendance.get("goToWorkStatus"))||"年假".equals(dailyAttendance.get("goToWorkStatus"))||"放假".equals(dailyAttendance.get("goToWorkStatus"))||"病假".equals(dailyAttendance.get("goToWorkStatus"))){
490
                        //attendanceStatusArray[1]=null;
491
                        attendanceStatusArray[1]=(String) dailyAttendance.get("goOffWorkStatus");
492
                        attendanceStatusArray[0]=(String) dailyAttendance.get("goToWorkStatus");
493
                    }
494
495
                    dailyAttendance.put("descr",attendanceStatusArray);
496
                }else{
497
                    //上下班一个正常一个不正常
498
                    if("正常".equals(dailyAttendance.get("goToWorkStatus"))){
499
                        attendanceStatusArray[0]= (String) dailyAttendance.get("goOffWorkStatus");
500
                    }else{
501
                        attendanceStatusArray[0]= (String) dailyAttendance.get("goToWorkStatus");
502
                    }
503
                    dailyAttendance.put("descr",attendanceStatusArray);
504
                }*/
505 593
            });
506 594
        } catch (ParseException e) {
507 595
            e.printStackTrace();
508 596
        }
509
       /* List<Map<String, Object>> dataList = attendanceReport.getData().getData();
510
        dataList.forEach((data)->{
511
            String[] attendanceStatus = (String[]) data.get("attendanceStatus");
512
            if(null!=attendanceStatus&&attendanceStatus.length>0){
513
                String[] attendanceStatusArray = new String[1];
514
                if(null==attendanceStatus[1]){
515
                    attendanceStatusArray[0]=attendanceStatus[0];
516
                    data.put("attendanceStatus",attendanceStatusArray);
517
                }
518
            }
519
        });*/
520 597
        return attendanceReport;
521 598
    }
522 599
}