当前位置:网站首页>车辆属性最近一次入库时间初始化生成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。

边栏推荐
猜你喜欢

¥ 1-1 SWUST OJ 941: implementation of consolidation operation of ordered sequence table

【机器翻译】SCONES——用多标签任务做机器翻译

NLM5系列无线振弦传感采集仪的工作模式及休眠模式下状态

Solve the Chinese garbled code error of qtcreator compiling with vs

Introduction to low power consumption and UPF

工程监测无线中继采集仪和无线网络的优势

SD/SDIO/EMMC

Arm preliminaries

@5-1 CCF 2019-12-1 reporting

TM1637带秒点四位LED显示器模块ARDUINO驱动程序
随机推荐
ADC简介
MLX90640 红外热成像仪测温模块开发笔记(五)
无线中继采集仪的常见问题
Swift simple implementation of to-do list
About student management system (registration, login, student side)
CCF 201509-2 日期计算
Fundamentals of C language
T5 paper summary
Visualization of sensor data based on raspberry pie 4B
数据分析面试记录1-5
工程监测无线中继采集仪和无线网络的优势
~2 CCF 2022-03-1 uninitialized warning
The economic basis of a hardware siege lion
CCF 201503-3 节日
CDA Level1多选题精选
Mlx90640 infrared thermal imager temperature measurement module development notes (4)
Mixed supervision for surface defect detection: from weakly to fully supervised learning
概率机器人学习笔记第二章
ISP图像信号处理
Creation of adjacency matrix of undirected connected graph output breadth depth traversal
