Explorar o código

物联网添加创建设备体征字典接口

humingfen %!s(int64=5) %!d(string=hai) anos
pai
achega
e22582f453

+ 23 - 2
common/common-entity/src/main/java/com/yihu/jw/entity/iot/dict/IotDeviceDictDO.java

@ -20,10 +20,10 @@ public class IotDeviceDictDO extends UuidIdentityEntityWithOperator implements S
    private String saasId;
    @Column(name = "device_type")
    private String deviceType;//设备种类
    private String deviceType;//设备种类,iot_system_dict表的id
    @Column(name = "name")
    private String name;//设备种类名称
    private String name;//设备种类名称,iot_system_dict表的value
    @Column(name = "data_type")
    private String dataType;//测量数据种类
@ -31,6 +31,11 @@ public class IotDeviceDictDO extends UuidIdentityEntityWithOperator implements S
    @Column(name = "data_type_name")
    private String dataTypeName;//测量数据种类名称
    @Column(name = "unit")
    private String unit;//单位
    @Column(name = "field")
    private String field;//对应字段
    @Column(name = "del")
    private Integer del;//删除标志
@ -84,4 +89,20 @@ public class IotDeviceDictDO extends UuidIdentityEntityWithOperator implements S
    public void setDel(Integer del) {
        this.del = del;
    }
    public String getUnit() {
        return unit;
    }
    public void setUnit(String unit) {
        this.unit = unit;
    }
    public String getField() {
        return field;
    }
    public void setField(String field) {
        this.field = field;
    }
}

+ 3 - 3
common/common-request-mapping/src/main/java/com/yihu/jw/rm/iot/IotRequestMapping.java

@ -139,10 +139,10 @@ public class IotRequestMapping {
     * 设备字典模块常量
     */
    public static class DeviceDict{
        public static final String api_create = "deviceDict";
        public static final String api_delete = "deviceDict";
        public static final String api_create = "createDeviceDict";
        public static final String api_delete = "deleteDeviceDict";
        public static final String api_getById = "getDeviceDictById";
        public static final String api_update = "deviceDict";
        public static final String api_update = "updateDeviceDict";
        public static final String api_queryPage = "queryDeviceDictPage";
        public static final String api_getList = "getDeviceDictList";

+ 33 - 0
common/common-util/src/main/java/com/yihu/jw/util/common/BeanUtils.java

@ -0,0 +1,33 @@
package com.yihu.jw.util.common;
import org.springframework.beans.BeanWrapper;
import org.springframework.beans.BeanWrapperImpl;
import java.beans.PropertyDescriptor;
import java.util.HashSet;
import java.util.Set;
/**
 * create by hmf on 2020/04/27
 */
public class BeanUtils {
    /**
     * @Title: getNullPropertyNames
     * @Description: 获取值为空的属性名称
     * @createdBy:byrc
     */
    public static String[] getNullPropertyNames(Object source) {
        BeanWrapper src = new BeanWrapperImpl(source);
        PropertyDescriptor[] pds = src.getPropertyDescriptors();
        Set<String> emptyNames = new HashSet<String>();
        for (PropertyDescriptor pd : pds) {
            Object srcValue = src.getPropertyValue(pd.getName());
            if (srcValue == null)
                emptyNames.add(pd.getName());
        }
        String[] result = new String[emptyNames.size()];
        return emptyNames.toArray(result);
    }
}

+ 15 - 4
svr/svr-iot/src/main/java/com/yihu/iot/controller/dict/IotDeviceDictController.java

@ -9,10 +9,7 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.List;
@ -43,4 +40,18 @@ public class IotDeviceDictController extends EnvelopRestEndpoint {
        List<IotDeviceDictDO> iotDeviceDicts = convertToModels(list, new ArrayList<>(list.size()), IotDeviceDictDO.class, fields);
        return MixEnvelop.getSuccessList(IotRequestMapping.DeviceDict.message_success_find_functions,iotDeviceDicts);
    }
    @PostMapping(value = IotRequestMapping.DeviceDict.api_create)
    @ApiOperation(value = "创建编辑设备字典")
    public MixEnvelop create(
            @ApiParam(name = "jsonData", value = "设备体征字典json数据")
            @RequestParam(value = "jsonData", required = false) String jsonData){
        try {
            IotDeviceDictDO dictDO = toEntity(jsonData, IotDeviceDictDO.class);
            return MixEnvelop.getSuccess(IotRequestMapping.Company.message_success_create, iotDeviceDictService.create(dictDO));
        } catch (Exception e) {
            e.printStackTrace();
            return MixEnvelop.getError(e.getMessage());
        }
    }
}

+ 1 - 1
svr/svr-iot/src/main/java/com/yihu/iot/dao/dict/IotDeviceDictDao.java

@ -11,6 +11,6 @@ import org.springframework.data.repository.PagingAndSortingRepository;
public interface IotDeviceDictDao extends PagingAndSortingRepository<IotDeviceDictDO,String>,
        JpaSpecificationExecutor<IotDeviceDictDO> {
    @Query("from IotDeviceDictDO w where w.id =?1")
    @Query("from IotDeviceDictDO w where w.id =?1 and w.del = 1")
    IotDeviceDictDO findById(String id);
}

+ 28 - 0
svr/svr-iot/src/main/java/com/yihu/iot/service/dict/IotDeviceDictService.java

@ -3,9 +3,15 @@ package com.yihu.iot.service.dict;
import com.yihu.iot.dao.dict.IotDeviceDictDao;
import com.yihu.jw.entity.iot.dict.IotDeviceDictDO;
import com.yihu.mysql.query.BaseJpaService;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
import static com.yihu.jw.util.common.BeanUtils.getNullPropertyNames;
/**
 * @author yeshijie on 2017/12/8.
 */
@ -19,4 +25,26 @@ public class IotDeviceDictService extends BaseJpaService<IotDeviceDictDO,IotDevi
        return iotDeviceDictDao.findById(id);
    }
    /**
     * 新增或编辑体征字典
     * @param dictDO
     * @return
     */
    public IotDeviceDictDO create(IotDeviceDictDO dictDO) {
        //判断新增或者编辑
        if(StringUtils.isNotBlank(dictDO.getId())){
            IotDeviceDictDO oldDictDO = iotDeviceDictDao.findById(dictDO.getId());
            BeanUtils.copyProperties(dictDO, oldDictDO, getNullPropertyNames(dictDO));
            oldDictDO.setUpdateTime(new Date());
            iotDeviceDictDao.save(oldDictDO);
            return oldDictDO;
        }else {
            dictDO.setSaasId(getCode());
            dictDO.setDel(1);
            dictDO.setCreateTime(new Date());
            iotDeviceDictDao.save(dictDO);
            return dictDO;
        }
    }
}