gtaoiddao.cpp 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685
  1. //
  2. // Created by lloyd on 2020/12/8.
  3. //
  4. #include <fstream>
  5. #include <cstring>
  6. #include "gtaoiddao.h"
  7. #include "aoid_config_data.h"
  8. #include "../gtrunconf.h"
  9. #include "aoid_singlewell_config.h"
  10. #include "aoid_gk_model.h"
  11. #include "yaml-cpp/yaml.h"
  12. #include "iostream"
  13. #include "pthread.h"
  14. #include "../md5lib/MD5.h"
  15. #include "unistd.h"
  16. /*
  17. *
  18. * create:wsy
  19. * date:2020.12.10
  20. * */
  21. void *gtaoiddao::input_welldata_yml_path_update(void *args) {
  22. MD5 md5;
  23. aoid_config_data data;
  24. while (1) {
  25. //md5.reset();
  26. std::string filename = input_welldata_yml_path;
  27. auto m = std::ifstream(filename.c_str());
  28. md5.update3(m);
  29. std::string md5_temp_str = md5.toString();
  30. //if (std::strcmp(input_welldata_yml_path_md5_str.c_str(),md5_temp_str.c_str())>=0)continue;
  31. if (input_welldata_yml_path_md5_str == md5_temp_str) {}
  32. else {
  33. input_welldata_yml_path_md5_str = md5.toString();
  34. std::cout << "insert yaml content !" << std::endl;
  35. YAML::Node config = YAML::LoadFile(input_welldata_yml_path);
  36. data.jh = config["井号"].as<std::string>();
  37. data.bj = config["泵径"].as<float>();
  38. data.bs = config["泵深"].as<float>();
  39. data.hsl = config["含水率"].as<float>();
  40. data.smd = config["水密度"].as<float>();
  41. data.qyb = config["气液比"].as<float>();
  42. data.dym = config["动液面"].as<float>();
  43. data.yy = config["油压"].as<float>();
  44. data.ty = config["套压"].as<float>();
  45. data.hy = config["回压"].as<float>();
  46. add_aoid_config_data_toDB(data);
  47. }
  48. sleep(3);
  49. }
  50. }
  51. std::string gtaoiddao::input_welldata_yml_path_md5_str = "";
  52. pthread_t gtaoiddao::hotupdateymlfilecontentthread_pid = 0;
  53. /*
  54. * add
  55. * aoid_singlegt_yield
  56. */
  57. bool gtaoiddao::add_aoid_singlegt_yield(aoid_singlegt_yield d) {
  58. bool r = false;
  59. std::vector<std::string> insertsql_fields_name;
  60. std::vector<std::string> insertsql_fields_value;
  61. /*if (!d.well_id.empty()) {
  62. insertsql_fields_name.push_back("well_id");
  63. insertsql_fields_value.push_back("'" + d.well_id + "'");
  64. } else {
  65. std::cout << "Warning:必须指定well_id【唯一标识】" << std::endl;
  66. return r;
  67. }*/
  68. if (!d.sgt.empty() && d.sgt.size() > 0) {
  69. std::string sgt_str = d.gt_trans_arraytostr(d.sgt);
  70. if (!sgt_str.empty()) {
  71. insertsql_fields_value.push_back("'" + sgt_str + "'");
  72. insertsql_fields_name.push_back("sgt");
  73. }
  74. }
  75. // bgt : beng gt
  76. if (!d.bgt.empty() && d.bgt.size() > 0) {
  77. std::string bgt_str = d.gt_trans_arraytostr(d.bgt);
  78. if (!bgt_str.empty()) {
  79. insertsql_fields_value.push_back("'" + bgt_str + "'");
  80. insertsql_fields_name.push_back("bgt");
  81. }
  82. }
  83. // refrencesgt : compare sgt
  84. if (!d.refrencesgt.empty() && d.refrencesgt.size() > 0) {
  85. std::string refrencesgt_str = d.gt_trans_arraytostr(d.refrencesgt);
  86. if (!refrencesgt_str.empty()) {
  87. insertsql_fields_value.push_back("'" + refrencesgt_str + "'");
  88. insertsql_fields_name.push_back("refrencesgt");
  89. }
  90. }
  91. {
  92. insertsql_fields_name.push_back("stroke");
  93. insertsql_fields_value.push_back(std::to_string(d.stroke));
  94. insertsql_fields_name.push_back("frequence");
  95. insertsql_fields_value.push_back(std::to_string(d.frequence));
  96. insertsql_fields_name.push_back("bj");
  97. insertsql_fields_value.push_back(std::to_string(d.bj));
  98. insertsql_fields_name.push_back("bs");
  99. insertsql_fields_value.push_back(std::to_string(d.bs));
  100. insertsql_fields_name.push_back("cmd");
  101. insertsql_fields_value.push_back(std::to_string(d.cmd));
  102. insertsql_fields_name.push_back("yzzj");
  103. insertsql_fields_value.push_back(std::to_string(d.yzzj));
  104. insertsql_fields_name.push_back("sxzh");
  105. insertsql_fields_value.push_back(std::to_string(d.sxzh));
  106. insertsql_fields_name.push_back("xxzh");
  107. insertsql_fields_value.push_back(std::to_string(d.xxzh));
  108. insertsql_fields_name.push_back("zdjg");
  109. insertsql_fields_value.push_back("'" + d.zdjg + "'");
  110. insertsql_fields_name.push_back("refrencewell_id");
  111. insertsql_fields_value.push_back("'" + d.refrencewell_id + "'");
  112. insertsql_fields_name.push_back("refrencecjsj");
  113. insertsql_fields_value.push_back(d.refrencecjsj == "" ? "NULL" : "'" + d.refrencecjsj + "'");
  114. insertsql_fields_name.push_back("liq_prod_daily");
  115. insertsql_fields_value.push_back(std::to_string(d.liq_prod_daily));
  116. insertsql_fields_name.push_back("oil_prod_daily");
  117. insertsql_fields_value.push_back(std::to_string(d.oil_prod_daily));
  118. insertsql_fields_name.push_back("gas_prod_daily");
  119. insertsql_fields_value.push_back(std::to_string(d.gas_prod_daily));
  120. insertsql_fields_name.push_back("eczdjg");
  121. insertsql_fields_value.push_back("'" + d.eczdjg + "'");
  122. insertsql_fields_name.push_back("bx");
  123. insertsql_fields_value.push_back(std::to_string(d.bx));
  124. insertsql_fields_name.push_back("hsl");
  125. insertsql_fields_value.push_back(std::to_string(d.hsl));
  126. insertsql_fields_name.push_back("flag");
  127. insertsql_fields_value.push_back(std::to_string(d.flag));
  128. insertsql_fields_name.push_back("bdxs");
  129. insertsql_fields_value.push_back(std::to_string(d.bdxs));
  130. insertsql_fields_name.push_back("llpl");
  131. insertsql_fields_value.push_back(std::to_string(d.llpl));
  132. insertsql_fields_name.push_back("zcc");
  133. insertsql_fields_value.push_back(std::to_string(d.zcc));
  134. insertsql_fields_name.push_back("ycc");
  135. insertsql_fields_value.push_back(std::to_string(d.ycc));
  136. insertsql_fields_name.push_back("sjcc");
  137. insertsql_fields_value.push_back(std::to_string(d.sjcc));
  138. insertsql_fields_name.push_back("yxcc");
  139. insertsql_fields_value.push_back(std::to_string(d.yxcc));
  140. insertsql_fields_name.push_back("ccss");
  141. insertsql_fields_value.push_back(std::to_string(d.ccss));
  142. insertsql_fields_name.push_back("lsss");
  143. insertsql_fields_value.push_back(std::to_string(d.lsss));
  144. insertsql_fields_name.push_back("gyss");
  145. insertsql_fields_value.push_back(std::to_string(d.gyss));
  146. insertsql_fields_name.push_back("pumpdepth");
  147. insertsql_fields_value.push_back(std::to_string(d.pumpdepth));
  148. insertsql_fields_name.push_back("hy");
  149. insertsql_fields_value.push_back(std::to_string(d.hy));
  150. insertsql_fields_name.push_back("yy");
  151. insertsql_fields_value.push_back(std::to_string(d.yy));
  152. insertsql_fields_name.push_back("ty");
  153. insertsql_fields_value.push_back(std::to_string(d.ty));
  154. insertsql_fields_name.push_back("water_prod_daily");
  155. insertsql_fields_value.push_back(std::to_string(d.water_prod_daily));
  156. insertsql_fields_name.push_back("scsj");
  157. insertsql_fields_value.push_back(std::to_string(d.scsj));
  158. insertsql_fields_name.push_back("qyb");
  159. insertsql_fields_value.push_back(std::to_string(d.qyb));
  160. insertsql_fields_name.push_back("stroke_ratio");
  161. insertsql_fields_value.push_back(std::to_string(d.stroke_ratio));
  162. insertsql_fields_name.push_back("djdy");
  163. insertsql_fields_value.push_back(std::to_string(d.djdy));
  164. insertsql_fields_name.push_back("hjwd");
  165. insertsql_fields_value.push_back(std::to_string(d.hjwd));
  166. insertsql_fields_name.push_back("ybdl");
  167. insertsql_fields_value.push_back(std::to_string(d.ybdl));
  168. insertsql_fields_name.push_back("xhqd");
  169. insertsql_fields_value.push_back(std::to_string(d.xhqd));
  170. insertsql_fields_name.push_back("sbh");
  171. insertsql_fields_value.push_back("'" + d.sbh + "'");
  172. insertsql_fields_name.push_back("prod_date");
  173. insertsql_fields_value.push_back("'"+d.prod_date+"'");
  174. }
  175. if (insertsql_fields_name.size() == 0)return r;
  176. std::string addsql =
  177. "insert into gtly.aoid_singlegt_yield(";
  178. std::string valuessql = "values(";
  179. for (int i = 0; i < insertsql_fields_name.size(); ++i) {
  180. if (i > 0) {
  181. addsql += ",";
  182. valuessql += ",";
  183. }
  184. addsql += insertsql_fields_name[i];
  185. valuessql += insertsql_fields_value[i];
  186. }
  187. addsql = addsql + ")" + valuessql + ")";
  188. gtpgcnn _gtpgcnn;
  189. _gtpgcnn.openCnn();
  190. r = _gtpgcnn.writeContent(addsql);
  191. _gtpgcnn.clearRes();
  192. _gtpgcnn.closeCnn();
  193. return r;
  194. }
  195. /*
  196. * add
  197. * add_aoid_daily_yield
  198. */
  199. bool gtaoiddao::add_aoid_daily_yield(aoid_daily_yield d) {
  200. bool r = false;
  201. std::vector<std::string> insertsql_fields_name;
  202. std::vector<std::string> insertsql_fields_value;
  203. if (!d.well_id.empty()) {
  204. insertsql_fields_name.push_back("well_id");
  205. insertsql_fields_value.push_back("'" + d.well_id + "'");
  206. } else {
  207. std::cout << "Warning:必须指定well_id【唯一标识】" << std::endl;
  208. return r;
  209. }
  210. {
  211. insertsql_fields_name.push_back("liq_prod_daily");
  212. insertsql_fields_value.push_back(std::to_string(d.liq_prod_daily));
  213. insertsql_fields_name.push_back("oil_prod_daily");
  214. insertsql_fields_value.push_back(std::to_string(d.oil_prod_daily));
  215. insertsql_fields_name.push_back("water_prod_daily");
  216. insertsql_fields_value.push_back(std::to_string(d.water_prod_daily));
  217. insertsql_fields_name.push_back("gas_prod_daily");
  218. insertsql_fields_value.push_back(std::to_string(d.gas_prod_daily));
  219. insertsql_fields_name.push_back("bx");
  220. insertsql_fields_value.push_back(std::to_string(d.bx));
  221. insertsql_fields_name.push_back("llpl");
  222. insertsql_fields_value.push_back(std::to_string(d.llpl));
  223. insertsql_fields_name.push_back("prod_time");
  224. insertsql_fields_value.push_back(std::to_string(d.prod_time));
  225. insertsql_fields_name.push_back("clxs");
  226. insertsql_fields_value.push_back(std::to_string(d.clxs));
  227. insertsql_fields_name.push_back("stroke");
  228. insertsql_fields_value.push_back(std::to_string(d.stroke));
  229. insertsql_fields_name.push_back("frequence");
  230. insertsql_fields_value.push_back(std::to_string(d.frequence));
  231. insertsql_fields_name.push_back("water_cut");
  232. insertsql_fields_value.push_back(std::to_string(d.water_cut));
  233. insertsql_fields_name.push_back("bj");
  234. insertsql_fields_value.push_back(std::to_string(d.bj));
  235. insertsql_fields_name.push_back("bs");
  236. insertsql_fields_value.push_back(std::to_string(d.bs));
  237. insertsql_fields_name.push_back("cmd");
  238. insertsql_fields_value.push_back(std::to_string(d.cmd));
  239. insertsql_fields_name.push_back("yz");
  240. insertsql_fields_value.push_back(std::to_string(d.yz));
  241. insertsql_fields_name.push_back("scsj");
  242. insertsql_fields_value.push_back(std::to_string(d.scsj));
  243. insertsql_fields_name.push_back("yy");
  244. insertsql_fields_value.push_back(std::to_string(d.yy));
  245. insertsql_fields_name.push_back("hy");
  246. insertsql_fields_value.push_back(std::to_string(d.hy));
  247. insertsql_fields_name.push_back("ty");
  248. insertsql_fields_value.push_back(std::to_string(d.ty));
  249. insertsql_fields_name.push_back("bz");
  250. insertsql_fields_value.push_back("'" + d.bz + "'");
  251. insertsql_fields_name.push_back("sfyc");
  252. insertsql_fields_value.push_back(std::to_string(d.sfyc));
  253. insertsql_fields_name.push_back("dym");
  254. insertsql_fields_value.push_back(std::to_string(d.dym));
  255. insertsql_fields_name.push_back("rcy2");
  256. insertsql_fields_value.push_back(std::to_string(d.rcy2));
  257. insertsql_fields_name.push_back("rcu2");
  258. insertsql_fields_value.push_back(std::to_string(d.rcu2));
  259. insertsql_fields_name.push_back("rcs2");
  260. insertsql_fields_value.push_back(std::to_string(d.rcs2));
  261. insertsql_fields_name.push_back("a2_liq_prod_daily");
  262. insertsql_fields_value.push_back(std::to_string(d.a2_liq_prod_daily));
  263. insertsql_fields_name.push_back("a2_oil_prod_daily");
  264. insertsql_fields_value.push_back(std::to_string(d.a2_oil_prod_daily));
  265. insertsql_fields_name.push_back("a2_water_prod_daily");
  266. insertsql_fields_value.push_back(std::to_string(d.a2_water_prod_daily));
  267. insertsql_fields_name.push_back("yxgts");
  268. insertsql_fields_value.push_back(std::to_string(d.yxgts));
  269. insertsql_fields_name.push_back("errorgts");
  270. insertsql_fields_value.push_back(std::to_string(d.errorgts));
  271. insertsql_fields_name.push_back("zdjg");
  272. insertsql_fields_value.push_back(d.zdjg);
  273. insertsql_fields_name.push_back("djdy");
  274. insertsql_fields_value.push_back(std::to_string(d.djdy));
  275. insertsql_fields_name.push_back("zyq");
  276. insertsql_fields_value.push_back("'" + d.zyq + "'");
  277. insertsql_fields_name.push_back("jlz");
  278. insertsql_fields_value.push_back("'" + d.jlz + "'");
  279. insertsql_fields_name.push_back("hjwd");
  280. insertsql_fields_value.push_back(std::to_string(d.hjwd));
  281. insertsql_fields_name.push_back("ybdl");
  282. insertsql_fields_value.push_back(std::to_string(d.ybdl));
  283. insertsql_fields_name.push_back("sbh");
  284. insertsql_fields_value.push_back("'" + d.sbh + "'");
  285. insertsql_fields_name.push_back("xhqd");
  286. insertsql_fields_value.push_back(std::to_string(d.xhqd));
  287. insertsql_fields_name.push_back("yl");
  288. insertsql_fields_value.push_back(std::to_string(d.yl));
  289. insertsql_fields_name.push_back("rzbz");
  290. insertsql_fields_value.push_back("'" + d.rzbz + "'");
  291. }
  292. if (insertsql_fields_name.size() == 0)return r;
  293. std::string addsql =
  294. "insert into gtly.aoid_daily_yield(";
  295. std::string valuessql = "values(";
  296. for (int i = 0; i < insertsql_fields_name.size(); ++i) {
  297. if (i > 0) {
  298. addsql += ",";
  299. valuessql += ",";
  300. }
  301. addsql += insertsql_fields_name[i];
  302. valuessql += insertsql_fields_value[i];
  303. }
  304. addsql = addsql + ")" + valuessql + ")";
  305. gtpgcnn _gtpgcnn;
  306. _gtpgcnn.openCnn();
  307. r = _gtpgcnn.writeContent(addsql);
  308. _gtpgcnn.clearRes();
  309. _gtpgcnn.closeCnn();
  310. return r;
  311. }
  312. /**
  313. * start a thread to listen yml file changes
  314. * wsy
  315. * @param data
  316. * @return
  317. */
  318. bool gtaoiddao::get_aoid_config_data_and_open_hotupdate(aoid_config_data &data) {
  319. //auto r=get_aoid_config_data_fromDB(data);
  320. /*if (hotupdateymlfilecontentthread_pid == 0) {
  321. if (pthread_create((&hotupdateymlfilecontentthread_pid), NULL, input_welldata_yml_path_update, NULL) < 0) {
  322. printf("井筒基础数据:yaml配置失败\n");
  323. }
  324. }*/
  325. //input_welldata_yml_path_update(nullptr);
  326. bool r = false;
  327. try {
  328. YAML::Node config = YAML::LoadFile(input_welldata_yml_path);
  329. data.jh = config["井号"].as<std::string>();
  330. data.bj = config["泵径"].as<float>();
  331. data.bs = config["泵深"].as<float>();
  332. data.hsl = config["含水率"].as<float>();
  333. data.smd = config["水密度"].as<float>();
  334. data.qyb = config["气液比"].as<float>();
  335. data.dym = config["动液面"].as<float>();
  336. data.yy = config["油压"].as<float>();
  337. data.ty = config["套压"].as<float>();
  338. data.hy = config["回压"].as<float>();
  339. data.totalgtnum=config["一天内功图数量"].as<int>();
  340. r = true;
  341. } catch (const std::exception &e) {
  342. printf("井筒基础数据:yaml配置失败\n");
  343. r = false;
  344. std::cerr << "Error:" << e.what() << std::endl;
  345. }
  346. return r;
  347. }
  348. /*
  349. * search
  350. *
  351. * aoid_config_data
  352. */
  353. bool gtaoiddao::get_aoid_config_data_fromDB(aoid_config_data &data) {
  354. std::string sql = "select jh,bj,bs,hsl,smd,ymd,qyb,dym from gtly.aoid_config_data order by createtime limit 1";
  355. bool r = false;
  356. gtpgcnn _gtpgcnn;
  357. _gtpgcnn.openCnn();
  358. r = _gtpgcnn.readContent(sql);
  359. if (r) {
  360. int rows = _gtpgcnn.getRowsNumFromResult();
  361. if (rows > 0) {
  362. rows = 0;
  363. data.jh = _gtpgcnn.getValueFromResultChar(rows, 0);
  364. data.bj = std::atof(_gtpgcnn.getValueFromResult(rows, 1).c_str());
  365. data.bs = std::atof(_gtpgcnn.getValueFromResult(rows, 2).c_str());
  366. data.hsl = std::atof(_gtpgcnn.getValueFromResult(rows, 3).c_str());
  367. data.smd = std::atof(_gtpgcnn.getValueFromResult(rows, 4).c_str());
  368. data.qyb = std::atof(_gtpgcnn.getValueFromResult(rows, 5).c_str());
  369. data.dym = std::atof(_gtpgcnn.getValueFromResult(rows, 6).c_str());
  370. r = true;
  371. } else r = false;
  372. }
  373. _gtpgcnn.clearRes();
  374. _gtpgcnn.closeCnn();
  375. return r;
  376. }
  377. /*
  378. * add
  379. *
  380. * aoid_config_data
  381. */
  382. bool gtaoiddao::add_aoid_config_data_toDB(aoid_config_data data) {
  383. bool r = false;
  384. if (data.jh.empty()) {
  385. std::cout << "Warning:add gtly.aoid_config_data must--->jh" << std::endl;
  386. return r;
  387. }
  388. std::vector<std::string> insertsql_fields_name;
  389. std::vector<std::string> insertsql_fields_value;
  390. {
  391. insertsql_fields_name.push_back("jh");
  392. insertsql_fields_value.push_back("'" + data.jh + "'");
  393. insertsql_fields_name.push_back("bj");
  394. insertsql_fields_value.push_back(std::to_string(data.bj));
  395. insertsql_fields_name.push_back("bs");
  396. insertsql_fields_value.push_back(std::to_string(data.bs));
  397. insertsql_fields_name.push_back("hsl");
  398. insertsql_fields_value.push_back(std::to_string(data.hsl));
  399. insertsql_fields_name.push_back("smd");
  400. insertsql_fields_value.push_back(std::to_string(data.smd));
  401. insertsql_fields_name.push_back("ymd");
  402. insertsql_fields_value.push_back(std::to_string(data.ymd));
  403. insertsql_fields_name.push_back("qyb");
  404. insertsql_fields_value.push_back(std::to_string(data.qyb));
  405. insertsql_fields_name.push_back("dym");
  406. insertsql_fields_value.push_back(std::to_string(data.dym));
  407. }
  408. if (insertsql_fields_name.size() == 0)return r;
  409. std::string addsql =
  410. "insert into gtly.aoid_config_data(";
  411. std::string valuessql = "values(";
  412. for (int i = 0; i < insertsql_fields_name.size(); ++i) {
  413. if (i > 0) {
  414. addsql += ",";
  415. valuessql += ",";
  416. }
  417. addsql += insertsql_fields_name[i];
  418. valuessql += insertsql_fields_value[i];
  419. }
  420. addsql = addsql + ")" + valuessql + ")";
  421. gtpgcnn _gtpgcnn;
  422. _gtpgcnn.openCnn();
  423. r = _gtpgcnn.writeContent(addsql);
  424. _gtpgcnn.clearRes();
  425. _gtpgcnn.closeCnn();
  426. return r;
  427. }
  428. /*
  429. * update
  430. *
  431. * aoid_config_data
  432. */
  433. bool gtaoiddao::udpate_aoid_config_data_toDB(aoid_config_data data) {
  434. bool r = false;
  435. std::vector<std::string> updatesql_fields_name;
  436. std::vector<std::string> updatesql_fields_value;
  437. if (!data.jh.empty()) {
  438. updatesql_fields_name.push_back("jh=");
  439. updatesql_fields_value.push_back("'" + data.jh + "'");
  440. } else {
  441. std::cout << "Warning:update gtly.aoid_config_data must--->jh" << std::endl;
  442. return r;
  443. }
  444. if (updatesql_fields_name.size() == 0) return r;
  445. std::string updatesql = "update gtly.aoid_config_data set ";
  446. {
  447. updatesql_fields_name.push_back("bj=");
  448. updatesql_fields_value.push_back(std::to_string(data.bj));
  449. updatesql_fields_name.push_back("bs=");
  450. updatesql_fields_value.push_back(std::to_string(data.bs));
  451. updatesql_fields_name.push_back("hsl=");
  452. updatesql_fields_value.push_back(std::to_string(data.hsl));
  453. updatesql_fields_name.push_back("smd=");
  454. updatesql_fields_value.push_back(std::to_string(data.smd));
  455. updatesql_fields_name.push_back("ymd=");
  456. updatesql_fields_value.push_back(std::to_string(data.ymd));
  457. updatesql_fields_name.push_back("dym=");
  458. updatesql_fields_value.push_back(std::to_string(data.dym));
  459. }
  460. for (int i = 0; i < updatesql_fields_name.size(); ++i) {
  461. if (i > 0) {
  462. updatesql += ",";
  463. }
  464. updatesql += updatesql_fields_name[i];
  465. updatesql += updatesql_fields_value[i];
  466. }
  467. gtpgcnn _gtpgcnn;
  468. _gtpgcnn.openCnn();
  469. r = _gtpgcnn.writeContent(updatesql);
  470. _gtpgcnn.clearRes();
  471. _gtpgcnn.closeCnn();
  472. return r;
  473. }
  474. /*
  475. * create:wsy
  476. * date:2020.12.09
  477. * */
  478. bool gtaoiddao::get_aoid_singlewell_config_fromDB(int funcid, aoid_singlewell_config &data) {
  479. std::string sql = "select gradient_1,gradient_2,gradient_3,gradient_4,gradient_5,"
  480. "gradient_6,gradient_7,gradient_8,gradient_9,gradient_10,"
  481. "dividenum_1,dividenum_2,dividenum_3,dividenum_4,dividenum_5,"
  482. "dividenum_6,dividenum_7,dividenum_8,dividenum_9,dividenum_10 from gtly.aoid_singlewell_config where 1=1";
  483. bool r = false;
  484. if (funcid <= 0)
  485. return r;
  486. gtpgcnn _gtpgcnn;
  487. _gtpgcnn.openCnn();
  488. r = _gtpgcnn.readContent(sql);
  489. if (r) {
  490. int rows = _gtpgcnn.getRowsNumFromResult();
  491. for (int i = 0; i < rows; ++i) {
  492. data.gradient_1 = std::atof(_gtpgcnn.getValueFromResult(i, 0).c_str());
  493. data.gradient_2 = std::atof(_gtpgcnn.getValueFromResult(i, 1).c_str());
  494. data.gradient_3 = std::atof(_gtpgcnn.getValueFromResult(i, 2).c_str());
  495. data.gradient_4 = std::atof(_gtpgcnn.getValueFromResult(i, 3).c_str());
  496. data.gradient_5 = std::atof(_gtpgcnn.getValueFromResult(i, 4).c_str());
  497. data.gradient_6 = std::atof(_gtpgcnn.getValueFromResult(i, 5).c_str());
  498. data.gradient_7 = std::atof(_gtpgcnn.getValueFromResult(i, 6).c_str());
  499. data.gradient_8 = std::atof(_gtpgcnn.getValueFromResult(i, 7).c_str());
  500. data.gradient_9 = std::atof(_gtpgcnn.getValueFromResult(i, 8).c_str());
  501. data.gradient_10 = std::atof(_gtpgcnn.getValueFromResult(i, 9).c_str());
  502. data.dividenum_1 = std::atof(_gtpgcnn.getValueFromResult(i, 10).c_str());
  503. data.dividenum_2 = std::atof(_gtpgcnn.getValueFromResult(i, 11).c_str());
  504. data.dividenum_3 = std::atof(_gtpgcnn.getValueFromResult(i, 12).c_str());
  505. data.dividenum_4 = std::atof(_gtpgcnn.getValueFromResult(i, 13).c_str());
  506. data.dividenum_5 = std::atof(_gtpgcnn.getValueFromResult(i, 14).c_str());
  507. data.dividenum_6 = std::atof(_gtpgcnn.getValueFromResult(i, 15).c_str());
  508. data.dividenum_7 = std::atof(_gtpgcnn.getValueFromResult(i, 16).c_str());
  509. data.dividenum_8 = std::atof(_gtpgcnn.getValueFromResult(i, 17).c_str());
  510. data.dividenum_9 = std::atof(_gtpgcnn.getValueFromResult(i, 18).c_str());
  511. data.dividenum_10 = std::atof(_gtpgcnn.getValueFromResult(i, 19).c_str());
  512. }
  513. }
  514. _gtpgcnn.clearRes();
  515. _gtpgcnn.closeCnn();
  516. /**
  517. *
  518. * TODO:wsy
  519. * get data from db ;where id
  520. */
  521. return r;
  522. }
  523. /*
  524. * create:wsy
  525. * date:2020.12.09
  526. * */
  527. bool gtaoiddao::get_aoid_gk_model_fromDB(std::string gkname, aoid_gk_model &data) {
  528. bool r = false;
  529. if (gkname.empty()) return r;
  530. std::string sql = "select gkxs,result from gtly.aoid_gk_model where result='" + gkname + "' ";
  531. gtpgcnn _gtpgcnn;
  532. _gtpgcnn.openCnn();
  533. r = _gtpgcnn.readContent(sql);
  534. if (r) {
  535. int rows = _gtpgcnn.getRowsNumFromResult();
  536. r = rows > 0;
  537. int i = 0;
  538. data.gkxs = std::atof(_gtpgcnn.getValueFromResult(i, 0).c_str());
  539. data.result = _gtpgcnn.getValueFromResult(i, 1);
  540. }
  541. _gtpgcnn.clearRes();
  542. _gtpgcnn.closeCnn();
  543. return r;
  544. }