|
@@ -1,10 +1,26 @@
|
|
|
package com.xy.service.impl;
|
|
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
-import com.xy.entity.DeviceRegister;
|
|
|
-import com.xy.mapper.DeviceRegisterMapper;
|
|
|
+import com.xy.dto.DeviceRegisterDto;
|
|
|
+import com.xy.entity.*;
|
|
|
+import com.xy.mapper.*;
|
|
|
import com.xy.service.DeviceRegisterService;
|
|
|
+import com.xy.utils.*;
|
|
|
+import io.swagger.annotations.Api;
|
|
|
+import io.swagger.annotations.ApiOperation;
|
|
|
+import lombok.AllArgsConstructor;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
+import org.springframework.validation.annotation.Validated;
|
|
|
+import org.springframework.web.bind.annotation.PostMapping;
|
|
|
+import org.springframework.web.bind.annotation.RequestBody;
|
|
|
+
|
|
|
+import java.time.LocalDateTime;
|
|
|
+
|
|
|
+import static com.xy.utils.PlusBeans.*;
|
|
|
|
|
|
/**
|
|
|
* <p>
|
|
@@ -15,6 +31,74 @@ import org.springframework.stereotype.Service;
|
|
|
* @since 2022-12-29
|
|
|
*/
|
|
|
@Service
|
|
|
+@Api(tags = "设备-注册登记")
|
|
|
+@AllArgsConstructor
|
|
|
public class DeviceRegisterServiceImpl extends ServiceImpl<DeviceRegisterMapper, DeviceRegister> implements DeviceRegisterService {
|
|
|
|
|
|
+ private DeviceCreateIdsMapper deviceCreateIdsMapper;
|
|
|
+
|
|
|
+ private DeviceInfoMapper deviceInfoMapper;
|
|
|
+
|
|
|
+ private DeviceSysinfoMapper deviceSysinfoMapper;
|
|
|
+
|
|
|
+ private DeviceStatusMapper deviceStatusMapper;
|
|
|
+
|
|
|
+ @PostMapping("save")
|
|
|
+ @ApiOperation("添加")
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public R save(@RequestBody @Validated DeviceRegisterDto.Save save) {
|
|
|
+ //重复校验
|
|
|
+ DeviceRegister deviceRegister = copy(DeviceRegister.class, save);
|
|
|
+ DeviceCreateIds deviceCreateIds = deviceCreateIdsMapper.selectById(deviceRegister.getDeviceId());
|
|
|
+ if (deviceCreateIds == null) {
|
|
|
+ return R.fail("设备不存在");
|
|
|
+ }
|
|
|
+ if (deviceCreateIds.getBindState()) {
|
|
|
+ return R.fail("设备已被绑定");
|
|
|
+ }
|
|
|
+ deviceRegister.setDeviceType(deviceCreateIds.getDeviceType())
|
|
|
+ .setCreateUser(AuthorizeUtils.getLoginId(Long.class))
|
|
|
+ .setCreateTime(LocalDateTime.now());
|
|
|
+ //操作注册序号
|
|
|
+ String property = LambdaUtils.getProperty(DeviceRegister::getRegisterNum);
|
|
|
+ QueryWrapper<DeviceRegister> queryWrapper = new QueryWrapper<DeviceRegister>()
|
|
|
+ .select(String.format("max(%s) as %s", StringTools.humpToLine(property), property))
|
|
|
+ .eq(StringTools.humpToLine(LambdaUtils.getProperty(DeviceRegister::getCreateUser)), AuthorizeUtils.getLoginId(Long.class));
|
|
|
+ DeviceRegister one = getOne(queryWrapper);
|
|
|
+ Integer registerNum = one == null || one.getRegisterNum() == null ? 0 : one.getRegisterNum();
|
|
|
+ deviceRegister.setRegisterNum(registerNum + 1);
|
|
|
+ //修改设备-机器ID号生成为已绑定
|
|
|
+ deviceCreateIdsMapper.updateById(new DeviceCreateIds().setDeviceId(deviceRegister.getDeviceId()).setBindState(true).setBindTime(deviceRegister.getCreateTime()));
|
|
|
+ //新增设备-注册登记
|
|
|
+ save(deviceRegister);
|
|
|
+ //新增设备信息
|
|
|
+ deviceInfoMapper.insert(new DeviceInfo()
|
|
|
+ .setDeviceId(deviceRegister.getDeviceId())
|
|
|
+ .setDeviceType(deviceRegister.getDeviceType())
|
|
|
+ .setMercDeviceCode(deviceRegister.getAssetNo())
|
|
|
+ .setCreateTime(deviceRegister.getCreateTime())
|
|
|
+ );
|
|
|
+ //新增设备-系统信息
|
|
|
+ deviceSysinfoMapper.insert(new DeviceSysinfo()
|
|
|
+ .setDeviceId(deviceRegister.getDeviceId())
|
|
|
+ .setDeviceSn(deviceRegister.getDeviceSn())
|
|
|
+ .setCreateTime(deviceRegister.getCreateTime())
|
|
|
+ );
|
|
|
+ //新增设备-状态
|
|
|
+ deviceStatusMapper.insert(new DeviceStatus().setDeviceId(deviceRegister.getDeviceId()));
|
|
|
+ return R.ok();
|
|
|
+ }
|
|
|
+
|
|
|
+ @PostMapping("page")
|
|
|
+ @ApiOperation("分页查询")
|
|
|
+ public R<PageBean<DeviceRegisterDto.Vo>> page(@RequestBody DeviceRegisterDto.Page page) {
|
|
|
+ PageBean pageBean = page.getPage();
|
|
|
+ LambdaQueryWrapper<DeviceRegister> lambdaQueryWrapper = new MybatisPlusQuery().eqWrapper(page, DeviceRegister.class)
|
|
|
+ .ge(DeviceRegister::getCreateTime, page.getBeginCreateTime())
|
|
|
+ .le(DeviceRegister::getCreateTime, page.getEndCreateTime())
|
|
|
+ .build()
|
|
|
+ .orderByDesc(!Emptys.check(pageBean.getOrders()), DeviceRegister::getCreateTime);
|
|
|
+ IPage<DeviceRegister> iPage = page(toIPage(pageBean), lambdaQueryWrapper);
|
|
|
+ return R.ok(toPageBean(DeviceRegisterDto.Vo.class, iPage));
|
|
|
+ }
|
|
|
}
|