From 7c988513524819dfb2bc01501edeafd164a85d04 Mon Sep 17 00:00:00 2001 From: x_z Date: Tue, 15 Nov 2022 22:29:39 +0800 Subject: [PATCH] =?UTF-8?q?1.=E4=BF=AE=E6=94=B9=E6=8C=89DI=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../glxp/udidl/admin/config/RedisConfig.java | 105 ++++++++++++++---- .../admin/dao/udi/ProductInfoMapper.java | 2 + .../admin/entity/udi/ProductInfoEntity.java | 3 +- .../glxp/udidl/admin/entity/udid/Device.java | 1 - .../dataUpdate/DeviceParseService.java | 39 ++++--- .../dataUpdate/DeviceUpdateService.java | 6 +- .../service/inout/ProductInfoService.java | 3 + .../inout/impl/ProductInfoServiceImpl.java | 12 +- .../com/glxp/udidl/admin/util/RedisUtil.java | 13 ++- src/main/resources/config/redis.setting | 2 +- .../mybatis/mapper/udi/ProductInfoMapper.xml | 63 +++++++++++ .../mybatis/mapper/udid/DeviceMapper.xml | 64 +++++------ 12 files changed, 232 insertions(+), 81 deletions(-) diff --git a/src/main/java/com/glxp/udidl/admin/config/RedisConfig.java b/src/main/java/com/glxp/udidl/admin/config/RedisConfig.java index 87d0b80..648a477 100644 --- a/src/main/java/com/glxp/udidl/admin/config/RedisConfig.java +++ b/src/main/java/com/glxp/udidl/admin/config/RedisConfig.java @@ -3,15 +3,12 @@ package com.glxp.udidl.admin.config; import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.PropertyAccessor; import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.datatype.jdk8.Jdk8Module; -import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; -import com.fasterxml.jackson.module.paramnames.ParameterNamesModule; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory; -import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.data.redis.core.*; import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer; -import org.springframework.data.redis.serializer.RedisSerializer; +import org.springframework.data.redis.serializer.StringRedisSerializer; /** * Redis配置类 @@ -20,24 +17,86 @@ import org.springframework.data.redis.serializer.RedisSerializer; public class RedisConfig { @Bean - public RedisTemplate redisTemplate(LettuceConnectionFactory cf) { - RedisTemplate redisTemplate = new RedisTemplate(); - redisTemplate.setConnectionFactory(cf); - redisTemplate.setValueSerializer(RedisSerializer.json()); - redisTemplate.setHashValueSerializer(RedisSerializer.string()); - redisTemplate.setKeySerializer(RedisSerializer.string()); - redisTemplate.setHashKeySerializer(RedisSerializer.string()); - redisTemplate.afterPropertiesSet(); - Jackson2JsonRedisSerializer serializer = new Jackson2JsonRedisSerializer<>(Object.class); - ObjectMapper objectMapper = new ObjectMapper() - .registerModule(new ParameterNamesModule()) - .registerModule(new Jdk8Module()) - .registerModule(new JavaTimeModule()); - objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); - objectMapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL); - serializer.setObjectMapper(objectMapper); - redisTemplate.setValueSerializer(serializer); - return redisTemplate; + public RedisTemplate redisTemplate(LettuceConnectionFactory factory) { + RedisTemplate template = new RedisTemplate<>(); + // 配置连接工厂 + template.setConnectionFactory(factory); + + //使用Jackson2JsonRedisSerializer来序列化和反序列化redis的value值(默认使用JDK的序列化方式) + Jackson2JsonRedisSerializer jsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class); + + ObjectMapper om = new ObjectMapper(); + // 指定要序列化的域,field,get和set,以及修饰符范围,ANY是都有包括private和public + om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); + // 指定序列化输入的类型,类必须是非final修饰的,final修饰的类,比如String,Integer等会跑出异常 + om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL); + jsonRedisSerializer.setObjectMapper(om); + + // 值采用json序列化 + template.setValueSerializer(jsonRedisSerializer); + //使用StringRedisSerializer来序列化和反序列化redis的key值 + template.setKeySerializer(new StringRedisSerializer()); + + // 设置hash key 和value序列化模式 + template.setHashKeySerializer(new StringRedisSerializer()); + template.setHashValueSerializer(jsonRedisSerializer); + template.afterPropertiesSet(); + return template; + } + + /** + * 对hash类型的数据操作 + * + * @param redisTemplate + * @return + */ + @Bean + public HashOperations hashOperations(RedisTemplate redisTemplate) { + return redisTemplate.opsForHash(); + } + + /** + * 对redis字符串类型数据操作 + * + * @param redisTemplate + * @return + */ + @Bean + public ValueOperations valueOperations(RedisTemplate redisTemplate) { + return redisTemplate.opsForValue(); + } + + /** + * 对链表类型的数据操作 + * + * @param redisTemplate + * @return + */ + @Bean + public ListOperations listOperations(RedisTemplate redisTemplate) { + return redisTemplate.opsForList(); + } + + /** + * 对无序集合类型的数据操作 + * + * @param redisTemplate + * @return + */ + @Bean + public SetOperations setOperations(RedisTemplate redisTemplate) { + return redisTemplate.opsForSet(); + } + + /** + * 对有序集合类型的数据操作 + * + * @param redisTemplate + * @return + */ + @Bean + public ZSetOperations zSetOperations(RedisTemplate redisTemplate) { + return redisTemplate.opsForZSet(); } } diff --git a/src/main/java/com/glxp/udidl/admin/dao/udi/ProductInfoMapper.java b/src/main/java/com/glxp/udidl/admin/dao/udi/ProductInfoMapper.java index dca1b1f..56ae1d5 100644 --- a/src/main/java/com/glxp/udidl/admin/dao/udi/ProductInfoMapper.java +++ b/src/main/java/com/glxp/udidl/admin/dao/udi/ProductInfoMapper.java @@ -56,4 +56,6 @@ public interface ProductInfoMapper extends BaseMapper { List selectByDeviceRecordKey(String key); boolean updateCplx(ProductInfoEntity productInfoEntity); + + boolean updateProductInfoData(ProductInfoEntity productInfoEntity); } diff --git a/src/main/java/com/glxp/udidl/admin/entity/udi/ProductInfoEntity.java b/src/main/java/com/glxp/udidl/admin/entity/udi/ProductInfoEntity.java index 0192054..c8f7e0f 100644 --- a/src/main/java/com/glxp/udidl/admin/entity/udi/ProductInfoEntity.java +++ b/src/main/java/com/glxp/udidl/admin/entity/udi/ProductInfoEntity.java @@ -1,15 +1,16 @@ package com.glxp.udidl.admin.entity.udi; +import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import springfox.documentation.annotations.ApiIgnore; import java.util.Date; @Data @ApiModel(value = "产品信息实体") +@TableName("productinfo") public class ProductInfoEntity { @ApiModelProperty(value = "主键ID") diff --git a/src/main/java/com/glxp/udidl/admin/entity/udid/Device.java b/src/main/java/com/glxp/udidl/admin/entity/udid/Device.java index 61a13f4..53cff97 100644 --- a/src/main/java/com/glxp/udidl/admin/entity/udid/Device.java +++ b/src/main/java/com/glxp/udidl/admin/entity/udid/Device.java @@ -10,7 +10,6 @@ import java.util.Date; @Data public class Device { - @ApiModelProperty(value = "同一产品同一版本号唯一主键") private String uuid; diff --git a/src/main/java/com/glxp/udidl/admin/service/dataUpdate/DeviceParseService.java b/src/main/java/com/glxp/udidl/admin/service/dataUpdate/DeviceParseService.java index 36e5013..d402121 100644 --- a/src/main/java/com/glxp/udidl/admin/service/dataUpdate/DeviceParseService.java +++ b/src/main/java/com/glxp/udidl/admin/service/dataUpdate/DeviceParseService.java @@ -1,6 +1,9 @@ package com.glxp.udidl.admin.service.dataUpdate; import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.glxp.udidl.admin.dao.udi.ProductInfoMapper; +import com.glxp.udidl.admin.dao.udid.DeviceMapper; import com.glxp.udidl.admin.entity.udi.CountProductEntity; import com.glxp.udidl.admin.entity.udi.ProductClassify; import com.glxp.udidl.admin.entity.udi.ProductInfoEntity; @@ -30,11 +33,15 @@ public class DeviceParseService { @Resource private DeviceService deviceService; @Resource - ProductClassifyService productClassifyService; + private ProductClassifyService productClassifyService; @Resource - ProductInfoService productInfoService; + private ProductInfoService productInfoService; @Resource - UdiCompanyService udiCompanyService; + private UdiCompanyService udiCompanyService; + @Resource + private DeviceMapper deviceMapper; + @Resource + private ProductInfoMapper productInfoMapper; /** * 存储设备信息 @@ -50,11 +57,13 @@ public class DeviceParseService { List packingInfoAll = ds.getPackingInfo(); for (DataSetResult.DeviceInfo item : ds.getDeviceInfo()) { - //1:判断数据是否存在 - if (StrUtil.isNotEmpty(deviceService.selectDiIsSame(item.getZxxsdycpbs(), item.getVersionNumber() + ""))) - continue; + //1:不判断数据是否存在,直接以当前拉取到的最新数据进行更新 + String uuid = deviceService.selectDiIsSame(item.getZxxsdycpbs(), item.getVersionNumber() + ""); + //此版本数据存在,使用当前数据库存在的数据的ID进行更新 Device device = responseToDevice(item); - String uuid = getUUId(); + if (StrUtil.isBlank(uuid)) { + uuid = getUUId(); + } Boolean isHistory = false; if (item.getDeviceHistoryKey() != null && !item.getDeviceHistoryKey().isEmpty()) { isHistory = true; @@ -148,7 +157,6 @@ public class DeviceParseService { } deviceService.updateDevicepackage(devicepackageList); } - } //7存储productInfo信息 @@ -280,7 +288,12 @@ public class DeviceParseService { public void transUdi(String key) { DeviceEntity deviceEntity = deviceService.searchById(key); String di = deviceEntity.getZxxsdycpbs(); + //查询产品表的数据ID + ProductInfoEntity oldData = productInfoMapper.selectOne(new QueryWrapper().select("id").eq("uuid", key).eq("nameCode", deviceEntity.getZxxsdycpbs())); ProductInfoEntity productInfoEntity = new ProductInfoEntity(); + if (null != oldData) { + productInfoEntity.setId(oldData.getId()); + } org.springframework.beans.BeanUtils.copyProperties(deviceEntity, productInfoEntity); productInfoEntity.setUuid(key); productInfoEntity.setDeviceRecordKey(deviceEntity.getDevicerecordkey()); @@ -355,7 +368,7 @@ public class DeviceParseService { productInfoEntity.setNameCode(deviceEntity.getSydycpbs()); productInfoEntity.setSjcpbm(deviceEntity.getZxxsdycpbs()); productInfoEntity.setUpdateTime(new Date()); - productInfoService.insertProductInfo(productInfoEntity); + productInfoService.updateProductInfoData(productInfoEntity); productInfoEntity.setBhxjcpbm(deviceEntity.getSydycpbs()); productInfoEntity.setBhxjsl(1); productInfoEntity.setPackLevel(2 + ""); @@ -373,7 +386,7 @@ public class DeviceParseService { productInfoEntity.setSjcpbm(deviceEntity.getZxxsdycpbs()); productInfoEntity.setNameCode(deviceEntity.getBtcpbs()); productInfoEntity.setUpdateTime(new Date()); - productInfoService.insertProductInfo(productInfoEntity); + productInfoService.updateProductInfoData(productInfoEntity); productInfoEntity.setBhxjcpbm(deviceEntity.getBtcpbs()); productInfoEntity.setBhxjsl(1); productInfoEntity.setPackLevel(2 + ""); @@ -391,7 +404,7 @@ public class DeviceParseService { List devicepackages = deviceEntity.getDevicepackages(); productInfoEntity.setSjcpbm(getSjcpbm(devicepackages, productInfoEntity.getNameCode())); productInfoEntity.setUpdateTime(new Date()); - productInfoService.insertProductInfo(productInfoEntity); + productInfoService.updateProductInfoData(productInfoEntity); List countProductEntities = new ArrayList<>(); int curLevel = Integer.parseInt(productInfoEntity.getPackLevel()) + 1; @@ -436,7 +449,7 @@ public class DeviceParseService { productInfoEntity.setSjcpbm(getSjcpbm(devicepackages, productInfoEntity.getNameCode())); productInfoEntity.setDiType(4); productInfoEntity.setUpdateTime(new Date()); - productInfoService.insertProductInfo(productInfoEntity); + productInfoService.updateProductInfoData(productInfoEntity); } } @@ -461,7 +474,7 @@ public class DeviceParseService { for (ProductInfoEntity change : temps) { change.setIsNewest(false); change.setUpdateTime(new Date()); - productInfoService.updateProductInfo(change); + productInfoService.updateProductInfoData(change); } } diff --git a/src/main/java/com/glxp/udidl/admin/service/dataUpdate/DeviceUpdateService.java b/src/main/java/com/glxp/udidl/admin/service/dataUpdate/DeviceUpdateService.java index 4d05951..e0f81da 100644 --- a/src/main/java/com/glxp/udidl/admin/service/dataUpdate/DeviceUpdateService.java +++ b/src/main/java/com/glxp/udidl/admin/service/dataUpdate/DeviceUpdateService.java @@ -13,6 +13,7 @@ import com.glxp.udidl.admin.entity.udid.TokenEntity; import com.glxp.udidl.admin.req.UpdateUdiRequest; import com.glxp.udidl.admin.req.udid.DownloadDiRequest; import com.glxp.udidl.admin.req.udid.TokenRequest; +import com.glxp.udidl.admin.res.udid.DataSetResult; import com.glxp.udidl.admin.res.udid.DataSetSingleResult; import com.glxp.udidl.admin.service.info.CompanyService; import com.glxp.udidl.admin.service.inout.DeviceService; @@ -83,7 +84,8 @@ public class DeviceUpdateService { jobLog.setInsertCount(0); } else { log.info("下载成功,开始更新数据"); - deviceParseService.DeviceSave(Collections.singletonList(dataSetSingleResult.getDataSet()), new Date()); + DataSetResult.DataSet dataSet = dataSetSingleResult.getDataSet(); + deviceParseService.DeviceSave(Collections.singletonList(dataSet), new Date()); jobLog.setInsertCount(1); } } @@ -100,7 +102,7 @@ public class DeviceUpdateService { */ public String getToken() { token = redisUtil.get("UDI_UPDATE_TOKEN"); - if (StrUtil.isEmpty(token)) { + if (StrUtil.isBlank(token)) { //查询下载数据使用的appid CompanyEntity companyEntity = companyService.findByTaskType(Constant.TASK_TYPE_UPDATE); TokenRequest tokenRequest = new TokenRequest(); diff --git a/src/main/java/com/glxp/udidl/admin/service/inout/ProductInfoService.java b/src/main/java/com/glxp/udidl/admin/service/inout/ProductInfoService.java index bb06627..77d1f90 100644 --- a/src/main/java/com/glxp/udidl/admin/service/inout/ProductInfoService.java +++ b/src/main/java/com/glxp/udidl/admin/service/inout/ProductInfoService.java @@ -50,4 +50,7 @@ public interface ProductInfoService { boolean updateProductInfo(ProductInfoEntity productInfoEntity); boolean updateCplx(ProductInfoEntity productInfoEntity); + + boolean updateProductInfoData(ProductInfoEntity productInfoEntity); + } diff --git a/src/main/java/com/glxp/udidl/admin/service/inout/impl/ProductInfoServiceImpl.java b/src/main/java/com/glxp/udidl/admin/service/inout/impl/ProductInfoServiceImpl.java index 95db338..cc45876 100644 --- a/src/main/java/com/glxp/udidl/admin/service/inout/impl/ProductInfoServiceImpl.java +++ b/src/main/java/com/glxp/udidl/admin/service/inout/impl/ProductInfoServiceImpl.java @@ -16,6 +16,7 @@ import java.util.List; import java.util.Map; import java.util.stream.Collectors; +@Transactional(rollbackFor = Exception.class) @Service public class ProductInfoServiceImpl implements ProductInfoService { @@ -183,13 +184,11 @@ public class ProductInfoServiceImpl implements ProductInfoService { return productInfoDao.selectByUpdateTime(startDate, endDate); } - @Transactional(rollbackFor = Exception.class) @Override public boolean insertProductInfo(ProductInfoEntity productInfoEntity) { return productInfoDao.insertProductInfo(productInfoEntity); } - @Transactional(rollbackFor = Exception.class) @Override public boolean updateProductByUuid(ProductInfoEntity productInfoEntity) { return productInfoDao.updateProductByUuid(productInfoEntity); @@ -201,19 +200,22 @@ public class ProductInfoServiceImpl implements ProductInfoService { return productInfoDao.updateProductInfo(productInfoEntity); } - @Transactional(rollbackFor = Exception.class) + @Override public boolean updateCplx(ProductInfoEntity productInfoEntity) { return productInfoDao.updateCplx(productInfoEntity); } - @Transactional(rollbackFor = Exception.class) + @Override + public boolean updateProductInfoData(ProductInfoEntity productInfoEntity) { + return productInfoDao.updateProductInfoData(productInfoEntity); + } + @Override public boolean deleteById(String id) { return productInfoDao.deleteById(id); } - @Transactional(rollbackFor = Exception.class) @Override public boolean deleteAll(List ids) { return productInfoDao.deleteAll(ids); diff --git a/src/main/java/com/glxp/udidl/admin/util/RedisUtil.java b/src/main/java/com/glxp/udidl/admin/util/RedisUtil.java index 1aa2d71..3e5f8ac 100644 --- a/src/main/java/com/glxp/udidl/admin/util/RedisUtil.java +++ b/src/main/java/com/glxp/udidl/admin/util/RedisUtil.java @@ -3,10 +3,12 @@ package com.glxp.udidl.admin.util; import cn.hutool.core.collection.CollUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.data.redis.serializer.StringRedisSerializer; import org.springframework.stereotype.Component; import javax.annotation.Resource; import java.util.Set; +import java.util.concurrent.TimeUnit; /** * redis工具类 @@ -25,7 +27,8 @@ public class RedisUtil { * @return */ public String get(String key) { - return String.valueOf(redisTemplate.opsForValue().get(key)); + redisTemplate.setValueSerializer(new StringRedisSerializer()); + return key == null ? null : (String) redisTemplate.opsForValue().get(key); } /** @@ -49,7 +52,11 @@ public class RedisUtil { public boolean setEx(String key, String value, long expireTime) { boolean result = false; try { - redisTemplate.opsForValue().set(key, value, expireTime); + if (expireTime > 0) { + redisTemplate.opsForValue().set(key, value, expireTime, TimeUnit.SECONDS); + } else { + set(key, value); + } result = true; } catch (Exception e) { log.error("RedisUtil setEx 发生异常,参数列表:key {} value {}", key, value, e); @@ -84,7 +91,7 @@ public class RedisUtil { * @param value * @return */ - public boolean set(String key, T value) { + public boolean set(String key, Object value) { boolean result = false; try { redisTemplate.opsForValue().set(key, value); diff --git a/src/main/resources/config/redis.setting b/src/main/resources/config/redis.setting index 2593a47..1d122ec 100644 --- a/src/main/resources/config/redis.setting +++ b/src/main/resources/config/redis.setting @@ -28,7 +28,7 @@ ssl = false; #----- 自定义分组的连接 [custom] # 地址,默认localhost -host = 127.0.0.1 +host = 192.168.235.137 # 连接耗尽时是否阻塞, false报异常,ture阻塞直到超时, 默认true BlockWhenExhausted = true; # 设置的逐出策略类名, 默认DefaultEvictionPolicy(当连接超过最大空闲时间,或连接数超过最大空闲连接数) diff --git a/src/main/resources/mybatis/mapper/udi/ProductInfoMapper.xml b/src/main/resources/mybatis/mapper/udi/ProductInfoMapper.xml index 9852130..54e4776 100644 --- a/src/main/resources/mybatis/mapper/udi/ProductInfoMapper.xml +++ b/src/main/resources/mybatis/mapper/udi/ProductInfoMapper.xml @@ -683,4 +683,67 @@ WHERE deviceRecordKey = #{deviceRecordKey} + + + REPLACE + INTO productinfo + (id, nameCode, packRatio, packLevel, bhxjsl, + bhzxxsbzsl, zxxsbzbhsydysl, bhxjcpbm, bzcj, thirdProductNo, addType, deviceRecordKey, isUseDy, + thirdProductName, + cpmctymc, cplb, flbm, ggxh, qxlb, tyshxydm, ylqxzcrbarmc, zczbhhzbapzbh, ylqxzcrbarywmc, uuid, sjcpbm, + versionNumber + , diType, scbssfbhph, scbssfbhxlh, scbssfbhscrq, scbssfbhsxrq, + ybbm, spmc, cphhhbh, cpms, cpbsbmtxmc, isNewest, updateTime, hchzsb, cplx, sfwblztlcp, cgzmraqxgxx, sfbjwycxsy, + zdcfsycs, + sfwwjbz, syqsfxyjxmj, mjfs, qtxxdwzlj, categoryName) + values (#{id}, + #{nameCode}, + #{packRatio}, + #{packLevel}, + #{bhxjsl}, + #{bhzxxsbzsl}, + #{zxxsbzbhsydysl}, + #{bhxjcpbm}, + #{bzcj}, + #{thirdProductNo}, + #{addType}, + #{deviceRecordKey}, + #{isUseDy}, + #{thirdProductName}, + #{cpmctymc}, + #{cplb}, + #{flbm}, + #{ggxh}, + #{qxlb}, + #{tyshxydm}, + #{ylqxzcrbarmc}, + #{zczbhhzbapzbh}, + #{ylqxzcrbarywmc}, + #{uuid}, + #{sjcpbm}, + #{versionNumber}, + #{diType}, + #{scbssfbhph}, + #{scbssfbhxlh}, + #{scbssfbhscrq}, + #{scbssfbhsxrq}, + #{ybbm}, + #{spmc}, + #{cphhhbh}, + #{cpms}, + #{cpbsbmtxmc}, + #{isNewest}, + #{updateTime}, + #{hchzsb}, + #{cplx}, + #{sfwblztlcp}, + #{cgzmraqxgxx}, + #{sfbjwycxsy}, + #{zdcfsycs}, + #{sfwwjbz}, + #{syqsfxyjxmj}, + #{mjfs}, + #{qtxxdwzlj}, + #{categoryName}) + diff --git a/src/main/resources/mybatis/mapper/udid/DeviceMapper.xml b/src/main/resources/mybatis/mapper/udid/DeviceMapper.xml index f16d947..2d80221 100644 --- a/src/main/resources/mybatis/mapper/udid/DeviceMapper.xml +++ b/src/main/resources/mybatis/mapper/udid/DeviceMapper.xml @@ -1033,39 +1033,39 @@ replace into device (uuid, deviceRecordKey, btcpbs, - btcpbsyzxxsdycpbssfyz, cgzmraqxgxx, cpbsbmtxmc, - cpbsfbrq, cphhhbh, cplb, - cpmctymc, cpms, flbm, - ggxh, mjfs, qtxxdwzlj, - qxlb, scbssfbhph, scbssfbhscrq, - scbssfbhsxrq, scbssfbhxlh, sfbjwycxsy, - sfwblztlcp, sfwwjbz, sfybtzjbs, - spmc, sydycpbs, syqsfxyjxmj, - tscchcztj, tsccsm, tsrq, - tyshxydm, versionNumber, versionStatus, - versionTime, ybbm, yflbm, - ylqxzcrbarmc, ylqxzcrbarywmc, zczbhhzbapzbh, - zdcfsycs, zxxsdycpbs, bszt, - sfyzcbayz, zcbacpbs, zxxsdyzsydydsl, - deviceHistoryRecordKey, bssjzt, lastModifyTime, requestDate, hchzsb, cplx) + btcpbsyzxxsdycpbssfyz, cgzmraqxgxx, cpbsbmtxmc, + cpbsfbrq, cphhhbh, cplb, + cpmctymc, cpms, flbm, + ggxh, mjfs, qtxxdwzlj, + qxlb, scbssfbhph, scbssfbhscrq, + scbssfbhsxrq, scbssfbhxlh, sfbjwycxsy, + sfwblztlcp, sfwwjbz, sfybtzjbs, + spmc, sydycpbs, syqsfxyjxmj, + tscchcztj, tsccsm, tsrq, + tyshxydm, versionNumber, versionStatus, + versionTime, ybbm, yflbm, + ylqxzcrbarmc, ylqxzcrbarywmc, zczbhhzbapzbh, + zdcfsycs, zxxsdycpbs, bszt, + sfyzcbayz, zcbacpbs, zxxsdyzsydydsl, + deviceHistoryRecordKey, bssjzt, lastModifyTime, requestDate, hchzsb, cplx) values (#{uuid,jdbcType=VARCHAR}, #{devicerecordkey,jdbcType=VARCHAR}, #{btcpbs,jdbcType=VARCHAR}, - #{btcpbsyzxxsdycpbssfyz,jdbcType=VARCHAR}, #{cgzmraqxgxx,jdbcType=VARCHAR}, - #{cpbsbmtxmc,jdbcType=VARCHAR}, - #{cpbsfbrq,jdbcType=VARCHAR}, #{cphhhbh,jdbcType=VARCHAR}, #{cplb,jdbcType=VARCHAR}, - #{cpmctymc,jdbcType=VARCHAR}, #{cpms,jdbcType=VARCHAR}, #{flbm,jdbcType=VARCHAR}, - #{ggxh,jdbcType=VARCHAR}, #{mjfs,jdbcType=VARCHAR}, #{qtxxdwzlj,jdbcType=VARCHAR}, - #{qxlb,jdbcType=VARCHAR}, #{scbssfbhph,jdbcType=VARCHAR}, #{scbssfbhscrq,jdbcType=VARCHAR}, - #{scbssfbhsxrq,jdbcType=VARCHAR}, #{scbssfbhxlh,jdbcType=VARCHAR}, #{sfbjwycxsy,jdbcType=VARCHAR}, - #{sfwblztlcp,jdbcType=VARCHAR}, #{sfwwjbz,jdbcType=VARCHAR}, #{sfybtzjbs,jdbcType=VARCHAR}, - #{spmc,jdbcType=VARCHAR}, #{sydycpbs,jdbcType=VARCHAR}, #{syqsfxyjxmj,jdbcType=VARCHAR}, - #{tscchcztj,jdbcType=VARCHAR}, #{tsccsm,jdbcType=VARCHAR}, #{tsrq,jdbcType=VARCHAR}, - #{tyshxydm,jdbcType=VARCHAR}, #{versionnumber,jdbcType=VARCHAR}, #{versionstatus,jdbcType=VARCHAR}, - #{versiontime,jdbcType=VARCHAR}, #{ybbm,jdbcType=VARCHAR}, #{yflbm,jdbcType=VARCHAR}, - #{ylqxzcrbarmc,jdbcType=VARCHAR}, #{ylqxzcrbarywmc,jdbcType=VARCHAR}, #{zczbhhzbapzbh,jdbcType=VARCHAR}, - #{zdcfsycs,jdbcType=VARCHAR}, #{zxxsdycpbs,jdbcType=VARCHAR}, #{bszt,jdbcType=VARCHAR}, - #{sfyzcbayz,jdbcType=VARCHAR}, #{zcbacpbs,jdbcType=VARCHAR}, #{zxxsdyzsydydsl,jdbcType=VARCHAR}, - #{devicehistoryrecordkey,jdbcType=VARCHAR}, #{bssjzt,jdbcType=VARCHAR}, - #{lastModifyTime,jdbcType=VARCHAR}, #{requestDate}, #{hchzsb}, #{cplx}) + #{btcpbsyzxxsdycpbssfyz,jdbcType=VARCHAR}, #{cgzmraqxgxx,jdbcType=VARCHAR}, + #{cpbsbmtxmc,jdbcType=VARCHAR}, + #{cpbsfbrq,jdbcType=VARCHAR}, #{cphhhbh,jdbcType=VARCHAR}, #{cplb,jdbcType=VARCHAR}, + #{cpmctymc,jdbcType=VARCHAR}, #{cpms,jdbcType=VARCHAR}, #{flbm,jdbcType=VARCHAR}, + #{ggxh,jdbcType=VARCHAR}, #{mjfs,jdbcType=VARCHAR}, #{qtxxdwzlj,jdbcType=VARCHAR}, + #{qxlb,jdbcType=VARCHAR}, #{scbssfbhph,jdbcType=VARCHAR}, #{scbssfbhscrq,jdbcType=VARCHAR}, + #{scbssfbhsxrq,jdbcType=VARCHAR}, #{scbssfbhxlh,jdbcType=VARCHAR}, #{sfbjwycxsy,jdbcType=VARCHAR}, + #{sfwblztlcp,jdbcType=VARCHAR}, #{sfwwjbz,jdbcType=VARCHAR}, #{sfybtzjbs,jdbcType=VARCHAR}, + #{spmc,jdbcType=VARCHAR}, #{sydycpbs,jdbcType=VARCHAR}, #{syqsfxyjxmj,jdbcType=VARCHAR}, + #{tscchcztj,jdbcType=VARCHAR}, #{tsccsm,jdbcType=VARCHAR}, #{tsrq,jdbcType=VARCHAR}, + #{tyshxydm,jdbcType=VARCHAR}, #{versionnumber,jdbcType=VARCHAR}, #{versionstatus,jdbcType=VARCHAR}, + #{versiontime,jdbcType=VARCHAR}, #{ybbm,jdbcType=VARCHAR}, #{yflbm,jdbcType=VARCHAR}, + #{ylqxzcrbarmc,jdbcType=VARCHAR}, #{ylqxzcrbarywmc,jdbcType=VARCHAR}, #{zczbhhzbapzbh,jdbcType=VARCHAR}, + #{zdcfsycs,jdbcType=VARCHAR}, #{zxxsdycpbs,jdbcType=VARCHAR}, #{bszt,jdbcType=VARCHAR}, + #{sfyzcbayz,jdbcType=VARCHAR}, #{zcbacpbs,jdbcType=VARCHAR}, #{zxxsdyzsydydsl,jdbcType=VARCHAR}, + #{devicehistoryrecordkey,jdbcType=VARCHAR}, #{bssjzt,jdbcType=VARCHAR}, + #{lastModifyTime,jdbcType=VARCHAR}, #{requestDate}, #{hchzsb}, #{cplx}) \ No newline at end of file