|
|
@@ -0,0 +1,77 @@
|
|
|
+package com.ktg.iscs.service.impl;
|
|
|
+
|
|
|
+import cn.hutool.core.lang.Assert;
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
+import com.ktg.iscs.domain.IsJobTicket;
|
|
|
+import com.ktg.iscs.domain.IsJobTicketKey;
|
|
|
+import com.ktg.iscs.domain.IsKey;
|
|
|
+import com.ktg.iscs.domain.dto.hardwareApi.UpdateKeyStatusDTO;
|
|
|
+import com.ktg.iscs.service.HardwareApiService;
|
|
|
+import com.ktg.iscs.service.IIsJobTicketKeyService;
|
|
|
+import com.ktg.iscs.service.IIsJobTicketService;
|
|
|
+import com.ktg.iscs.service.IIsKeyService;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+
|
|
|
+import java.util.Date;
|
|
|
+
|
|
|
+/**
|
|
|
+ * 硬件Service业务层处理
|
|
|
+ *
|
|
|
+ * @author cgj
|
|
|
+ * @date 2024-10-16
|
|
|
+ */
|
|
|
+@Service
|
|
|
+public class HardwareApiServiceImpl implements HardwareApiService {
|
|
|
+ @Autowired
|
|
|
+ private IIsJobTicketService isJobTicketService;
|
|
|
+ @Autowired
|
|
|
+ private IIsKeyService isKeyService;
|
|
|
+ @Autowired
|
|
|
+ private IIsJobTicketKeyService iIsJobTicketKeyService;
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Boolean updateTicketKetStatus(UpdateKeyStatusDTO dto) {
|
|
|
+ Assert.notNull(dto.getTicketId(), "请告诉我关于哪个作业票!");
|
|
|
+ Assert.notBlank(dto.getKeyNfc(), "请告诉我钥匙的NFC!");
|
|
|
+ // 1.获取作业票数据
|
|
|
+ IsJobTicket jobTicket = isJobTicketService.getById(dto.getTicketId());
|
|
|
+ Assert.notNull(jobTicket, "作业票数据丢失啦!");
|
|
|
+ // 1.1初始化时间参数
|
|
|
+ Date date = new Date();
|
|
|
+ // 1.2获取上锁时的数据
|
|
|
+ IsJobTicketKey jobTicketKey = iIsJobTicketKeyService.getOne(Wrappers.<IsJobTicketKey>lambdaUpdate()
|
|
|
+ .eq(IsJobTicketKey::getTicketId, dto.getTicketId())
|
|
|
+ .eq(IsJobTicketKey::getTicketType, "0"));
|
|
|
+ // 2.根据作业票判断到了哪一阶段了
|
|
|
+ if (jobTicketKey.getCollectTime() == null || jobTicketKey.getGiveBackTime() == null) {
|
|
|
+ // 3.1获取上锁时取出的锁的信息
|
|
|
+ IsKey startKey = isKeyService.getOne(Wrappers.<IsKey>lambdaQuery().eq(IsKey::getKeyNfc, dto.getKeyNfc()));
|
|
|
+ Assert.notNull(startKey, "钥匙数据丢失啦!");
|
|
|
+ // 3.2上锁阶段
|
|
|
+ iIsJobTicketKeyService.update(Wrappers.<IsJobTicketKey>lambdaUpdate()
|
|
|
+ .eq(IsJobTicketKey::getTicketId, dto.getTicketId())
|
|
|
+ .eq(IsJobTicketKey::getTicketType, "0")
|
|
|
+ .set(IsJobTicketKey::getKeyId, startKey.getKeyId())
|
|
|
+ .set(dto.getFromHardwareId() != null, IsJobTicketKey::getFromHardwareId, dto.getFromHardwareId())
|
|
|
+ .set(dto.getFromHardwareId() != null, IsJobTicketKey::getCollectTime, date)
|
|
|
+ .set(dto.getToHardwareId() != null, IsJobTicketKey::getToHardwareId, dto.getToHardwareId())
|
|
|
+ .set(dto.getToHardwareId() != null, IsJobTicketKey::getGiveBackTime, date));
|
|
|
+
|
|
|
+ } else {
|
|
|
+ // 4.1获取解锁时取出的锁的信息
|
|
|
+ IsKey startKey = isKeyService.getOne(Wrappers.<IsKey>lambdaQuery().eq(IsKey::getKeyNfc, dto.getKeyNfc()));
|
|
|
+ Assert.notNull(startKey, "钥匙数据丢失啦!");
|
|
|
+ // 4.2解锁阶段
|
|
|
+ iIsJobTicketKeyService.update(Wrappers.<IsJobTicketKey>lambdaUpdate()
|
|
|
+ .eq(IsJobTicketKey::getTicketId, dto.getTicketId())
|
|
|
+ .eq(IsJobTicketKey::getTicketType, "1")
|
|
|
+ .set(IsJobTicketKey::getKeyId, startKey.getKeyId())
|
|
|
+ .set(dto.getFromHardwareId() != null, IsJobTicketKey::getFromHardwareId, dto.getFromHardwareId())
|
|
|
+ .set(dto.getFromHardwareId() != null, IsJobTicketKey::getCollectTime, date)
|
|
|
+ .set(dto.getToHardwareId() != null, IsJobTicketKey::getToHardwareId, dto.getToHardwareId())
|
|
|
+ .set(dto.getToHardwareId() != null, IsJobTicketKey::getGiveBackTime, date));
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+}
|