设备型号版本功能完善
This commit is contained in:
parent
d635f9c5a8
commit
f669751957
|
@ -217,112 +217,76 @@
|
|||
width="1000px"
|
||||
append-to-body
|
||||
>
|
||||
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
|
||||
<el-col :span="24">
|
||||
<el-form
|
||||
ref="form"
|
||||
:model="form"
|
||||
:rules="rules"
|
||||
label-width="100px"
|
||||
label-position="right"
|
||||
style="margin-top: -10px"
|
||||
>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="设备名称" prop="deviceName">
|
||||
<el-input
|
||||
v-model="form.deviceName"
|
||||
placeholder="请输入设备名称"
|
||||
/>
|
||||
<el-form-item
|
||||
label="设备名称"
|
||||
prop="deviceName"
|
||||
style="margin-bottom: 12px"
|
||||
>
|
||||
<el-input
|
||||
v-model="form.deviceName"
|
||||
placeholder="请输入设备名称"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="分类" prop="classifyId" style="width: 100%">
|
||||
<el-input v-model="form.classifyName" v-if="false" />
|
||||
<el-select
|
||||
v-model="form.classifyId"
|
||||
filterable
|
||||
clearable
|
||||
placeholder="请选择"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in classifyOptions"
|
||||
:key="item.classifyId"
|
||||
:label="item.classifyName"
|
||||
:value="item.classifyId"
|
||||
>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="型号" prop="modelId" style="width: 100%">
|
||||
<el-select
|
||||
v-model="form.modelId"
|
||||
filterable
|
||||
clearable
|
||||
placeholder="请选择型号"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in modelOptions"
|
||||
:key="item.modelId"
|
||||
:label="item.model"
|
||||
:value="item.modelId"
|
||||
>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="版本号" prop="versionId" style="width: 100%">
|
||||
<el-select
|
||||
v-model="form.versionId"
|
||||
filterable
|
||||
clearable
|
||||
placeholder="请选择"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in versionOptions"
|
||||
:key="item.versionId"
|
||||
:label="item.version"
|
||||
:value="item.versionId"
|
||||
>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="图片" prop="picture">
|
||||
<image-upload v-model="form.picture" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="设备Mac" prop="mac">
|
||||
<el-input v-model="form.mac" placeholder="请输入设备Mac号" :disabled="title=='修改设备'"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12" v-show="title=='修改设备'">
|
||||
<el-form-item label="用户" prop="userId" style="width: 100%" >
|
||||
<el-form-item label="用户" prop="userId" >
|
||||
<el-select
|
||||
v-model="form.userId"
|
||||
filterable
|
||||
clearable
|
||||
placeholder="请选择"
|
||||
placeholder="请选择用户"
|
||||
style="width: 100%"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in userOptions"
|
||||
:key="item.userId"
|
||||
:label="item.userName"
|
||||
:value="item.userId"
|
||||
>
|
||||
</el-option>
|
||||
<el-option
|
||||
v-for="item in userOptions"
|
||||
:key="item.userId"
|
||||
:label="item.userName"
|
||||
:value="item.userId"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<!-- 设备Mac -->
|
||||
<el-form-item
|
||||
label="设备Mac"
|
||||
prop="mac"
|
||||
style="margin-bottom: 12px"
|
||||
>
|
||||
<el-input
|
||||
v-model="form.mac"
|
||||
placeholder="请输入设备Mac号"
|
||||
:disabled="title === '修改设备'"
|
||||
style="width: 300px"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
label="型号前缀"
|
||||
prop="pre"
|
||||
style="margin-bottom: 12px"
|
||||
>
|
||||
<el-input
|
||||
v-model="form.pre"
|
||||
placeholder="请输入型号前缀"
|
||||
:disabled="title === '修改设备'"
|
||||
style="width: 300px"
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<hr style="border-style: groove" />
|
||||
|
||||
<el-col :span="24">
|
||||
<el-form-item label="备注" prop="remark">
|
||||
<el-input
|
||||
v-model="form.remark"
|
||||
type="textarea"
|
||||
placeholder="请输入内容"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<!-- 图片 -->
|
||||
<el-form-item label="图片" prop="picture">
|
||||
<image-upload v-model="form.picture" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button type="primary" @click="submitForm">确 定</el-button>
|
||||
|
@ -331,6 +295,64 @@
|
|||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
<!-- <el-col :span="12">-->
|
||||
<!-- <el-form-item label="分类" prop="classifyId" style="width: 100%">-->
|
||||
<!-- <el-input v-model="form.classifyName" v-if="false" />-->
|
||||
<!-- <el-select-->
|
||||
<!-- v-model="form.classifyId"-->
|
||||
<!-- filterable-->
|
||||
<!-- clearable-->
|
||||
<!-- placeholder="请选择"-->
|
||||
<!-- >-->
|
||||
<!-- <el-option-->
|
||||
<!-- v-for="item in classifyOptions"-->
|
||||
<!-- :key="item.classifyId"-->
|
||||
<!-- :label="item.classifyName"-->
|
||||
<!-- :value="item.classifyId"-->
|
||||
<!-- >-->
|
||||
<!-- </el-option>-->
|
||||
<!-- </el-select>-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- </el-col>-->
|
||||
<!-- <el-col :span="12">-->
|
||||
<!-- <el-form-item label="型号" prop="modelId" style="width: 100%">-->
|
||||
<!-- <el-select-->
|
||||
<!-- v-model="form.modelId"-->
|
||||
<!-- filterable-->
|
||||
<!-- clearable-->
|
||||
<!-- placeholder="请选择型号"-->
|
||||
<!-- >-->
|
||||
<!-- <el-option-->
|
||||
<!-- v-for="item in modelOptions"-->
|
||||
<!-- :key="item.modelId"-->
|
||||
<!-- :label="item.model"-->
|
||||
<!-- :value="item.modelId"-->
|
||||
<!-- >-->
|
||||
<!-- </el-option>-->
|
||||
<!-- </el-select>-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- </el-col>-->
|
||||
<!-- <el-col :span="12">-->
|
||||
<!-- <el-form-item label="版本号" prop="versionId" style="width: 100%">-->
|
||||
<!-- <el-select-->
|
||||
<!-- v-model="form.versionId"-->
|
||||
<!-- filterable-->
|
||||
<!-- clearable-->
|
||||
<!-- placeholder="请选择"-->
|
||||
<!-- >-->
|
||||
<!-- <el-option-->
|
||||
<!-- v-for="item in versionOptions"-->
|
||||
<!-- :key="item.versionId"-->
|
||||
<!-- :label="item.version"-->
|
||||
<!-- :value="item.versionId"-->
|
||||
<!-- >-->
|
||||
<!-- </el-option>-->
|
||||
<!-- </el-select>-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- </el-col>-->
|
||||
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
import {
|
||||
|
@ -519,6 +541,9 @@ export default {
|
|||
classifyId: [
|
||||
{ required: true, message: "分类不能为空", trigger: "blur" },
|
||||
],
|
||||
pre: [
|
||||
{ required: true, message: "设备名称不能为空", trigger: "blur" },
|
||||
],
|
||||
versionId: [
|
||||
{ required: true, message: "版本不能为空", trigger: "blur" },
|
||||
],
|
||||
|
|
|
@ -19,14 +19,14 @@
|
|||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="S/N" prop="idCode">
|
||||
<el-input
|
||||
v-model="queryParams.idCode"
|
||||
placeholder="请输入S/N"
|
||||
clearable
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="S/N" prop="idCode">-->
|
||||
<!-- <el-input-->
|
||||
<!-- v-model="queryParams.idCode"-->
|
||||
<!-- placeholder="请输入S/N"-->
|
||||
<!-- clearable-->
|
||||
<!-- @keyup.enter.native="handleQuery"-->
|
||||
<!-- />-->
|
||||
<!-- </el-form-item>-->
|
||||
<el-form-item label="分类名称" prop="classifyName">
|
||||
<el-input
|
||||
v-model="queryParams.classifyName"
|
||||
|
@ -94,12 +94,14 @@
|
|||
<el-table-column label="id" align="center" prop="modelId" />
|
||||
<el-table-column label="名称" align="center" prop="modelName" />
|
||||
<el-table-column label="型号" align="center" prop="model" />
|
||||
<el-table-column label="固件版本" align="center" prop="version" />
|
||||
<el-table-column label="图片" align="center" prop="picture" width="100">
|
||||
<template slot-scope="scope">
|
||||
<image-preview :src="scope.row.picture" :width="50" :height="50"/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="S/N" align="center" prop="idCode" />
|
||||
<!-- <el-table-column label="S/N" align="center" prop="idCode" />-->
|
||||
<el-table-column label="设备前缀" align="center" prop="pre" />
|
||||
<el-table-column label="分类名称" align="center" prop="classifyName" />
|
||||
<el-table-column label="添加时间" align="center" prop="createTime" />
|
||||
<el-table-column label="累计激活" align="center" prop="activationNum" />
|
||||
|
@ -142,13 +144,6 @@
|
|||
<el-form-item label="型号" prop="model">
|
||||
<el-input v-model="form.model" placeholder="请输入型号" />
|
||||
</el-form-item>
|
||||
<el-form-item label="图片" prop="picture">
|
||||
<image-upload v-model="form.picture"/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="S/N" prop="idCode">
|
||||
<el-input v-model="form.idCode" placeholder="请输入S/N" />
|
||||
</el-form-item>
|
||||
<el-form-item label="分类" prop="classifyId">
|
||||
<el-select v-model="form.classifyId" filterable clearable placeholder="请选择" >
|
||||
<el-option
|
||||
|
@ -159,16 +154,25 @@
|
|||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="版本" prop="versionId">
|
||||
<el-select v-model="form.versionId" filterable clearable placeholder="请选择" >
|
||||
<el-option
|
||||
v-for="item in versionOptions"
|
||||
:key="item.versionId"
|
||||
:label="item.version"
|
||||
:value="item.versionId">
|
||||
</el-option>
|
||||
</el-select>
|
||||
<!-- <el-form-item label="版本" prop="versionId">-->
|
||||
<!-- <el-select v-model="form.versionId" filterable clearable placeholder="请绑定固件后再选择版本" >-->
|
||||
<!-- <el-option-->
|
||||
<!-- v-for="item in versionOptions"-->
|
||||
<!-- :key="item.versionId"-->
|
||||
<!-- :label="item.version"-->
|
||||
<!-- :value="item.versionId">-->
|
||||
<!-- </el-option>-->
|
||||
<!-- </el-select>-->
|
||||
<!-- </el-form-item>-->
|
||||
<el-form-item label="图片" prop="picture">
|
||||
<image-upload v-model="form.picture"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="型号前缀" prop="pre">
|
||||
<el-input v-model="form.pre" type="textarea" placeholder="请输入型号前缀,多个前缀用逗号分隔" />
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="S/N" prop="idCode">-->
|
||||
<!-- <el-input v-model="form.idCode" placeholder="请输入S/N" />-->
|
||||
<!-- </el-form-item>-->
|
||||
<el-form-item label="产品介绍" prop="introduce">
|
||||
<el-input v-model="form.introduce" type="textarea" placeholder="请输入内容" />
|
||||
</el-form-item>
|
||||
|
@ -241,15 +245,15 @@ export default {
|
|||
model: [
|
||||
{ required: true, message: "型号不能为空", trigger: "blur" }
|
||||
],
|
||||
idCode: [
|
||||
{ required: true, message: "S/N不能为空", trigger: "blur" }
|
||||
],
|
||||
// idCode: [
|
||||
// { required: true, message: "S/N不能为空", trigger: "blur" }
|
||||
// ],
|
||||
classifyId: [
|
||||
{ required: true, message: "分类不能为空", trigger: "blur" }
|
||||
],
|
||||
versionId: [
|
||||
{ required: true, message: "版本不能为空", trigger: "blur" }
|
||||
]
|
||||
pre: [
|
||||
{ required: true, message: "型号前缀不能为空", trigger: "blur" }
|
||||
],
|
||||
}
|
||||
};
|
||||
},
|
||||
|
|
|
@ -2,6 +2,8 @@ package com.ruoyi.device.controller;
|
|||
|
||||
import java.util.List;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import com.ruoyi.device.service.IAsModelService;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
|
@ -34,6 +36,8 @@ public class AsDeviceVersionController extends BaseController
|
|||
@Autowired
|
||||
private IAsDeviceVersionService asDeviceVersionService;
|
||||
|
||||
@Autowired
|
||||
private IAsModelService asModelService;
|
||||
/**
|
||||
* 查询固件版本列表
|
||||
*/
|
||||
|
@ -77,7 +81,7 @@ public class AsDeviceVersionController extends BaseController
|
|||
@PostMapping
|
||||
public AjaxResult add(@RequestBody AsDeviceVersion asDeviceVersion)
|
||||
{
|
||||
return toAjax(asDeviceVersionService.insertAsDeviceVersion(asDeviceVersion));
|
||||
return toAjax(asDeviceVersionService.insertAsDeviceVersionAndUpdateAsModel(asDeviceVersion));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -3,7 +3,9 @@ package com.ruoyi.device.controller;
|
|||
import java.util.List;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import com.ruoyi.common.constant.UserConstants;
|
||||
import com.ruoyi.device.domain.AsDeviceVersion;
|
||||
import com.ruoyi.device.domain.vo.AsModelVO;
|
||||
import com.ruoyi.device.service.IAsDeviceVersionService;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
@ -85,6 +87,8 @@ public class AsModelController extends BaseController
|
|||
@PostMapping
|
||||
public AjaxResult add(@RequestBody AsModel asModel)
|
||||
{
|
||||
// 前缀校验
|
||||
asModelService.checkAsModelByPre(asModel);
|
||||
if (!asModelService.checkModelUnique(asModel))
|
||||
{
|
||||
return error("新增型号'" + asModel.getModel() + "'失败,该型号已存在");
|
||||
|
@ -101,6 +105,8 @@ public class AsModelController extends BaseController
|
|||
@PutMapping
|
||||
public AjaxResult edit(@RequestBody AsModel asModel)
|
||||
{
|
||||
// 前缀校验
|
||||
asModelService.checkAsModelByPre(asModel);
|
||||
if (!asModelService.checkModelUnique(asModel))
|
||||
{
|
||||
return error("修改型号'" + asModel.getModel() + "'失败,该型号已存在");
|
||||
|
|
|
@ -12,6 +12,8 @@ import com.ruoyi.common.annotation.Excel;
|
|||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
/**
|
||||
* 设备列表对象 as_device
|
||||
*
|
||||
|
@ -58,6 +60,7 @@ public class AsDevice extends BaseEntity
|
|||
|
||||
/** 设备Mac号 */
|
||||
@Excel(name = "设备Mac号")
|
||||
@NotNull
|
||||
private String mac;
|
||||
|
||||
/** 激活时间 */
|
||||
|
@ -170,6 +173,6 @@ public class AsDevice extends BaseEntity
|
|||
private String bluetoothName;
|
||||
|
||||
/** 设备前缀 */
|
||||
@Excel(name = "设备前缀")
|
||||
@Excel(name = "型号前缀")
|
||||
private String pre;
|
||||
}
|
||||
|
|
|
@ -5,6 +5,8 @@ import lombok.Data;
|
|||
import com.ruoyi.common.annotation.Excel;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 固件版本对象 as_device_version
|
||||
*
|
||||
|
@ -49,4 +51,8 @@ public class AsDeviceVersion extends BaseEntity
|
|||
@Excel(name = "升级")
|
||||
private String upgradeDescribe;
|
||||
|
||||
/** 升级 */
|
||||
@Excel(name = "创建时间")
|
||||
private LocalDateTime createLocalDateTime;
|
||||
|
||||
}
|
||||
|
|
|
@ -64,7 +64,13 @@ public class AsModel extends BaseEntity
|
|||
@Excel(name = "版本数据")
|
||||
private AsDeviceVersion asDeviceVersion;
|
||||
|
||||
@Excel(name = "型号前缀")
|
||||
private String pre;
|
||||
|
||||
@Excel(name = "版本号集合")
|
||||
private List<String> versionList;
|
||||
|
||||
@Excel(name = "固件版本号")
|
||||
private String version;
|
||||
|
||||
}
|
||||
|
|
|
@ -68,4 +68,6 @@ public interface AsDeviceVersionMapper extends BaseMapper<AsDeviceVersion>
|
|||
public int deleteAsDeviceVersionByVersionIds(Long[] versionIds);
|
||||
|
||||
public List<String> selectAsDeviceVersionByModelId(Long modelId);
|
||||
|
||||
AsDeviceVersion selectLatestAsDeviceVersion(Long modelId);
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@ import java.util.List;
|
|||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.ruoyi.device.domain.AsDeviceVersion;
|
||||
import com.ruoyi.device.domain.AsModel;
|
||||
import com.ruoyi.device.domain.vo.AsModelVO;
|
||||
|
||||
/**
|
||||
* 型号列表Mapper接口
|
||||
|
@ -77,4 +78,6 @@ public interface AsModelMapper extends BaseMapper<AsModel>
|
|||
* @return 结果
|
||||
*/
|
||||
public AsModel checkModelUnique(String model);
|
||||
|
||||
public AsModelVO checkModelByPre(AsModel asModel);
|
||||
}
|
||||
|
|
|
@ -69,4 +69,6 @@ public interface IAsDeviceVersionService
|
|||
public int deleteAsDeviceVersionByVersionId(Long versionId);
|
||||
|
||||
public List<String> selectAsDeviceVersionByModelId(Long modelId);
|
||||
|
||||
int insertAsDeviceVersionAndUpdateAsModel(AsDeviceVersion asDeviceVersion);
|
||||
}
|
||||
|
|
|
@ -2,6 +2,7 @@ package com.ruoyi.device.service;
|
|||
|
||||
import java.util.List;
|
||||
import com.ruoyi.device.domain.AsModel;
|
||||
import com.ruoyi.device.domain.vo.AsModelVO;
|
||||
|
||||
/**
|
||||
* 型号列表Service接口
|
||||
|
@ -77,4 +78,17 @@ public interface IAsModelService
|
|||
public boolean checkModelUnique(AsModel asModel);
|
||||
|
||||
public AsModel selectAsModelDetail(Long modelId);
|
||||
|
||||
/**
|
||||
* 判断前缀是否已经存在
|
||||
* @param asModel
|
||||
*/
|
||||
void checkAsModelByPre(AsModel asModel);
|
||||
|
||||
/**
|
||||
* 根据前缀查询型号信息
|
||||
* @param asModel
|
||||
* @return
|
||||
*/
|
||||
AsModelVO selectAsModelByPre(AsModel asModel);
|
||||
}
|
||||
|
|
|
@ -17,14 +17,12 @@ import com.ruoyi.common.utils.onenet.Token;
|
|||
import com.ruoyi.common.utils.pinyin.PinyinUtils;
|
||||
import com.ruoyi.common.utils.spring.SpringUtils;
|
||||
import com.ruoyi.device.domain.*;
|
||||
import com.ruoyi.device.domain.vo.AsModelVO;
|
||||
import com.ruoyi.device.domain.vo.IPVo;
|
||||
import com.ruoyi.device.domain.vo.IsBandVO;
|
||||
import com.ruoyi.device.domain.vo.WeatherResponse;
|
||||
import com.ruoyi.device.mapper.*;
|
||||
import com.ruoyi.device.service.IAsDeviceService;
|
||||
import com.ruoyi.device.service.IAsTimerService;
|
||||
import com.ruoyi.device.service.IAsUserService;
|
||||
import com.ruoyi.device.service.IAsWateringRecordService;
|
||||
import com.ruoyi.device.service.*;
|
||||
import com.ruoyi.system.mapper.SysUserMapper;
|
||||
import lombok.SneakyThrows;
|
||||
import org.apache.commons.lang3.ObjectUtils;
|
||||
|
@ -79,6 +77,9 @@ public class AsDeviceServiceImpl extends ServiceImpl<AsDeviceMapper, AsDevice> i
|
|||
@Resource
|
||||
private IAsUserService asUserService;
|
||||
|
||||
@Resource
|
||||
private IAsModelService asModelService;
|
||||
|
||||
@Resource
|
||||
private IAsTimerService asTimerService;
|
||||
|
||||
|
@ -279,19 +280,38 @@ public class AsDeviceServiceImpl extends ServiceImpl<AsDeviceMapper, AsDevice> i
|
|||
public int insertAsDevice(AsDevice asDevice)
|
||||
{
|
||||
asDevice.setCreateTime(DateUtils.getNowDate());
|
||||
AsDeviceClassify deviceClassify = classifyMapper.selectAsDeviceClassifyByClassifyId(asDevice.getClassifyId());
|
||||
asDevice.setClassifyName(deviceClassify.getClassifyName());
|
||||
AsDevice device = setValue(asDevice);
|
||||
AsDevice vo = asDeviceMapper.selectAsDeviceByMac(asDevice.getMac());
|
||||
ServiceUtil.assertion(vo!=null,"该设备已存在,不允许重复!");
|
||||
return asDeviceMapper.insertAsDevice(device);
|
||||
}
|
||||
|
||||
|
||||
public AsDevice setValue(AsDevice asDevice){
|
||||
// 前缀校验
|
||||
AsModel asModel = new AsModel();
|
||||
asModel.setPre(asDevice.getPre());
|
||||
AsModelVO model = asModelService.selectAsModelByPre(asModel);
|
||||
// 设置型号数据
|
||||
asDevice.setModel(model.getModel());
|
||||
asDevice.setModelId(model.getModelId());
|
||||
asDevice.setModelName(model.getModelName());
|
||||
// 设置分类
|
||||
asDevice.setClassifyId(model.getClassifyId());
|
||||
AsDeviceClassify asDeviceClassify = classifyMapper.selectAsDeviceClassifyByClassifyId(model.getClassifyId());
|
||||
asDevice.setClassifyName(asDeviceClassify.getClassifyName());
|
||||
// 设置用户数据
|
||||
if(ObjectUtils.isNotEmpty(asDevice.getUserId())){
|
||||
AsUser user = asUserService.selectUserById(asDevice.getUserId());
|
||||
asDevice.setUserName(user.getUserName());
|
||||
asDevice.setNickName(user.getNickName());
|
||||
}
|
||||
AsModel model = modelMapper.selectAsModelByModelId(asDevice.getModelId());
|
||||
asDevice.setModel(model.getModel());
|
||||
AsDeviceVersion asDeviceVersion = versionMapper.selectAsDeviceVersionByVersionId(asDevice.getVersionId());
|
||||
// 设置版本数据
|
||||
AsDeviceVersion asDeviceVersion = versionMapper.selectAsDeviceVersionByVersionId(model.getVersionId());
|
||||
asDevice.setVersion(asDeviceVersion.getVersion());
|
||||
asDevice.setVersionId(model.getVersionId());
|
||||
asDevice.setIsDefault("1");
|
||||
return asDeviceMapper.insertAsDevice(asDevice);
|
||||
return asDevice;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -329,6 +349,13 @@ public class AsDeviceServiceImpl extends ServiceImpl<AsDeviceMapper, AsDevice> i
|
|||
// logger.info("IOT请求调用结果:【{}】",result);
|
||||
|
||||
/**4.更新数据库*/
|
||||
|
||||
// 如果修改MAC或者前缀,则整个都进行修改
|
||||
// if (asDevice.getMac()!= null && asDevice.getPre()!=null){
|
||||
// AsDevice vo = setValue(asDevice);
|
||||
// return asDeviceMapper.updateAsDevice(vo);
|
||||
// }
|
||||
// 否则只修改名称用户还有图片
|
||||
return asDeviceMapper.updateAsDevice(asDevice);
|
||||
}
|
||||
|
||||
|
|
|
@ -1,14 +1,19 @@
|
|||
package com.ruoyi.device.service.impl;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.ruoyi.common.utils.DateUtils;
|
||||
import com.ruoyi.device.domain.AsModel;
|
||||
import com.ruoyi.device.mapper.AsModelMapper;
|
||||
import com.ruoyi.device.service.IAsModelService;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.ruoyi.device.mapper.AsDeviceVersionMapper;
|
||||
import com.ruoyi.device.domain.AsDeviceVersion;
|
||||
import com.ruoyi.device.service.IAsDeviceVersionService;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
|
@ -24,6 +29,8 @@ public class AsDeviceVersionServiceImpl extends ServiceImpl<AsDeviceVersionMappe
|
|||
@Resource
|
||||
private AsDeviceVersionMapper asDeviceVersionMapper;
|
||||
|
||||
@Resource
|
||||
private IAsModelService asModelService;
|
||||
/**
|
||||
* 查询固件版本
|
||||
*
|
||||
|
@ -82,6 +89,10 @@ public class AsDeviceVersionServiceImpl extends ServiceImpl<AsDeviceVersionMappe
|
|||
public int updateAsDeviceVersion(AsDeviceVersion asDeviceVersion)
|
||||
{
|
||||
asDeviceVersion.setUpdateTime(DateUtils.getNowDate());
|
||||
// 更新对应的设备固件版本为最新的版本
|
||||
asModelService.selectAsModelByModelId(asDeviceVersion.getModelId());
|
||||
AsDeviceVersion latestAsDeviceVersion = asDeviceVersionMapper.selectLatestAsDeviceVersion(asDeviceVersion.getModelId());
|
||||
asDeviceVersion.setVersionId(latestAsDeviceVersion.getVersionId());
|
||||
return asDeviceVersionMapper.updateAsDeviceVersion(asDeviceVersion);
|
||||
}
|
||||
|
||||
|
@ -113,4 +124,17 @@ public class AsDeviceVersionServiceImpl extends ServiceImpl<AsDeviceVersionMappe
|
|||
public List<String> selectAsDeviceVersionByModelId(Long modelId) {
|
||||
return asDeviceVersionMapper.selectAsDeviceVersionByModelId(modelId);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public int insertAsDeviceVersionAndUpdateAsModel(AsDeviceVersion asDeviceVersion) {
|
||||
asDeviceVersion.setCreateLocalDateTime(LocalDateTime.now());
|
||||
int rows = asDeviceVersionMapper.insertAsDeviceVersion(asDeviceVersion);
|
||||
if (rows > 0) {
|
||||
AsModel asModel = asModelService.selectAsModelByModelId(asDeviceVersion.getModelId());
|
||||
asModel.setVersionId(asDeviceVersion.getVersionId());
|
||||
asModelService.updateAsModel(asModel);
|
||||
}
|
||||
return rows;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -10,8 +10,10 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.ruoyi.common.constant.UserConstants;
|
||||
import com.ruoyi.common.utils.DateUtils;
|
||||
import com.ruoyi.common.utils.ServiceUtil;
|
||||
import com.ruoyi.common.utils.StringUtils;
|
||||
import com.ruoyi.device.domain.*;
|
||||
import com.ruoyi.device.domain.vo.AsModelVO;
|
||||
import com.ruoyi.device.mapper.AsDeviceClassifyMapper;
|
||||
import com.ruoyi.device.mapper.AsDeviceMapper;
|
||||
import com.ruoyi.device.mapper.AsDeviceVersionMapper;
|
||||
|
@ -198,4 +200,20 @@ public class AsModelServiceImpl extends ServiceImpl<AsModelMapper, AsModel> impl
|
|||
asModel.setAsDeviceVersion(asDeviceVersion);
|
||||
return asModel;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void checkAsModelByPre(AsModel asModel) {
|
||||
asModelMapper.checkModelByPre(asModel);
|
||||
AsModelVO asModelVO = asModelMapper.checkModelByPre(asModel);
|
||||
if (asModelVO!= null){
|
||||
ServiceUtil.assertion(true,"存在相同前缀");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public AsModelVO selectAsModelByPre(AsModel asModel) {
|
||||
AsModelVO asModelVO = asModelMapper.checkModelByPre(asModel);
|
||||
ServiceUtil.assertion(asModelVO == null,"当前型号不存在");
|
||||
return asModelVO;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -119,11 +119,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<if test="createTime != null">create_time,</if>
|
||||
<if test="updateBy != null">update_by,</if>
|
||||
<if test="updateTime != null">update_time,</if>
|
||||
<if test="modelName != null">model_name,</if>
|
||||
<if test="remark != null">remark,</if>
|
||||
<if test="regularWateringJson != null">regular_watering_json,</if>
|
||||
<if test="soilMoisture != null">soil_moisture,</if>
|
||||
<if test="waterIntensitySwitch != null">water_intensity_switch</if>
|
||||
<if test="pre != null">pre,</if>
|
||||
<if test="waterIntensitySwitch != null">water_intensity_switch,</if>
|
||||
<if test="pre != null">pre</if>
|
||||
</trim>
|
||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||
<if test="picture != null">#{picture},</if>
|
||||
|
@ -151,11 +152,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<if test="createTime != null">#{createTime},</if>
|
||||
<if test="updateBy != null">#{updateBy},</if>
|
||||
<if test="updateTime != null">#{updateTime},</if>
|
||||
<if test="modelName != null">#{modelName},</if>
|
||||
<if test="remark != null">#{remark},</if>
|
||||
<if test="regularWateringJson != null">#{regularWateringJson},</if>
|
||||
<if test="soilMoisture != null">#{soilMoisture},</if>
|
||||
<if test="waterIntensitySwitch != null">#{waterIntensitySwitch}</if>
|
||||
<if test="pre != null">#{pre},</if>
|
||||
<if test="waterIntensitySwitch != null">#{waterIntensitySwitch},</if>
|
||||
<if test="pre != null">#{pre}</if>
|
||||
</trim>
|
||||
</insert>
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<result property="modelId" column="model_id" />
|
||||
<result property="version" column="version" />
|
||||
<result property="createBy" column="create_by" />
|
||||
<result property="createTime" column="create_time" />
|
||||
<result property="createLocalDateTime" column="create_time" />
|
||||
<result property="updateBy" column="update_by" />
|
||||
<result property="updateTime" column="update_time" />
|
||||
<result property="size" column="size" />
|
||||
|
@ -46,6 +46,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<if test="upgradeRequire != null and upgradeRequire != ''"> and v.upgrade_require like concat('%', #{upgradeRequire}, '%')</if>
|
||||
<if test="upgradeDescribe != null and upgradeDescribe != ''"> and v.upgrade_describe like concat('%', #{upgradeDescribe}, '%')</if>
|
||||
</where>
|
||||
order by v.model_id asc,v.version asc
|
||||
</select>
|
||||
|
||||
<select id="selectAsDeviceVersionByVersionId" parameterType="Long" resultMap="AsDeviceVersionResult">
|
||||
|
@ -67,6 +68,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
where am.model_id = #{modelId}
|
||||
</select>
|
||||
|
||||
<select id="selectLatestAsDeviceVersion" resultType="com.ruoyi.device.domain.AsDeviceVersion">
|
||||
<include refid="selectAsDeviceVersionVo"/>
|
||||
where v.model_id = #{modelId}
|
||||
order by v.create_time desc limit 1
|
||||
</select>
|
||||
|
||||
<insert id="insertAsDeviceVersion" parameterType="AsDeviceVersion" useGeneratedKeys="true" keyProperty="versionId">
|
||||
insert into as_device_version
|
||||
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||
|
|
|
@ -22,7 +22,25 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
</resultMap>
|
||||
|
||||
<sql id="selectAsModelVo">
|
||||
select model_id, classify_id, model_name, model, picture, id_code, classify_name, version_id, introduce, create_by, create_time, update_by, update_time, remark from as_model
|
||||
select
|
||||
am.model_id,
|
||||
am.classify_id,
|
||||
am.model_name,
|
||||
am.model,
|
||||
am.picture,
|
||||
am.id_code,
|
||||
am.classify_name,
|
||||
am.version_id,
|
||||
am.introduce,
|
||||
am.create_by,
|
||||
am.create_time,
|
||||
am.update_by,
|
||||
am.update_time,
|
||||
am.pre,
|
||||
am.remark,
|
||||
adv.version
|
||||
from as_model am
|
||||
left join as_device_version adv on am.version_id = adv.version_id
|
||||
</sql>
|
||||
|
||||
<select id="selectAsModelList" parameterType="AsModel" resultMap="AsModelResult">
|
||||
|
@ -35,6 +53,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<if test="classifyName != null and classifyName != ''"> and classify_name like concat('%', #{classifyName}, '%')</if>
|
||||
<if test="versionId != null "> and version_id = #{versionId}</if>
|
||||
<if test="introduce != null and introduce != ''"> and introduce = #{introduce}</if>
|
||||
<if test="pre != null and introduce != ''"> and pre = #{pre}</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
|
@ -51,6 +70,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<include refid="selectAsModelVo"/>
|
||||
where model = #{model}
|
||||
</select>
|
||||
<select id="checkModelByPre" resultType="com.ruoyi.device.domain.vo.AsModelVO">
|
||||
<include refid="selectAsModelVo"/>
|
||||
<where>
|
||||
<if test="pre != null and pre != ''">and FIND_IN_SET (#{pre},am.pre) </if>
|
||||
<if test="modelId != null and modelId != ''">and model_id != #{modelId}</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<insert id="insertAsModel" parameterType="AsModel" useGeneratedKeys="true" keyProperty="modelId">
|
||||
insert into as_model
|
||||
|
@ -68,6 +94,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<if test="updateBy != null">update_by,</if>
|
||||
<if test="updateTime != null">update_time,</if>
|
||||
<if test="remark != null">remark,</if>
|
||||
<if test="pre != null">pre,</if>
|
||||
</trim>
|
||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||
<if test="classifyId != null">#{classifyId},</if>
|
||||
|
@ -83,16 +110,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<if test="updateBy != null">#{updateBy},</if>
|
||||
<if test="updateTime != null">#{updateTime},</if>
|
||||
<if test="remark != null">#{remark},</if>
|
||||
<if test="pre != null">#{pre},</if>
|
||||
</trim>
|
||||
</insert>
|
||||
|
||||
<update id="updateAsModel" parameterType="AsModel">
|
||||
update as_model
|
||||
<trim prefix="SET" suffixOverrides=",">
|
||||
<if test="picture != null">picture = #{picture},</if>
|
||||
<if test="classifyId != null">classify_id = #{classifyId},</if>
|
||||
<if test="modelName != null">model_name = #{modelName},</if>
|
||||
<if test="model != null">model = #{model},</if>
|
||||
<if test="picture != null">picture = #{picture},</if>
|
||||
<if test="idCode != null">id_code = #{idCode},</if>
|
||||
<if test="classifyName != null">classify_name = #{classifyName},</if>
|
||||
<if test="versionId != null">version_id = #{versionId},</if>
|
||||
|
@ -102,6 +130,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<if test="updateBy != null">update_by = #{updateBy},</if>
|
||||
<if test="updateTime != null">update_time = #{updateTime},</if>
|
||||
<if test="remark != null">remark = #{remark},</if>
|
||||
<if test="pre != null">pre = #{pre},</if>
|
||||
</trim>
|
||||
where model_id = #{modelId}
|
||||
</update>
|
||||
|
|
Loading…
Reference in New Issue
Block a user