|
@@ -0,0 +1,98 @@
|
|
|
|
+package com.szwl.controller;
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
|
+import com.gexin.fastjson.JSON;
|
|
|
|
+import com.szwl.constant.OperationType;
|
|
|
|
+import com.szwl.constant.ResponseCodesEnum;
|
|
|
|
+import com.szwl.exception.BizException;
|
|
|
|
+import com.szwl.manager.TokenManager;
|
|
|
|
+import com.szwl.model.bo.AlarmClockBo;
|
|
|
|
+import com.szwl.model.bo.R;
|
|
|
|
+import com.szwl.model.bo.ResponseModel;
|
|
|
|
+import com.szwl.model.bo.UserDetailBO;
|
|
|
|
+import com.szwl.model.entity.AlarmClock;
|
|
|
|
+import com.szwl.model.param.AlarmClockParam;
|
|
|
|
+import com.szwl.model.utils.PushUtils;
|
|
|
|
+import com.szwl.service.AlarmClockService;
|
|
|
|
+import com.szwl.service.TEquipmentService;
|
|
|
|
+import io.swagger.annotations.ApiOperation;
|
|
|
|
+import org.springframework.beans.BeanUtils;
|
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
+import org.springframework.web.bind.annotation.PostMapping;
|
|
|
|
+import org.springframework.web.bind.annotation.RequestBody;
|
|
|
|
+import org.springframework.web.bind.annotation.RequestMapping;
|
|
|
|
+import org.springframework.web.bind.annotation.RestController;
|
|
|
|
+
|
|
|
|
+import java.util.ArrayList;
|
|
|
|
+import java.util.Date;
|
|
|
|
+import java.util.List;
|
|
|
|
+import java.util.Optional;
|
|
|
|
+
|
|
|
|
+/**
|
|
|
|
+ * <p>
|
|
|
|
+ * 前端控制器
|
|
|
|
+ * </p>
|
|
|
|
+ *
|
|
|
|
+ * @author wuhs
|
|
|
|
+ * @since 2025-09-05
|
|
|
|
+ */
|
|
|
|
+@RestController
|
|
|
|
+@RequestMapping("/alarmClock")
|
|
|
|
+public class AlarmClockController {
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
|
|
+ private AlarmClockService alarmClockService;
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
|
|
+ private TEquipmentService equipmentService;
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
|
|
+ private TokenManager tokenManager;
|
|
|
|
+
|
|
|
|
+ @ApiOperation("获取列表")
|
|
|
|
+ @PostMapping("/list")
|
|
|
|
+ public ResponseModel<?> list(@RequestBody AlarmClockParam param) {
|
|
|
|
+ LambdaQueryWrapper<AlarmClock> query = Wrappers.lambdaQuery();
|
|
|
|
+ query.eq(AlarmClock::getClientId, param.getClientId());
|
|
|
|
+ List<AlarmClock> list = alarmClockService.list(query);
|
|
|
|
+ return R.ok(list);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @ApiOperation("保存修改")
|
|
|
|
+ @PostMapping("/saveOrUpdate")
|
|
|
|
+ public ResponseModel<?> saveOrUpdate(@RequestBody AlarmClockParam param) {
|
|
|
|
+ UserDetailBO userDetailBO = Optional.ofNullable(tokenManager.getLoginUserDetails())
|
|
|
|
+ .orElseThrow(() -> new BizException(ResponseCodesEnum.L0001));
|
|
|
|
+ Long adminId = userDetailBO.getId();
|
|
|
|
+ String clientId = param.getClientId();
|
|
|
|
+ List<AlarmClockBo> list = new ArrayList<>();
|
|
|
|
+ for (AlarmClock alarmClock : param.getAlarmClockList()) {
|
|
|
|
+ LambdaQueryWrapper<AlarmClock> query = Wrappers.lambdaQuery();
|
|
|
|
+ query.eq(AlarmClock::getClientId, clientId);
|
|
|
|
+ query.eq(AlarmClock::getType, alarmClock.getType());
|
|
|
|
+ query.eq(AlarmClock::getWeek, alarmClock.getWeek());
|
|
|
|
+ AlarmClock one = alarmClockService.getOne(query);
|
|
|
|
+ if (one != null) {
|
|
|
|
+ alarmClock.setModifyDate(new Date());
|
|
|
|
+ BeanUtils.copyProperties(alarmClock, one);
|
|
|
|
+ alarmClockService.updateById(one);
|
|
|
|
+ } else {
|
|
|
|
+ alarmClock.setCreateDate(new Date());
|
|
|
|
+ alarmClock.setModifyDate(new Date());
|
|
|
|
+ alarmClock.setClientId(clientId);
|
|
|
|
+ alarmClockService.save(alarmClock);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ AlarmClockBo alarmClockBo = new AlarmClockBo();
|
|
|
|
+ BeanUtils.copyProperties(alarmClock, alarmClockBo);
|
|
|
|
+ list.add(alarmClockBo);
|
|
|
|
+ }
|
|
|
|
+ String message = PushUtils.buildJson(OperationType.ALARM_CLOCK.getCode(), JSON.toJSONString(list)).toString();
|
|
|
|
+ equipmentService.sendRemoteMessage(clientId, OperationType.ALARM_CLOCK, message, adminId);
|
|
|
|
+ return R.ok();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+}
|
|
|
|
+
|