+历史未完成待办今日完成

This commit is contained in:
wuyu 2023-11-30 10:46:22 +08:00
parent 86c3bab98d
commit 68b137e0b9
3 changed files with 14 additions and 6 deletions

View File

@ -177,8 +177,9 @@ public class PendingMessageNewServiceImpl implements PendingMessageNewService {
if(localDate.isAfter(LocalDate.now())) {
return result;
}
Boolean isNowDay = localDate.isBefore(LocalDate.now())?false:true;
PendingCalendarCodeDTO calendarCodeDTO = buildCalendarCodesDTO(calendarCodeConfig);
List<PendingMessageRecord> pendingMessageRecords = pendingMessageRecordMapper.queryByTemplateCodes(calendarCodeDTO,request.getWorkspaceId(),request.getSelectDate(),request.getPersonId());
List<PendingMessageRecord> pendingMessageRecords = pendingMessageRecordMapper.queryByTemplateCodes(calendarCodeDTO,request.getWorkspaceId(),request.getSelectDate(),request.getPersonId(),isNowDay);
List<MessageTemplateDTO> messageTemplates = messageTemplateNewService.listByTemplateCodes(calendarCodeConfig.getCalendarAllCodes());
result = pendingMessageRecords.stream()
.map(e -> convert(e, messageTemplates).toResponse(request.getTerminalType()))

View File

@ -17,6 +17,6 @@ import java.util.List;
*/
public interface PendingMessageRecordMapper extends BaseMapper<PendingMessageRecord> {
List<PendingMessageRecord> queryByTemplateCodes(@Param("pendingCalendarCodeDTO") PendingCalendarCodeDTO pendingCalendarCodeDTO, @Param("workspaceId") Long workspaceId,
@Param("selectDate") Date selectDate, @Param("personId") Long personId);
@Param("selectDate") Date selectDate, @Param("personId") Long personId,@Param("isNowDay") Boolean isNowDay);
}

View File

@ -4,22 +4,29 @@
<select id="queryByTemplateCodes" resultType="cn.axzo.msg.center.domain.entity.PendingMessageRecord">
select * from (
SELECT * from (SELECT * FROM pending_message_record WHERE DATE(create_at) <![CDATA[<]]> DATE(#{selectDate}) AND state IN('HAS_BEEN_SENT')
AND executor_person_id=#{personId} AND template_code IN<foreach collection="pendingCalendarCodeDTO.allCodes" index="index" item="item" open="(" separator="," close=")">
<if test="isNowDay">
SELECT * from (SELECT * FROM pending_message_record WHERE DATE(create_at) <![CDATA[<]]> DATE(#{selectDate})
AND (state = ('HAS_BEEN_SENT') or (state = ('COMPLETED') and update_at = DATE(#{selectDate})))
AND is_delete = 0
AND executor_person_id=#{personId} AND template_code IN<foreach collection="pendingCalendarCodeDTO.allCodes" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach> ORDER BY create_at ASC) old_pending_message
union ALL
</foreach> ORDER BY create_at ASC) old_pending_message
union ALL
</if>
select * from (SELECT * FROM pending_message_record WHERE DATE(create_at) = DATE(#{selectDate}) AND state IN('HAS_BEEN_SENT','COMPLETED')
AND is_delete = 0
AND executor_person_id=#{personId} AND template_code IN<foreach collection="pendingCalendarCodeDTO.constructionCodes" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach> ORDER BY state,create_at DESC) new_pending_message
union all
SELECT * FROM (SELECT * FROM pending_message_record WHERE DATE(create_at) = DATE(#{selectDate}) AND state IN('HAS_BEEN_SENT','COMPLETED')
AND is_delete = 0
AND executor_person_id=#{personId} AND template_code IN<foreach collection="pendingCalendarCodeDTO.punchInCodes" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach> ORDER BY state,create_at DESC) new_pending_message1
union all
SELECT * FROM(SELECT * FROM pending_message_record WHERE DATE(create_at) = DATE(#{selectDate}) AND state IN('HAS_BEEN_SENT','COMPLETED')
AND is_delete = 0
AND executor_person_id=#{personId} AND template_code IN<foreach collection="pendingCalendarCodeDTO.clockInCodes" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach> ORDER BY state,create_at DESC) new_pending_message2