diff --git a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/task/TicketScheduledTasks.java b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/task/TicketScheduledTasks.java index 29798abf..f7c136aa 100644 --- a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/task/TicketScheduledTasks.java +++ b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/task/TicketScheduledTasks.java @@ -63,6 +63,9 @@ public class TicketScheduledTasks { @Resource private ITicketEvaluateService ticketEvaluateService; + @Resource + private IDeviceService deviceService; + /** * 工单评论邀请邮件 * 每天午夜12点执行一次 @@ -136,6 +139,19 @@ public class TicketScheduledTasks { log.info("执行工单超时提醒完成"); } + /** + * 更新设备质保状态 + * 每天午夜5点执行一次 + */ + @Scheduled(cron = "0 0 5 * * ?") + public void updateDeviceWarrantyState() { + log.info("开始执行更新设备质保状态"); + deviceService.taskWarrantyStateNotOutsideWarranty(); + deviceService.taskWarrantyStateNotOutsideWithinWarranty(); + deviceService.taskWarrantyStateNotStarted(); + log.info("执行更新设备质保状态完成"); + } + private void emergencyRemind(TiketTimeoutDTO cfgTimeout) { log.info("获取状态为紧急且{}天未解决的工单", cfgTimeout.getEmergency()); List tickets = ticketService.getEmergencys(cfgTimeout.getEmergency()); diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/DeviceMapper.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/DeviceMapper.java index 01c06b9d..44a9a95f 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/DeviceMapper.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/DeviceMapper.java @@ -34,4 +34,10 @@ public interface DeviceMapper extends BaseMapper { void batchDelByIds(@Param("ids")List ids); Page searchDevice(SearchDeviceRequest request, List companyIds, Page page); + + void taskWarrantyStateNotStarted(); + + void taskWarrantyStateNotOutsideWarranty(); + + void taskWarrantyStateNotOutsideWithinWarranty(); } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IDeviceService.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IDeviceService.java index de0e391c..49d2d290 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IDeviceService.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IDeviceService.java @@ -28,4 +28,11 @@ public interface IDeviceService extends IService { void batchDelByIds(@Param("ids") List ids); Page searchDevice(SearchDeviceRequest request); + + + void taskWarrantyStateNotStarted(); + + void taskWarrantyStateNotOutsideWarranty(); + + void taskWarrantyStateNotOutsideWithinWarranty(); } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/DeviceServiceImpl.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/DeviceServiceImpl.java index fc3fd890..33a3c6b4 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/DeviceServiceImpl.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/DeviceServiceImpl.java @@ -51,4 +51,16 @@ public class DeviceServiceImpl extends ServiceImpl impleme List companyIds = AppUserUtil.getCompanyIds(); return baseMapper.searchDevice(request, companyIds, new Page<>(request.getPage(), request.getPageSize())); } + + public void taskWarrantyStateNotStarted(){ + baseMapper.taskWarrantyStateNotStarted(); + } + + public void taskWarrantyStateNotOutsideWarranty(){ + baseMapper.taskWarrantyStateNotOutsideWarranty(); + } + + public void taskWarrantyStateNotOutsideWithinWarranty(){ + baseMapper.taskWarrantyStateNotOutsideWithinWarranty(); + } } diff --git a/nflg-mobilebroken-repository/src/main/resources/mapper/DeviceMapper.xml b/nflg-mobilebroken-repository/src/main/resources/mapper/DeviceMapper.xml index d211b7d1..ca879e12 100644 --- a/nflg-mobilebroken-repository/src/main/resources/mapper/DeviceMapper.xml +++ b/nflg-mobilebroken-repository/src/main/resources/mapper/DeviceMapper.xml @@ -67,4 +67,24 @@ and d.shipment_date <= #{request.endTime} + + + update device set warranty_state=(select b.id from dictionary a + join dictionary_item b on a.id=b.dictionary_id + where a.code='deviceWarrantyState' and b.`code`='NotStarted') where start_warranty_date>now(); + + + + + update device set warranty_state=(select b.id from dictionary a + join dictionary_item b on a.id=b.dictionary_id + where a.code='deviceWarrantyState' and b.`code`='OutsideWarranty') where DATE_ADD(start_warranty_date, INTERVAL warranty_month MONTH) < now(); + + + + + update device set warranty_state=(select b.id from dictionary a + join dictionary_item b on a.id=b.dictionary_id + where a.code='deviceWarrantyState' and b.`code`='WithinWarranty') where start_warranty_date <= now() and DATE_ADD(start_warranty_date, INTERVAL warranty_month MONTH) >= now() ; +