flexbiz-server
Version:
Flexible Server
42 lines (41 loc) • 21.3 kB
JavaScript
const async=require("async"),_=require("lodash"),{JSONParser}=require("../libs/utils"),{createHandler}=require("./createHandler"),{updateHandler}=require("./updateHandler"),{executeInTransaction}=require("../libs/sessionContext.js"),create=async($user$$,$ctrl$$,$data$$,$callback$$,$id_be_supply_by_user$$,$req$$,$action$$="add")=>{$req$$=$req$$||{};$req$$.user=$user$$;$req$$.data=$data$$;$req$$.id_be_supply_by_user=$id_be_supply_by_user$$;$req$$.action=$action$$;createHandler($ctrl$$,$req$$,($e_obj_created$$,
$returnvalue$$)=>{if($e_obj_created$$)return $callback$$($e_obj_created$$);({obj_created:$e_obj_created$$}=$returnvalue$$);$callback$$(null,$e_obj_created$$)})},update=async function($user$$,$ctrl$$,$id$$,$data$$,$callback$$,$action$$,$req$$,$_action$$="update"){$req$$=$req$$||{};$req$$.action=$action$$;$req$$._action=$_action$$;$req$$.user=$user$$;$req$$.id=$id$$;$req$$.data=$data$$;updateHandler($ctrl$$,$req$$,($e$$,$returnvalue$$)=>{if($e$$)return $callback$$($e$$);$callback$$(null,$returnvalue$$.new_obj)})};
async function importHandler($user$$,$ctrl$$,$id_app$$,$data$$,$callback_main$$,$options$$={replace:!0,req:null,listinfo_code:null}){const $model$$=$ctrl$$.model;let $replace$$=$options$$.replace,$rows_error$$=[];var $custs_kho_will_creates_listInfo_new_custs_nh_kh3s_nh_vt$$=global.getModel("listinfo"),$info_nh_kh$jscomp$2_nh_kh2s_nh_vt$$=await $custs_kho_will_creates_listInfo_new_custs_nh_kh3s_nh_vt$$.findOne({code:($options$$.listinfo_code||$ctrl$$.name).toLowerCase()}).lean();let $modelJoins$$=
[];$info_nh_kh$jscomp$2_nh_kh2s_nh_vt$$&&(await $custs_kho_will_creates_listInfo_new_custs_nh_kh3s_nh_vt$$.updateModel($info_nh_kh$jscomp$2_nh_kh2s_nh_vt$$,$ctrl$$.model),$modelJoins$$=($info_nh_kh$jscomp$2_nh_kh2s_nh_vt$$.fields||[]).filter($f$$=>$f$$.ref_model&&$f$$.ref_field=="_id"));$data$$=$data$$.filter($row$$=>{let $has_data$$=!1;for(let $key$$ in $row$$)if($row$$[$key$$]){$has_data$$=!0;break}return $has_data$$});if(configs.limitRowImport&&$data$$.length>configs.limitRowImport)return $callback_main$$("S\u1ed1 d\u00f2ng import t\u1ed1i \u0111a 1 l\u1ea7n l\u00e0 "+
configs.limitRowImport);Logger.info("[importHanlder] \u0110ang import t\u1edbi",$model$$.modelName,$data$$.length," d\u00f2ng d\u1eef li\u1ec7u...");if($model$$.modelName!=="group"){var $nh_kh$$=$data$$.filter($r$$=>$r$$.ten_nh_kh);$info_nh_kh$jscomp$2_nh_kh2s_nh_vt$$=$data$$.filter($r$$=>$r$$.ten_nh_kh2);$custs_kho_will_creates_listInfo_new_custs_nh_kh3s_nh_vt$$=$data$$.filter($r$$=>$r$$.ten_nh_kh3);$model$$.schema.paths.details&&($nh_kh$$=$nh_kh$$.concat($data$$.map($v$$=>$v$$.details||[]).reduce(($a$$,
$b$$)=>$a$$.concat($b$$),[]).filter($r$$=>$r$$.ten_nh_kh)),$info_nh_kh$jscomp$2_nh_kh2s_nh_vt$$=$info_nh_kh$jscomp$2_nh_kh2s_nh_vt$$.concat($data$$.map($v$$=>$v$$.details||[]).reduce(($a$$,$b$$)=>$a$$.concat($b$$),[]).filter($r$$=>$r$$.ten_nh_kh2)),$custs_kho_will_creates_listInfo_new_custs_nh_kh3s_nh_vt$$=$custs_kho_will_creates_listInfo_new_custs_nh_kh3s_nh_vt$$.concat($data$$.map($v$$=>$v$$.details||[]).reduce(($a$$,$b$$)=>$a$$.concat($b$$),[]).filter($r$$=>$r$$.ten_nh_kh3)));var $nh_kh_ten_nh_kh1s$$=
await $nh_kh$$.filter($c$$=>$c$$.ten_nh_kh&&!$c$$.nh_kh).asyncGroupBy(["ten_nh_kh"],[]);for(let $nh_kh1$$ of $nh_kh_ten_nh_kh1s$$){$nh_kh_ten_nh_kh1s$$={};$nh_kh_ten_nh_kh1s$$.id_app=$id_app$$;$nh_kh_ten_nh_kh1s$$.group_name=$nh_kh1$$.ten_nh_kh;$nh_kh_ten_nh_kh1s$$.group_type="CUSTOMER";$nh_kh_ten_nh_kh1s$$.group_kind=1;$nh_kh_ten_nh_kh1s$$.status=!0;$nh_kh_ten_nh_kh1s$$.user_created=$user$$.email;let $check$$=await global.getModel("group").findOne({group_name:$nh_kh1$$.ten_nh_kh,id_app:$id_app$$,
group_kind:1,group_type:"CUSTOMER"},{_id:1}).lean();if($check$$)$nh_kh$$.filter($c$$=>$c$$.ten_nh_kh==$nh_kh1$$.ten_nh_kh).forEach($c$$=>{$c$$.nh_kh=$check$$._id.toString()});else{const $new_nh_kh$$=await global.getModel("group").create($nh_kh_ten_nh_kh1s$$);$nh_kh$$.filter($c$$=>$c$$.ten_nh_kh==$nh_kh1$$.ten_nh_kh).forEach($c$$=>{$c$$.nh_kh=$new_nh_kh$$._id.toString()})}}$nh_kh$$=await $info_nh_kh$jscomp$2_nh_kh2s_nh_vt$$.filter($c$$=>$c$$.ten_nh_kh2&&!$c$$.nh_kh2).asyncGroupBy(["ten_nh_kh2"],[]);
for(let $nh_kh2$$ of $nh_kh$$){$nh_kh$$={};$nh_kh$$.id_app=$id_app$$;$nh_kh$$.group_name=$nh_kh2$$.ten_nh_kh2;$nh_kh$$.group_type="CUSTOMER";$nh_kh$$.group_kind=2;$nh_kh$$.status=!0;$nh_kh$$.user_created=$user$$.email;let $check$$=await global.getModel("group").findOne({group_name:$nh_kh2$$.ten_nh_kh2,id_app:$id_app$$,group_kind:2,group_type:"CUSTOMER"},{_id:1}).lean();if($check$$)$info_nh_kh$jscomp$2_nh_kh2s_nh_vt$$.filter($c$$=>$c$$.ten_nh_kh2==$nh_kh2$$.ten_nh_kh2).forEach($c$$=>{$c$$.nh_kh2=$check$$._id.toString()});
else{const $new_nh_kh$$=await global.getModel("group").create($nh_kh$$);$info_nh_kh$jscomp$2_nh_kh2s_nh_vt$$.filter($c$$=>$c$$.ten_nh_kh2==$nh_kh2$$.ten_nh_kh2).forEach($c$$=>{$c$$.nh_kh2=$new_nh_kh$$._id.toString()})}}$info_nh_kh$jscomp$2_nh_kh2s_nh_vt$$=await $custs_kho_will_creates_listInfo_new_custs_nh_kh3s_nh_vt$$.filter($c$$=>$c$$.ten_nh_kh3&&!$c$$.nh_kh3).asyncGroupBy(["ten_nh_kh3"],[]);for(let $nh_kh3$$ of $info_nh_kh$jscomp$2_nh_kh2s_nh_vt$$){$info_nh_kh$jscomp$2_nh_kh2s_nh_vt$$={};$info_nh_kh$jscomp$2_nh_kh2s_nh_vt$$.id_app=
$id_app$$;$info_nh_kh$jscomp$2_nh_kh2s_nh_vt$$.group_name=$nh_kh3$$.ten_nh_kh3;$info_nh_kh$jscomp$2_nh_kh2s_nh_vt$$.group_type="CUSTOMER";$info_nh_kh$jscomp$2_nh_kh2s_nh_vt$$.group_kind=3;$info_nh_kh$jscomp$2_nh_kh2s_nh_vt$$.status=!0;$info_nh_kh$jscomp$2_nh_kh2s_nh_vt$$.user_created=$user$$.email;let $check$$=await global.getModel("group").findOne({group_name:$nh_kh3$$.ten_nh_kh3,id_app:$id_app$$,group_kind:3,group_type:"CUSTOMER"},{_id:1}).lean();if($check$$)$custs_kho_will_creates_listInfo_new_custs_nh_kh3s_nh_vt$$.filter($c$$=>
$c$$.ten_nh_kh3==$nh_kh3$$.ten_nh_kh3).forEach($c$$=>{$c$$.nh_kh3=$check$$._id.toString()});else{Logger.info("[importHanlder] create nhom kh3",$nh_kh3$$.ten_nh_kh3);const $new_nh_kh$$=await global.getModel("group").create($info_nh_kh$jscomp$2_nh_kh2s_nh_vt$$);$custs_kho_will_creates_listInfo_new_custs_nh_kh3s_nh_vt$$.filter($c$$=>$c$$.ten_nh_kh3==$nh_kh3$$.ten_nh_kh3).forEach($c$$=>{$c$$.nh_kh3=$new_nh_kh$$._id.toString()})}}}if($model$$.modelName!=="customer"){$custs_kho_will_creates_listInfo_new_custs_nh_kh3s_nh_vt$$=
[];$custs_kho_will_creates_listInfo_new_custs_nh_kh3s_nh_vt$$=$data$$.filter($r$$=>$r$$.ten_kh);$model$$.schema.paths.details&&($custs_kho_will_creates_listInfo_new_custs_nh_kh3s_nh_vt$$=$custs_kho_will_creates_listInfo_new_custs_nh_kh3s_nh_vt$$.concat($data$$.map($v$$=>$v$$.details||[]).reduce(($a$$,$b$$)=>$a$$.concat($b$$),[]).filter($r$$=>$r$$.ten_kh)));$custs_kho_will_creates_listInfo_new_custs_nh_kh3s_nh_vt$$=$custs_kho_will_creates_listInfo_new_custs_nh_kh3s_nh_vt$$.map($kh$$=>{$kh$$.ma_kh||
($kh$$.ma_kh=$kh$$.ten_kh.replace(/[^\w\s]/gi,"").split(" ").join("").toUpperCase());return{ma_kh:$kh$$.ma_kh,ten_kh:$kh$$.ten_kh,dia_chi:$kh$$.dia_chi||"",dien_thoai:$kh$$.dien_thoai||"",ma_so_thue:$kh$$.ma_so_thue||"",nh_kh:$kh$$.nh_kh,ten_nh_kh:$kh$$.ten_nh_kh,ten_nh_kh2:$kh$$.ten_nh_kh2,nh_kh2:$kh$$.nh_kh2,ten_nh_kh3:$kh$$.ten_nh_kh3,nh_kh3:$kh$$.nh_kh3}});$custs_kho_will_creates_listInfo_new_custs_nh_kh3s_nh_vt$$=await $custs_kho_will_creates_listInfo_new_custs_nh_kh3s_nh_vt$$.asyncGroupBy("ma_kh ten_kh dia_chi dien_thoai ma_so_thue nh_kh nh_kh2 nh_kh3".split(" "),
[]);for(var $dvts_kh$$ of $custs_kho_will_creates_listInfo_new_custs_nh_kh3s_nh_vt$$)$dvts_kh$$.id_app=$id_app$$,$dvts_kh$$.user_created=$user$$.email,await global.getModel("customer").asyncCreateCustomer($dvts_kh$$)}$dvts_kh$$=[];if($model$$.modelName!=="dmkho"){$model$$.schema.paths.ma_kho&&($dvts_kh$$=$data$$.filter($r$$=>$r$$.ten_kho));$model$$.schema.paths.details&&($dvts_kh$$=$dvts_kh$$.concat($data$$.map($v$$=>$v$$.details||[]).reduce(($a$$,$b$$)=>$a$$.concat($b$$),[]).filter($r$$=>$r$$.ten_kho)));
$custs_kho_will_creates_listInfo_new_custs_nh_kh3s_nh_vt$$=$dvts_kh$$.map($kh$$=>{$kh$$.ma_kho||($kh$$.ma_kho=$kh$$.ten_kho.replace(/[^\w\s]/gi,"").split(" ").join("").toUpperCase());return{ma_kho:$kh$$.ma_kho,ten_kho:$kh$$.ten_kho}});$custs_kho_will_creates_listInfo_new_custs_nh_kh3s_nh_vt$$=await $custs_kho_will_creates_listInfo_new_custs_nh_kh3s_nh_vt$$.asyncGroupBy(["ma_kho","ten_kho"],[]);for(let $kho$$ of $custs_kho_will_creates_listInfo_new_custs_nh_kh3s_nh_vt$$)$kho$$.id_app=$id_app$$,$kho$$.user_created=
$user$$.email,$kho$$.status=!0,await global.getModel("dmkho").findOne({id_app:$id_app$$,ma_kho:$kho$$.ma_kho}).lean()||await global.getModel("dmkho").create($kho$$),$dvts_kh$$.filter($c$$=>!$c$$.ma_kho&&$c$$.ten_kho===$kho$$.ten_kho).forEach($c$$=>{$c$$.ma_kho=$kho$$.ma_kho})}if($model$$.modelName!=="dmnvt"){$info_nh_kh$jscomp$2_nh_kh2s_nh_vt$$=$data$$.filter($r$$=>!$r$$.ma_nvt&&$r$$.ten_nvt);$custs_kho_will_creates_listInfo_new_custs_nh_kh3s_nh_vt$$=$data$$.filter($r$$=>!$r$$.ma_nvt2&&$r$$.ten_nvt2);
$dvts_kh$$=$data$$.filter($r$$=>!$r$$.ma_nvt3&&$r$$.ten_nvt3);$model$$.schema.paths.details&&($info_nh_kh$jscomp$2_nh_kh2s_nh_vt$$=$info_nh_kh$jscomp$2_nh_kh2s_nh_vt$$.concat($data$$.map($v$$=>$v$$.details||[]).reduce(($a$$,$b$$)=>$a$$.concat($b$$),[]).filter($r$$=>!$r$$.ma_nvt&&$r$$.ten_nvt)),$custs_kho_will_creates_listInfo_new_custs_nh_kh3s_nh_vt$$=$custs_kho_will_creates_listInfo_new_custs_nh_kh3s_nh_vt$$.concat($data$$.map($v$$=>$v$$.details||[]).reduce(($a$$,$b$$)=>$a$$.concat($b$$),[]).filter($r$$=>
!$r$$.ma_nvt2&&$r$$.ten_nvt2)),$dvts_kh$$=$dvts_kh$$.concat($data$$.map($v$$=>$v$$.details||[]).reduce(($a$$,$b$$)=>$a$$.concat($b$$),[]).filter($r$$=>!$r$$.ma_nvt3&&$r$$.ten_nvt3)));$nh_kh$$=await $info_nh_kh$jscomp$2_nh_kh2s_nh_vt$$.filter($c$$=>$c$$.ten_nvt).asyncGroupBy(["ten_nvt"],[]);for(let $nh_vt1$$ of $nh_kh$$){$nh_kh$$={};$nh_kh$$.id_app=$id_app$$;$nh_kh$$.ten_nvt=$nh_vt1$$.ten_nvt;$nh_kh$$.group_kind=1;$nh_kh$$.status=!0;$nh_kh$$.user_created=$user$$.email;let $check$$=await global.getModel("dmnvt").findOne({ten_nvt:$nh_vt1$$.ten_nvt,
id_app:$id_app$$,group_kind:1},{_id:1}).lean();if($check$$)$info_nh_kh$jscomp$2_nh_kh2s_nh_vt$$.filter($c$$=>$c$$.ten_nvt==$nh_vt1$$.ten_nvt).forEach($c$$=>{$c$$.ma_nvt=$check$$._id.toString()});else{Logger.info("[importHanlder] create nhom vat tu",$nh_vt1$$.ten_nvt);const $new_nvt$$=await global.getModel("dmnvt").create($nh_kh$$);$info_nh_kh$jscomp$2_nh_kh2s_nh_vt$$.filter($c$$=>$c$$.ten_nvt==$nh_vt1$$.ten_nvt).forEach($c$$=>{$c$$.ma_nvt=$new_nvt$$._id.toString()})}}$info_nh_kh$jscomp$2_nh_kh2s_nh_vt$$=
await $custs_kho_will_creates_listInfo_new_custs_nh_kh3s_nh_vt$$.filter($c$$=>$c$$.ten_nvt2).asyncGroupBy(["ten_nvt2"],[]);for(let $nh_vt2$$ of $info_nh_kh$jscomp$2_nh_kh2s_nh_vt$$){$info_nh_kh$jscomp$2_nh_kh2s_nh_vt$$={};$info_nh_kh$jscomp$2_nh_kh2s_nh_vt$$.id_app=$id_app$$;$info_nh_kh$jscomp$2_nh_kh2s_nh_vt$$.ten_nvt=$nh_vt2$$.ten_nvt2;$info_nh_kh$jscomp$2_nh_kh2s_nh_vt$$.group_kind=2;$info_nh_kh$jscomp$2_nh_kh2s_nh_vt$$.status=!0;$info_nh_kh$jscomp$2_nh_kh2s_nh_vt$$.user_created=$user$$.email;
let $check$$=await global.getModel("dmnvt").findOne({ten_nvt:$nh_vt2$$.ten_nvt2,id_app:$id_app$$,group_kind:2},{_id:1}).lean();if($check$$)$custs_kho_will_creates_listInfo_new_custs_nh_kh3s_nh_vt$$.filter($c$$=>$c$$.ten_nvt2==$nh_vt2$$.ten_nvt2).forEach($c$$=>{$c$$.ma_nvt2=$check$$._id.toString()});else{Logger.info("[importHanlder] create nhom vat tu 2",$nh_vt2$$.ten_nvt2);const $new_nvt$$=await global.getModel("dmnvt").create($info_nh_kh$jscomp$2_nh_kh2s_nh_vt$$);$custs_kho_will_creates_listInfo_new_custs_nh_kh3s_nh_vt$$.filter($c$$=>
$c$$.ten_nvt2==$nh_vt2$$.ten_nvt2).forEach($c$$=>{$c$$.ma_nvt2=$new_nvt$$._id.toString()})}}$custs_kho_will_creates_listInfo_new_custs_nh_kh3s_nh_vt$$=await $dvts_kh$$.filter($c$$=>$c$$.ten_nvt3).asyncGroupBy(["ten_nvt3"],[]);for(let $nh_vt3$$ of $custs_kho_will_creates_listInfo_new_custs_nh_kh3s_nh_vt$$){$custs_kho_will_creates_listInfo_new_custs_nh_kh3s_nh_vt$$={};$custs_kho_will_creates_listInfo_new_custs_nh_kh3s_nh_vt$$.id_app=$id_app$$;$custs_kho_will_creates_listInfo_new_custs_nh_kh3s_nh_vt$$.ten_nvt=
$nh_vt3$$.ten_nvt3;$custs_kho_will_creates_listInfo_new_custs_nh_kh3s_nh_vt$$.group_kind=3;$custs_kho_will_creates_listInfo_new_custs_nh_kh3s_nh_vt$$.status=!0;$custs_kho_will_creates_listInfo_new_custs_nh_kh3s_nh_vt$$.user_created=$user$$.email;let $check$$=await global.getModel("dmnvt").findOne({ten_nvt:$nh_vt3$$.ten_nvt3,id_app:$id_app$$,group_kind:3},{_id:1}).lean();if($check$$)$dvts_kh$$.filter($c$$=>$c$$.ten_nvt3==$nh_vt3$$.ten_nvt3).forEach($c$$=>{$c$$.ma_nvt3=$check$$._id.toString()});else{Logger.info("[importHanlder] create nhom vat tu 3",
$nh_vt3$$.ten_nvt3);const $new_nvt$$=await global.getModel("dmnvt").create($custs_kho_will_creates_listInfo_new_custs_nh_kh3s_nh_vt$$);$dvts_kh$$.filter($c$$=>$c$$.ten_nvt3==$nh_vt3$$.ten_nvt3).forEach($c$$=>{$c$$.ma_nvt3=$new_nvt$$._id.toString()})}}}if($model$$.modelName!=="dmdvt"){$dvts_kh$$=$data$$.filter($r$$=>$r$$.ma_dvt);$model$$.schema.paths.details&&($dvts_kh$$=$dvts_kh$$.concat($data$$.map($v$$=>$v$$.details||[]).reduce(($a$$,$b$$)=>$a$$.concat($b$$),[]).filter($r$$=>$r$$.ma_dvt)));$dvts_kh$$=
await $dvts_kh$$.asyncGroupBy(["ma_dvt"],[]);for(var $dvt_vts$$ of $dvts_kh$$)$dvt_vts$$.id_app=$id_app$$,$dvt_vts$$.ten_dvt=$dvt_vts$$.ma_dvt,$dvt_vts$$.status=!0,$dvt_vts$$.user_created=$user$$.email,await global.getModel("dmdvt").findOne({ma_dvt:$dvt_vts$$.ma_dvt,id_app:$id_app$$}).lean()||(Logger.info("[importHanlder] create dvt",$dvt_vts$$),await global.getModel("dmdvt").create($dvt_vts$$))}if($model$$.modelName!=="dmvt"){$dvt_vts$$=$data$$.filter($r$$=>$r$$.ma_vt&&$r$$.ten_vt);$model$$.schema.paths.details&&
($dvt_vts$$=$dvt_vts$$.concat($data$$.map($v$$=>$v$$.details||[]).reduce(($a$$,$b$$)=>$a$$.concat($b$$),[]).filter($r$$=>$r$$.ma_vt&&$r$$.ten_vt)));$dvt_vts$$=$dvt_vts$$.map($vt$$=>({ma_vt:$vt$$.ma_vt,ten_vt:$vt$$.ten_vt,ma_dvt:$vt$$.ma_dvt||"Kh\u00f4ng \u0111\u01a1n v\u1ecb t\u00ednh",ma_nvt:$vt$$.ma_nvt,ten_nvt:$vt$$.ten_nvt,ma_nvt2:$vt$$.ma_nvt2,ten_nvt2:$vt$$.ten_nvt2,ma_nvt3:$vt$$.ma_nvt3,ten_nvt3:$vt$$.ten_nvt3,user_created:$user$$.email}));$dvt_vts$$=await $dvt_vts$$.asyncGroupBy("ma_vt ten_vt ma_dvt ma_nvt ten_nvt ma_nvt2 ten_nvt2 ma_nvt3 ten_nvt3".split(" "),
[]);$dvts_kh$$=(await global.getModel("account").findOne({id_app:$id_app$$,loai:1,tk:{$regex:"^156",$options:"i"}},{tk:1}).lean()||{}).tk;$custs_kho_will_creates_listInfo_new_custs_nh_kh3s_nh_vt$$=(await global.getModel("account").findOne({id_app:$id_app$$,loai:1,tk:{$regex:"^632",$options:"i"}},{tk:1}).lean()||{}).tk;$info_nh_kh$jscomp$2_nh_kh2s_nh_vt$$=(await global.getModel("account").findOne({id_app:$id_app$$,loai:1,tk:{$regex:"^511",$options:"i"}},{tk:1}).lean()||{}).tk;for(var $limit_vt$$ of $dvt_vts$$)$limit_vt$$.id_app=
$id_app$$,$limit_vt$$.tk_vt=$dvts_kh$$,$limit_vt$$.tk_gv=$custs_kho_will_creates_listInfo_new_custs_nh_kh3s_nh_vt$$,$limit_vt$$.tk_dt=$info_nh_kh$jscomp$2_nh_kh2s_nh_vt$$,$limit_vt$$.status=!0,$limit_vt$$.user_created=$user$$.email,await global.getModel("dmvt").findOne({ma_vt:$limit_vt$$.ma_vt,id_app:$id_app$$}).lean()||(Logger.info("[importHanlder] create product",$limit_vt$$),await global.getModel("dmvt").create($limit_vt$$),$model$$.modelName!=="dmqddvt"&&await global.getModel("dmqddvt").create({id_app:$id_app$$,
status:!0,ma_vt:$limit_vt$$.ma_vt,ma_dvt:$limit_vt$$.ma_dvt,tu:1,ma:1}))}$data$$.forEach($r$$=>{delete $r$$.ten_dvcs;global.mongoose.Types.ObjectId.isValid($r$$._id)||delete $r$$._id});await $data$$.filter($r$$=>$r$$.ma_dvcs).asyncJoinModel2($id_app$$,global.getModel("dvcs"),{where:{ma_dvcs:"_id"},fields:"ten_dvcs"});Logger.error("[importHanlder] begin import",$ctrl$$.name);$limit_vt$$=100;if($ctrl$$.options?.unique_imp||$ctrl$$.unique&&$ctrl$$.unique.length>0)$limit_vt$$=1;async.mapLimit($data$$,
$limit_vt$$,function($row$$,$callback$$){const $row_keys$$=Object.keys($row$$);$row_keys$$.filter($key$$=>$ctrl$$.model.schema.paths[$key$$]).forEach($key$$=>{let $data_type$$=$ctrl$$.model.schema.paths[$key$$].instance.toLowerCase(),$data_value$$=$row$$[$key$$];if($data_value$$&&_.isString($data_value$$)&&($data_type$$=="mixed"||$data_type$$=="array")&&($data_value$$=$data_value$$.trim(),$data_value$$.indexOf("[")==0||$data_value$$.indexOf("{")==0))try{$row$$[$key$$]=JSONParser($data_value$$)}catch($e$$){delete $row$$[$key$$],
Logger.error("[importHanlder] Error parse data",$e$$)}});setImmediate(async()=>{for(let $i$$=0;$i$$<$modelJoins$$.length;$i$$++){let $field_ref$$=$modelJoins$$[$i$$];if($row$$[$field_ref$$.name]){let $new_data_ref$$=await global.getModel("originimportid").findOne({id_app:$id_app$$,old_id:$row$$[$field_ref$$.name]}).lean();$new_data_ref$$&&($row$$[$field_ref$$.name]=$new_data_ref$$.new_id)}}delete $row$$.__v;let $old_id$$=$row$$._id;$row$$.ma_dvcs&&!$row$$.ten_dvcs&&delete $row$$.ma_dvcs;$row$$.id_app&&
$id_app$$!=$row$$.id_app&&delete $row$$._id;delete $row$$.id_app;if($replace$$&&($ctrl$$.unique&&$ctrl$$.unique.length>0||$row$$._id)){let $query$$={};if($ctrl$$.options?.unique_imp||$ctrl$$.unique&&$ctrl$$.unique.length>0){if($ctrl$$.options.unique_imp&&$row$$[$ctrl$$.options.unique_imp]!=null&&$row$$[$ctrl$$.options.unique_imp]!=void 0&&$row$$[$ctrl$$.options.unique_imp]!="")$query$$[$ctrl$$.options.unique_imp]=$row$$[$ctrl$$.options.unique_imp];else if($ctrl$$.unique.forEach(function($k$$){$row_keys$$.indexOf($k$$)>=
0&&($query$$[$k$$]=$row$$[$k$$],$query$$[$k$$]==void 0&&delete $query$$[$k$$])}),Object.keys($query$$).length<1)return $callback$$("Kh\u00f4ng th\u1ec3 c\u1eadp nh\u1eadt, D\u1eef li\u1ec7u c\u1ea7n c\u00f3 \u00edt nh\u1ea5t m\u1ed9t gi\u00e1 tr\u1ecb:"+$ctrl$$.unique.join(","));$ctrl$$.require_id_app!=0&&($query$$.id_app=$id_app$$)}else $query$$._id=$row$$._id;await executeInTransaction(()=>new Promise(($resolve$$,$reject$$)=>{setImmediate(async()=>{const $rss$$=await $ctrl$$.model.find($query$$).inTxn().lean();
if($rss$$.length>1)return $reject$$("Kh\u00f4ng th\u1ec3 c\u1eadp nh\u1eadt, \u0111\u1ed1i t\u01b0\u1ee3ng "+Object.values($query$$).join("-")+" \u0111\u00e3 t\u1ed3n t\u1ea1i nhi\u1ec1u h\u01a1n m\u1ed9t l\u1ea7n");let $foundObject$$;$rss$$.length===1&&($foundObject$$=$rss$$[0]);$foundObject$$?($row$$.id_app=$foundObject$$.id_app,$row$$._id=$foundObject$$._id.toString(),($ctrl$$.unique||[]).forEach(function($k$$){$row$$[$k$$]=$foundObject$$[$k$$]}),Logger.info("[importHanlder] update..."),update($user$$,
$ctrl$$,$foundObject$$._id,$row$$,function($e$$){if($e$$){let $_e$$=$e$$;_.isArray($_e$$)||($_e$$=[{error:$e$$.error||$e$$,code:$e$$.code}]);$rows_error$$.push({row:$row$$,error:$_e$$})}Logger.info("[importHanlder] updated successfull");$resolve$$()},"import",$options$$.req,"import")):(Logger.info("[importHanlder] create..."),create($user$$,$ctrl$$,$row$$,async function($e$jscomp$4_i$$,$_e$$){if($e$jscomp$4_i$$)$_e$$=$e$jscomp$4_i$$,_.isArray($_e$$)||($_e$$=[{error:$e$jscomp$4_i$$.error||$e$jscomp$4_i$$,
code:$e$jscomp$4_i$$.code}]),$rows_error$$.push({row:$row$$,error:$_e$$});else if($row$$._id_new__=$_e$$._id.toString(),$old_id$$)for(await global.getModel("originimportid").findOneAndUpdate({id_app:$_e$$.id_app,old_id:$old_id$$},{id_app:$_e$$.id_app,old_id:$old_id$$,new_id:$_e$$._id.toString()},{new:!0,upsert:!0}),$e$jscomp$4_i$$=0;$e$jscomp$4_i$$<$data$$.length;$e$jscomp$4_i$$++){const $_r$$=$data$$[$e$jscomp$4_i$$];for(let $key$$ in $_r$$)$key$$!="_id"&&$_r$$[$key$$]==$old_id$$&&($_r$$[$key$$]=
$_e$$._id.toString(),$_r$$._id_new__&&await $model$$.updateMany({_id:$_r$$._id_new__},{[$key$$]:$_e$$._id.toString()}))}$resolve$$()},$row$$._id,$options$$.req,"import"))})})).then(()=>{$callback$$()}).catch($error$$=>{Logger.error("[importHanlder] L\u1ed7i t\u00ecm object:",$error$$.message);$callback$$($error$$)})}else await executeInTransaction(()=>new Promise($resolve$$=>{create($user$$,$ctrl$$,$row$$,async function($e$jscomp$5_i$$,$_e$jscomp$2_new_row$$){if($e$jscomp$5_i$$)Logger.error("[importHanlder] error import data, creating...",
$e$jscomp$5_i$$),$_e$jscomp$2_new_row$$=$e$jscomp$5_i$$,_.isArray($_e$jscomp$2_new_row$$)||($_e$jscomp$2_new_row$$=[{error:$e$jscomp$5_i$$.error||$e$jscomp$5_i$$,code:$e$jscomp$5_i$$.code}]),$rows_error$$.push({error:$_e$jscomp$2_new_row$$});else if($row$$._id_new__=$_e$jscomp$2_new_row$$._id.toString(),$old_id$$)for(await global.getModel("originimportid").findOneAndUpdate({id_app:$_e$jscomp$2_new_row$$.id_app,old_id:$old_id$$},{id_app:$_e$jscomp$2_new_row$$.id_app,old_id:$old_id$$,new_id:$_e$jscomp$2_new_row$$._id.toString()},
{new:!0,upsert:!0}),$e$jscomp$5_i$$=0;$e$jscomp$5_i$$<$data$$.length;$e$jscomp$5_i$$++){const $_r$$=$data$$[$e$jscomp$5_i$$];for(let $key$$ in $_r$$)$key$$!="_id"&&$_r$$[$key$$]==$old_id$$&&($_r$$[$key$$]=$_e$jscomp$2_new_row$$._id.toString(),$_r$$._id_new__&&await $model$$.updateMany({_id:$_r$$._id_new__},{[$key$$]:$_e$jscomp$2_new_row$$._id.toString()}))}$resolve$$()},$row$$._id,$options$$.req,"import")})),$callback$$()})},function($error$$){if($error$$)return Logger.error("[importHanlder]",$error$$),
$callback_main$$($error$$);Logger.info(`[importHanlder] \u0110\u00e3 import t\u1edbi ${$ctrl$$.name} th\u00e0nh c\u00f4ng: ${$data$$.length-$rows_error$$.length} d\u00f2ng, th\u1ea5t b\u1ea1i: ${$rows_error$$.length} d\u00f2ng`);$callback_main$$(null,{rows_imported:$data$$.length-$rows_error$$.length,rows_error:$rows_error$$})})}module.exports=importHandler;