|
@@ -1,5 +1,9 @@
|
|
|
package com.usky.iot.service.impl;
|
|
|
|
|
|
+import com.alibaba.fastjson.JSONArray;
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
+import com.alibaba.nacos.shaded.com.google.gson.JsonArray;
|
|
|
+import com.alibaba.nacos.shaded.com.google.gson.JsonObject;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
|
@@ -8,16 +12,18 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.usky.common.core.bean.CommonPage;
|
|
|
import com.usky.common.core.exception.BusinessException;
|
|
|
import com.usky.common.mybatis.core.AbstractCrudService;
|
|
|
+import com.usky.common.security.utils.SecurityUtils;
|
|
|
+import com.usky.iot.domain.DmpDeviceType;
|
|
|
+import com.usky.iot.domain.DmpProductAttribute;
|
|
|
import com.usky.iot.domain.DmpProductInfo;
|
|
|
import com.usky.iot.mapper.DmpProductInfoMapper;
|
|
|
-import com.usky.iot.service.DmpDeviceInfoService;
|
|
|
-import com.usky.iot.service.DmpDeviceStatusService;
|
|
|
-import com.usky.iot.service.DmpDeviceTypeService;
|
|
|
-import com.usky.iot.service.DmpProductInfoService;
|
|
|
+import com.usky.iot.service.*;
|
|
|
import com.usky.iot.service.vo.DmpProductInfoRequest;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
+import java.math.BigDecimal;
|
|
|
+import java.time.LocalDateTime;
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
@@ -42,12 +48,59 @@ public class DmpProductInfoServiceImpl extends AbstractCrudService<DmpProductInf
|
|
|
@Autowired
|
|
|
private DmpDeviceTypeService dmpDeviceTypeService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private DmpProductAttributeService dmpProductAttributeService;
|
|
|
+
|
|
|
@Override
|
|
|
- public boolean add(DmpProductInfo dmpProductInfo) {
|
|
|
+ public void add(DmpProductInfo dmpProductInfo) {
|
|
|
if (checkNameUnique(dmpProductInfo)){
|
|
|
throw new BusinessException("新增产品信息'" + dmpProductInfo.getProductName() + "'失败,产品信息已存在");
|
|
|
}
|
|
|
- return this.save(dmpProductInfo);
|
|
|
+ dmpProductInfo.setCreatedBy(SecurityUtils.getUsername());
|
|
|
+ dmpProductInfo.setCreatedTime(new Date());
|
|
|
+ dmpProductInfo.setDeleteFlag(0);
|
|
|
+ dmpProductInfo.setTenantId(SecurityUtils.getTenantId());
|
|
|
+ this.save(dmpProductInfo);
|
|
|
+ int productId = dmpProductInfo.getId();
|
|
|
+ int deviceType = dmpProductInfo.getDeviceType();
|
|
|
+ LambdaQueryWrapper<DmpDeviceType> queryWrapper = Wrappers.lambdaQuery();
|
|
|
+ queryWrapper.select(DmpDeviceType::getDataField)
|
|
|
+ .eq(DmpDeviceType::getTypeCode,deviceType);
|
|
|
+ DmpDeviceType one = dmpDeviceTypeService.getOne(queryWrapper);
|
|
|
+ if(null != one){
|
|
|
+ String dataField = one.getDataField();
|
|
|
+ JSONArray array = JSONArray.parseArray(dataField);
|
|
|
+ if(array.size()>0){
|
|
|
+ for(int i=0;i<array.size();i++){
|
|
|
+ JSONObject obj = JSONObject.parseObject(array.getString(i));
|
|
|
+ String attribute_name = obj.getString("attribute_name");
|
|
|
+ String attribute_code = obj.getString("attribute_code");
|
|
|
+ int attribute_port = obj.getInteger("attribute_port");
|
|
|
+ int data_type = obj.getInteger("data_type");
|
|
|
+ int attribute_length = obj.getInteger("attribute_length");
|
|
|
+ String attribute_unit = obj.getString("attribute_unit");
|
|
|
+ int maximum = obj.getInteger("maximum");
|
|
|
+ int minimum = obj.getInteger("minimum");
|
|
|
+
|
|
|
+ DmpProductAttribute dmpProductAttribute = new DmpProductAttribute();
|
|
|
+ dmpProductAttribute.setProductId(productId);
|
|
|
+ dmpProductAttribute.setAttributeName(attribute_name);
|
|
|
+ dmpProductAttribute.setAttributeCode(attribute_code);
|
|
|
+ dmpProductAttribute.setAttributePort(attribute_port);
|
|
|
+ dmpProductAttribute.setAttributeType(1);
|
|
|
+ dmpProductAttribute.setDataType(data_type);
|
|
|
+ dmpProductAttribute.setAttributeLength(attribute_length);
|
|
|
+ dmpProductAttribute.setAttributeUnit(attribute_unit);
|
|
|
+ dmpProductAttribute.setMaximum(BigDecimal.valueOf(maximum));
|
|
|
+ dmpProductAttribute.setMinimum(BigDecimal.valueOf(minimum));
|
|
|
+ dmpProductAttribute.setDeleteFlag(0);
|
|
|
+ dmpProductAttribute.setCreatedBy(SecurityUtils.getUsername());
|
|
|
+ dmpProductAttribute.setCreatedTime(new Date());
|
|
|
+ dmpProductAttribute.setTenantId(SecurityUtils.getTenantId());
|
|
|
+ dmpProductAttributeService.save(dmpProductAttribute);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -112,7 +165,10 @@ public class DmpProductInfoServiceImpl extends AbstractCrudService<DmpProductInf
|
|
|
if(imges.size()>0){
|
|
|
for(int j=0;j<imges.size();j++){
|
|
|
if(Integer.parseInt(imges.get(j).get("deviceType").toString())==(records.get(i).getDeviceType())){
|
|
|
- records.get(i).setTypeImg(imges.get(j).get("typeImg").toString());
|
|
|
+ if(StringUtils.isNotBlank(imges.get(j).get("typeImg").toString())){
|
|
|
+ records.get(i).setTypeImg(imges.get(j).get("typeImg").toString());
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
|