Я пытаюсь написать XSLT-преобразование для описанной ниже проблемы.
В настоящее время детали Swipe хранятся в сторонней системе и принимаются в виде csv. При этом у нас есть несколько записей IN & OUT в день для сотрудника.
Намерение состоит в том, чтобы получить только одну запись о первом входе в систему и одну запись о времени последнего прохода по сотруднику, смене и дате.
Ниже мой xml.
Как я могу написать XSLT, чтобы получить только один Swipe In (который должен быть первым swipeIn за день и в смену) и один Swipe out (который должен быть последним), по Emp, Shift и Day.
Но для сотрудников ночной смены (код 1 C в XML) измените дату последнего скачка, поскольку это ночная смена (ночная смена начинается с 17:00 (сегодня) до 4:00 (завтра).
Я думаю, это можно сделать с помощью группировки по emp, дате и смещению, но не уверен, как преобразовать данные, а также для ночной смены.
<?xml version="1.0" encoding="UTF-8"?>
<Data>
<Employees>
<Date>2019-12-16</Date>
<Time>08:53:54</Time>
<Empid>100</Empid>
<Gate>B-1a Main Door 2</Gate>
<InOut>In</InOut>
<Remark>Successful</Remark>
<Shift>1A</Shift>
</Employees>
<Employees>
<Date>2019-12-16</Date>
<Time>10:53:54</Time>
<Empid>100</Empid>
<Gate>B-1a Main Door 3</Gate>
<InOut>Out</InOut>
<Remark>Successful</Remark>
<Shift>1A</Shift>
</Employees>
<Employees>
<Date>2019-12-16</Date>
<Time>11:10:54</Time>
<Empid>100</Empid>
<Gate>B-1a Main Door 2</Gate>
<InOut>In</InOut>
<Remark>Successful</Remark>
<Shift>1A</Shift>
</Employees>
<Employees>
<Date>2019-12-16</Date>
<Time>12:53:54</Time>
<Empid>100</Empid>
<Gate>B-1a Main Door 3</Gate>
<InOut>Out</InOut>
<Remark>Successful</Remark>
<Shift>1A</Shift>
</Employees>
<Employees>
<Date>2019-12-16</Date>
<Time>14:00:54</Time>
<Empid>100</Empid>
<Gate>B-1a Main Door 2</Gate>
<InOut>In</InOut>
<Remark>Successful</Remark>
<Shift>1A</Shift>
</Employees>
<Employees>
<Date>2019-12-16</Date>
<Time>18:00:54</Time>
<Empid>100</Empid>
<Gate>B-1a Main Door 3</Gate>
<InOut>Out</InOut>
<Remark>Successful</Remark>
<Shift>1A</Shift>
</Employees>
<Employees>
<Date>2019-12-16</Date>
<Time>17:30:54</Time>
<Empid>101</Empid>
<Gate>B-1a Main Door 2</Gate>
<InOut>In</InOut>
<Remark>Successful</Remark>
<Shift>1C</Shift>
</Employees>
<Employees>
<Date>2019-12-16</Date>
<Time>19:00:54</Time>
<Empid>101</Empid>
<Gate>B-1a Main Door 3</Gate>
<InOut>Out</InOut>
<Remark>Successful</Remark>
<Shift>1C</Shift>
</Employees>
<Employees>
<Date>2019-12-16</Date>
<Time>20:10:54</Time>
<Empid>101</Empid>
<Gate>B-1a Main Door 2</Gate>
<InOut>In</InOut>
<Remark>Successful</Remark>
<Shift>1C</Shift>
</Employees>
<Employees>
<Date>2019-12-16</Date>
<Time>23:53:54</Time>
<Empid>101</Empid>
<Gate>B-1a Main Door 3</Gate>
<InOut>Out</InOut>
<Remark>Successful</Remark>
<Shift>1C</Shift>
</Employees>
<Employees>
<Date>2019-12-17</Date>
<Time>01:30:54</Time>
<Empid>101</Empid>
<Gate>B-1a Main Door 2</Gate>
<InOut>In</InOut>
<Remark>Successful</Remark>
<Shift>1C</Shift>
</Employees>
<Employees>
<Date>2019-12-17</Date>
<Time>03:00:54</Time>
<Empid>101</Empid>
<Gate>B-1a Main Door 3</Gate>
<InOut>Out</InOut>
<Remark>Successful</Remark>
<Shift>1C</Shift>
</Employees>
</Employees>
<Employees>
<Date>2019-12-17</Date>
<Time>03:30:54</Time>
<Empid>101</Empid>
<Gate>B-1a Main Door 2</Gate>
<InOut>In</InOut>
<Remark>Successful</Remark>
<Shift>1C</Shift>
</Employees>
<Employees>
<Date>2019-12-17</Date>
<Time>04:00:54</Time>
<Empid>101</Empid>
<Gate>B-1a Main Door 3</Gate>
<InOut>Out</InOut>
<Remark>Successful</Remark>
<Shift>1C</Shift>
</Employees>
</Data>
Вывод должен быть: введите описание изображения здесь