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 = (SELECTb.create_timeFROMdst_work_order.tbl_work_order bWHEREs.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(SELECTd.idFROM(SELECTa.idFROM(SELECTt.idFROMtbl_work_order t,tbl_work_order_show bWHEREt.type = 4AND t.id = b.work_order_id) aGROUP BYa.id) dWHEREd.id NOT IN (SELECTd.idFROM(SELECTa.idFROM(SELECTt.idFROMtbl_work_order t,tbl_work_order_show bWHEREt.type = 4AND t.id = b.work_order_idAND b.NAME = '设备类型') aGROUP BYa.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    (SELECTa.idFROM(SELECTt.idFROMtbl_work_order t,tbl_work_order_show bWHEREt.type = 4AND t.id = b.work_order_id )  aGROUP BYa.id ) d where  d.id not in(select d.id from    (SELECTa.idFROM(SELECTt.idFROMtbl_work_order t,tbl_work_order_show bWHEREt.type = 4AND t.id = b.work_order_id and  b.name ='设备类型' )  aGROUP BYa.id ) d );

1.先用车架号查找到对应的最近一次入库时间,共2万多条,再用excel表格生成两列。

2.再用导入接口把这两列值得到生成集合对象。

3.再用循环打印拼接sql,5000一次,分为5批生成sql语句,车架号和最近一次入库时间的属性id

去重,生成5个sql文件。

4.然后发送邮件给运维在生产库执行,执行ok。

车辆属性最近一次入库时间初始化生成sql脚本文件相关推荐

  1. linux生成文件自带时间,linux生成固定日期文件及删除一定日期前的文件

    一.按照一定日期格式命名文件 1.按照一定的格式输出日期: date +"%y%m%d" 格式说明: % : 印出 % %n : 下一行 %t : 跳格 %H : 小时(00-23 ...

  2. 项目启动初始化SQL脚本

    比如我要初始化一个系统管理员 1.需要先检查这个用户是否存在,若存在则不执行插入用户的sql脚本 需要将检查的sql语句放在配置文件中 sql:init:checksql:"1-sys_us ...

  3. 智慧城市交通系列之行人、车辆属性识别方案设计

    序言 不知道大家是否还记得前几年网上流传着一个视频非常的火爆(如下),网友称之为"中国天网",在它的面前,行人的特征直接暴露无遗,当时看到觉得非常的吃惊,惊讶于当前的监控技术达到了 ...

  4. PP-Vehicle车辆属性的识别服务

    PP-Vehicle车辆属性的识别服务 一.功能说明 实现web服务,在页面上导入图片,输出车位置.颜色和车型 绘制在图片上,并显示 支持API接口 当前提供的预训练模型支持识别10种车辆颜色及9种车 ...

  5. 北京积分落户纳税入库时间余额已不足

    版权归作者所有,任何形式转载请联系作者. 作者:Bonjour(来自豆瓣) 来源:https://www.douban.com/note/820265892/ 北京积分落户政策中规定:个人所得税纳税额 ...

  6. 根据入库时间和出库时间计算库存

    工坊的小伙伴们大家好,我们经常遇到一种分析场景:根据每一条产品的入库时间和出库时间计算某个时点的库存数量.今天我们将专门解决这个问题. 01 数据准备 库存示意数据如下,包含每条产品的产品名称.入库日 ...

  7. “不能初始化PHOTOSHOP,因为该文件已锁定.在WINDOWS资源管理器中使用属性命令来解锁文件”的解决办法

    最近photoshopCS3启动的时候弹出"不能初始化PHOTOSHOP,因为该文件已锁定.在WINDOWS资源管理器中使用属性命令来解锁文件"而被逼关闭,重装无效,很不爽啊. 然 ...

  8. 王者荣耀游戏时间计算机制,王者荣耀兵线的移动速度和各项属性是否会随着游戏时间加长而增长...

    王者荣耀兵线的移动速度和各项属性是否会随着游戏时间加长而增长,这是在夫子的进阶试炼中有这样一道题目,曾难倒了不少玩家.下面给大家带来的就是王者荣耀兵线机制详细解析,一起来看看游戏中兵线的具体机制吧! ...

  9. 基于mmcls的车辆属性识别

    一.概述 本研究主要针对车辆属性识别课题.研究能够识别车辆多种外观属性的智能算法,这些属性包含颜色. 类型.副驾驶是否有人.是否系安全带.遮阳板是否放下.车辆朝向.是否有车顶架等. 二.研究过程 2. ...

  10. 百度AI攻略:车辆属性识别

    1.功能描述: 检测图像中的各类车辆,并针对小汽车识别11种外观属性,包括:是否有车窗雨眉.是否有车顶架.副驾驶是否有人等,可用于交通安防场景的特定车辆检测追踪. 2.平台接入 车辆属性识别接入网址: ...

最新文章

  1. PostgreSQL 9.3 beta2 stream replication primary standby switchover bug?
  2. [剑指Offer] 59.按之字形顺序打印二叉树
  3. 漫谈WinCE输入法的编写(四)
  4. in use 大学英语4word_2015年7月中国医科大学《大学英语4》在线作业答案
  5. FileProvider 在 Android N 上的应用
  6. linux命令行输入下一行但不运行命令
  7. 修正mysqlcc在MySQL 5.0上常报的 Table 'xxx' doesn't exist 错误
  8. Cordova插件中JavaScript代码与Java的交互细节介绍
  9. 两个map中的数据,按照相同键,将所对应的值相加方法
  10. 谷歌大脑提出DropBlock卷积正则化方法,显著改进CNN精度
  11. netty keepalive 和 idle 的关系
  12. 索尼XA3曝光:同样是21:9屏幕 带鱼手机屏或成新潮流
  13. 栈 -- 4.1.1 Valid Parentheses I-II -- 图解
  14. Strom 可定制任务调度策略(Pluggable Scheduler)
  15. UML概要基础知识(待完善)
  16. 关于安卓(apk)unity3d游戏汉化简单做一些全面分析
  17. 水洗唛标签打印机怎么选择
  18. JanusGraph的使用
  19. fgo服务器维护2018,fgo迦勒底男性精选2018推荐召唤开启 fgo4月20日维护公告_游侠手游...
  20. 赚了20亿美元GandCrab勒索病毒家族的故事

热门文章

  1. 华尔街持续唱多美股市场,微美全息发布VR设备领涨科技股
  2. 【Magick++透明图层合并】
  3. Java后端根据身份证号计算年龄
  4. 拼多多商家如何采集整店商品上传?
  5. Spell of the rising moon
  6. 留学生的英文期刊论文怎么写?
  7. 溯源项目(全套源码)
  8. 声网合伙人王骅:聊聊企业拥抱全球化 关键是什么?
  9. 固态硬盘是什么接口_固态硬盘的各种接口
  10. 画圆的函数----(基于MATLAB)