当前位置:网站首页>车辆属性最近一次入库时间初始化生成sql脚本文件
车辆属性最近一次入库时间初始化生成sql脚本文件
2022-07-25 09:24:00 【孰能生巧-LWP】
package com.dst.modules.business.vehicle.workorderconfig.controller;
import com.dstcar.common.utils.poi.ExcelName;
import com.dstcar.common.utils.poi.ExcelVO;
import lombok.Data;
/**
* 车辆数据值
*
* @author yuez
* @date 2022/3/7 20:51
*/
@Data
public class VinCodeData implements ExcelVO {
@ExcelName(name = "车架号")
private String vinCode;
@ExcelName(name = "属性值")
private String attrValueName;
}
/**
* 车辆数据导入
*
* @param file 文件
* @return Results
*/
@PostMapping("/importData")
public Results importData(@RequestBody MultipartFile file) {
Workbook work = null;
InputStream in = null;
// 导入新增的表头
String[] workOrderBonusDetailInsertArr = {"vinCode", "attrValueName"};
List<VinCodeData> list = null;
try {
in = file.getInputStream();
work = ImportExcelUtil.getWorkbook(in, Objects.requireNonNull(file.getOriginalFilename()));
list = ImportExcelUtil.getBankListByExcel(work,
VinCodeData.class, workOrderBonusDetailInsertArr
, "yyyy-MM-dd", 0);
} catch (Exception e) {
return failure("导入数据错误");
} finally {
ImportExcelUtil.closeInputStream(work, in);
}
if (CollectionUtils.isEmpty(list) && list.size() == 1) {
return failure("数据错误");
}
String sql = "";
for (VinCodeData vinCodeData : list) {
sql ="INSERT INTO o_vehicle_attribute_manage (id,vin_code,attr_category,attr_id,attr_value_id,attr_value_name) " +
"VALUES (" + dstIdUtils.getPrimaryKey()+ ",'"+ vinCodeData.getVinCode() +"',103,562591737520992256,NULL,\n" +
"'"+ DateUtil.convert2String(DateUtil.convert2Date(vinCodeData.getAttrValueName(),"yyyy-MM-dd"),"yyyy-MM-dd")+"');";
System.out.println(sql);
}
return succeed();
}/** * 车辆车架号数据导入,修改最近一次入库时间,拿采购入库时间 * * @param file 文件 * @return Results */ @PostMapping("/importVinCodeData") public Results importVinCodeData(@RequestBody MultipartFile file) throws Exception { try ( InputStream in = file.getInputStream() ) { ExcelUserReadConfig<VinCodeDatas> config = new ExcelUserReadConfig<>(); config.setSheetIndex(1); config.setStartRowIndex(2); config.setTargetClass(VinCodeDatas.class); Map<String, String> fieldMap = new HashMap<>(); // 车架号 fieldMap.put("A", "vinCode"); config.setColumn(fieldMap); List<VinCodeDatas> importList = ExcelTools.readExcel(in, config); if (org.springframework.util.CollectionUtils.isEmpty(importList)) { return failure("导入的数据不能为空!"); } carAttributeDataSyncImpl.updateCarAttribute(importList); return succeed(); } }--- o_vehicle_attribute_manage 表有两个唯一索引,id和vin_code 加attr_id组合唯一索引, --- 如果id存在更新,vin_code加attr_id存在更新, 同时两个唯一索引值不存在则进行新增 INSERT INTO `dst_vehicle`.`o_vehicle_attribute_manage`(`id`, `vin_code`, `attr_category`, `attr_id`, `attr_value_id`, `attr_value_name`) VALUES (620982230797261004, 'LR83STGTXMB107581', 103, 513752533924458496, NULL, '2021-09-29') ON DUPLICATE KEY UPDATE attr_value_name= '2021-09-23'; -- 用excel表格用坐标替换变量 ="INSERT INTO o_vehicle_attribute_manage (id,vin_code,attr_category,attr_id,attr_value_id,attr_value_name) VALUES ( -- (SELECT @maxid:=MAX(tt.`id`)+1 FROM o_vehicle_attribute_manage tt),'"&A2&"',103,513752533924458496,NULL, -- '"&B2&"');"
-- 查询返回值处理精度丢失的问题
select concat("\t",v.id) as id,v.vin_code,v.attr_category,concat("\t",v.attr_id) as attr_id,e.attr_name,concat("\t",v.attr_value_id) as attr_value_id, concat("\t",v.attr_value_name) as attr_value_name from dst_vehicle.o_vehicle_attribute_manage v,dst_goods.g_attribute_manage e where v.attr_id = e.id and v.vin_code in ( 'LR83STG6XHB350453');-- 20808 条没有最近入库时间 SELECT count(o.vin_code) FROM dst_vehicle.o_basic_car o where o.vin_code not in ( select v.vin_code from `dst_vehicle`.`o_vehicle_attribute_manage` v where v.attr_id = 562591737520992256 );-- 处理雪花算法生成的id,跟机器di,work_id和当前的时间,生成的时间戳有关系
use dst_vehicle; INSERT INTO o_vehicle_attribute_manage (id,vin_code,attr_category,attr_id,attr_value_id,attr_value_name) VALUES ( (SELECT @maxid:=MAX(tt.`id`)+1 FROM o_vehicle_attribute_manage tt),'LA9BBJBR4MKLM6043',103,513752533924458496,NULL, '2022-01-04');-- 工单计件test、demo 数据初始化 两张表关联查询,根据工单编码分别修改场站id和工单的开始时间 UPDATE tbl_work_order_bonus s SET s.station_id = ( SELECT b.station_id FROM dst_work_order.tbl_work_order b WHERE s.work_order_code = b.CODE ), s.work_order_start_time = ( SELECT b.create_time FROM dst_work_order.tbl_work_order b WHERE s.work_order_code = b.CODE);use dst_work_order; -- 工单展示表 工单为车载终端检修类型补充设备类型的数据 BEGIN; SELECT @maxid := max(id)+ 1 FROM `dst_work_order`.`tbl_work_order_show` ; INSERT INTO `dst_work_order`.`tbl_work_order_show` ( `id`, `work_order_id`, `name`, `value`, `type`, `sort` ) SELECT @maxid := @maxid + 1, w.id AS work_order_id, '设备类型', 'T-Box', 0, 7 FROM ( SELECT d.id FROM ( SELECT a.id FROM ( SELECT t.id FROM tbl_work_order t, tbl_work_order_show b WHERE t.type = 4 AND t.id = b.work_order_id ) a GROUP BY a.id ) d WHERE d.id NOT IN ( SELECT d.id FROM ( SELECT a.id FROM ( SELECT t.id FROM tbl_work_order t, tbl_work_order_show b WHERE t.type = 4 AND t.id = b.work_order_id AND b.NAME = '设备类型' ) a GROUP BY a.id ) d ) ) w, ( SELECT @maxid := 0 ) ind, ( SELECT @maxid := max(id)+ 1 FROM `dst_work_order`.`tbl_work_order_show` ) tmp; COMMIT; -- 验证数据脚本 select d.id from (SELECT a.id FROM (SELECT t.id FROM tbl_work_order t, tbl_work_order_show b WHERE t.type = 4 AND t.id = b.work_order_id ) a GROUP BY a.id ) d where d.id not in( select d.id from (SELECT a.id FROM (SELECT t.id FROM tbl_work_order t, tbl_work_order_show b WHERE t.type = 4 AND t.id = b.work_order_id and b.name ='设备类型' ) a GROUP BY a.id ) d );
1.先用车架号查找到对应的最近一次入库时间,共2万多条,再用excel表格生成两列。
2.再用导入接口把这两列值得到生成集合对象。
3.再用循环打印拼接sql,5000一次,分为5批生成sql语句,车架号和最近一次入库时间的属性id
去重,生成5个sql文件。
4.然后发送邮件给运维在生产库执行,执行ok。

边栏推荐
- CCF 201503-4 network delay
- 多通道振弦、温度、模拟传感信号采集仪数据查看和参数修改
- [RNN] analyze the RNN from rnn- (simple|lstm) to sequence generation, and then to seq2seq framework (encoder decoder, or seq2seq)
- 一个硬件攻城狮的经济学基础
- Hyperautomation for the enhancement of automation in industries 论文翻译
- VCs common commands
- ARM预备知识
- C语言基础
- dp-851
- AMD EPYC 9664旗舰规格曝光:96核192线程 480MB缓存 3.8GHz频率
猜你喜欢

Principle analysis of self supervised depth estimation of fish eye image and interpretation of omnidet core code

AMD EPYC 9664旗舰规格曝光:96核192线程 480MB缓存 3.8GHz频率

Mixed supervision for surface defect detection: from weakly to fully supervised learning

FPGA basic advanced

Mlx90640 infrared thermal imager temperature measurement module development notes (4)

BSP3 电力监控仪(功率监控仪)端子定义和接线

CCF 201509-4 Expressway

FLASH read / write operation and flash upload file of esp8266

js利用requestAnimationFrame实时检测当前动画的FPS帧率

工程仪器振弦传感器无线采集仪的采集数据发送方式及在线监测系统
随机推荐
入住阿里云MQTT物联网平台
OC -- packaging class and processing object
概率机器人学习笔记第二章
SD/SDIO/EMMC
CCF 201503-3 Festival
VS无线振弦采集仪蓝牙功能的使用
I2C也可总线取电!
概率论与数理统计 4 Continuous Random Variables and Probability Distributions(连续随机变量与概率分布)(上篇)
MLX90640 红外热成像仪测温模块开发笔记(一)
Fundamentals of C language
Mlx90640 infrared thermal imaging sensor temperature measurement module development notes (II)
【RNN】剖析RNN 之 从RNN-(Simple|LSTM) 到 序列生成 再到 seq2seq框架(encoder-decoder,或称为seq2seq)
低功耗和UPF介绍
Segmentation based deep learning approach for surface defect detection
ECO简介
CCF 201503-3 节日
@5-1 CCF 2019-12-1 reporting
Visualization of sensor data based on raspberry pie 4B
Probability theory and mathematical statistics 3 discrete random variables and probability distributions (Part 2)
TM1638 LED数码显示模块ARDUINO驱动代码
