Fileoper.php 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: sicilon_IT
  5. * Date: 2020/1/5
  6. * Time: 9:49
  7. */
  8. namespace app\index\controller;
  9. use think\Controller;
  10. use think\Request;
  11. use app\index\logic\paylogic;
  12. use think\Log;
  13. class Fileoper extends Controller{
  14. public function upQuestionsWrite()
  15. {
  16. // 获取表单上传文件
  17. $file = request()->file('file');
  18. $domainpath='https://app.tjzhxx.com/index.php/Uploads/';
  19. if(empty($file)) {
  20. $this->error('请选择上传文件');
  21. }
  22. // 移动到框架应用根目录/public/uploads/ 目录下
  23. $info = $file->move(ROOT_PATH.'public'.DS.'Uploads');
  24. //如果不清楚文件上传的具体键名,可以直接打印$info来查看
  25. //获取文件(文件名),$info->getFilename() ***********不同之处,笔记笔记哦
  26. //获取文件(日期/文件名),$info->getSaveName() **********不同之处,笔记笔记哦
  27. $filename = $info->getSaveName(); //在测试的时候也可以直接打印文件名称来查看
  28. log::info($filename);
  29. if($filename){
  30. //$this->success('文件上传成功!');
  31. $imageUrl=$domainpath.$filename;
  32. $r_upload['code']='200';
  33. $r_upload['resultData']=$imageUrl;
  34. //不转义反斜杠
  35. return json_encode($r_upload,320);
  36. }else{
  37. // 上传失败获取错误信息
  38. $this->error($file->getError());
  39. }
  40. }
  41. /*
  42. * 20210502
  43. * 导入支侍文件
  44. * 20210509edit
  45. * 存入日志
  46. * 20210509 再次修改,应将uplog主表存入放在子过程中
  47. * @todo 上传前获取文件名,以防止重复导入
  48. */
  49. public function uploadexcelinputdata()
  50. {
  51. // 获取表单上传文件
  52. $file = request()->file('file');
  53. $companyinfo=request()->post();
  54. $cid=$companyinfo['companyid'];
  55. //log::info($cid);
  56. $domainpath='https://app.tjzhxx.com/index.php/Uploads/';
  57. //echo $file['name'];
  58. // echo $file->getFilename();
  59. $inputfilename=$_FILES['file']['name'];
  60. // $upinfo['upfilename']=$file['name'];
  61. if(empty($file)) {
  62. $this->error('请选择上传文件');
  63. }
  64. //验证重复上传
  65. $l_p=new paylogic();
  66. $upfile['upfilename']=$inputfilename;
  67. $isfile=$l_p->getinfobyfname($upfile);
  68. if(!empty($isfile)){
  69. // $this->error('文件已上传过');
  70. $r_upload['code']=0;
  71. $r_upload['errmsg']='文件已上传过';
  72. return json_encode($r_upload,320);
  73. }
  74. // 移动到框架应用根目录/public/uploads/ 目录下
  75. $info = $file->move(ROOT_PATH.'public'.DS.'Uploads');
  76. //如果不清楚文件上传的具体键名,可以直接打印$info来查看
  77. //获取文件(文件名),$info->getFilename() ***********不同之处,笔记笔记哦
  78. //获取文件(日期/文件名),$info->getSaveName() **********不同之处,笔记笔记哦
  79. $filename = $info->getSaveName(); //在测试的时候也可以直接打印文件名称来查看
  80. //log::info($filename);
  81. if($filename){
  82. //$this->success('文件上传成功!');
  83. $icount=$this->testexcelinputdb($filename,$inputfilename,$cid);
  84. $imageUrl=$domainpath.$filename;
  85. $r_upload['code']='200';
  86. $r_upload['resultData']['url']=$imageUrl;
  87. $r_upload['resultData']['inputcount']=$icount;
  88. return json_encode($r_upload,320);
  89. }else{
  90. // 上传失败获取错误信息
  91. $this->error($file->getError());
  92. }
  93. }
  94. /*
  95. * 202100502
  96. * edit
  97. * 20210509
  98. * 增加返回总金额
  99. */
  100. private function testexcelinputdb($infilename,$inputfilename,$cid){
  101. vendor('PHPExcel.PHPExcel');
  102. //$phpExcel = new \PHPExcel();
  103. $objRender = \PHPExcel_IOFactory::createReader('Excel2007');
  104. $filename = '.'.'/'.'Uploads'.'/'.$infilename;
  105. $ExcelObj = $objRender->load($filename);
  106. $ExcelObj->setActiveSheetIndex(0);
  107. $l_p=new paylogic();
  108. $plist=array();
  109. $i=2;
  110. $input_arr=array();
  111. $sum_input=0;
  112. $sum_record=0;
  113. $upinfo=array();
  114. $upinfo['upfilename']=$inputfilename;
  115. $upinfo['updatetime']=date('Y-m-d H:i:s');
  116. $upinfo['companyid']=$cid;
  117. //log::info($upinfo);
  118. // $inputmoney=$ExcelObj->getActiveSheet()->getCell("H".$i)->getValue();
  119. $inputsfzid=$ExcelObj->getActiveSheet()->getCell("F".$i)->getValue();
  120. // log::info($inputsfzid);
  121. while($inputsfzid>''){
  122. $paydetail=array();
  123. $paydetail['paymoney']=$ExcelObj->getActiveSheet()->getCell("H".$i)->getValue();
  124. $paydetail['sfzid']=$ExcelObj->getActiveSheet()->getCell("F".$i)->getValue();
  125. $paydetail['wname']=$ExcelObj->getActiveSheet()->getCell("G".$i)->getValue();
  126. $paydetail['payclass']=$ExcelObj->getActiveSheet()->getCell("E".$i)->getValue();
  127. $daynumber=$ExcelObj->getActiveSheet()->getCell("D".$i)->getValue();
  128. $paydetail['paydate']=gmdate('Y-m-d',($daynumber-25569)*1440*60);
  129. $paydetail['indate']=date('Y-m-d');
  130. //$l_p->savepaydetail($paydetail);
  131. $sum_input+=$paydetail['paymoney'];
  132. $sum_record+=1;
  133. array_push($plist,$paydetail);
  134. $i++;
  135. // $inputmoney=$ExcelObj->getActiveSheet()->getCell("H".$i)->getValue();
  136. $inputsfzid=$ExcelObj->getActiveSheet()->getCell("F".$i)->getValue();
  137. //log::info($paydetail);
  138. };
  139. $upinfo['upcount']=$sum_record;
  140. $upinfo['upsummoney']=$sum_input;
  141. $rid=$l_p->savenewuplog($upinfo);
  142. foreach($plist as &$row){
  143. $row['uplogid']=$rid;
  144. }
  145. $icount=$l_p->savepayredetaillist($plist);
  146. return $icount;
  147. // echo count($plist);
  148. // var_dump($plist);
  149. }
  150. /*
  151. * 20210509
  152. * 请求所有的导入记录
  153. */
  154. public function queryalluplog(){
  155. //预处理奖励数据
  156. $l_p=new paylogic();
  157. $r_list=$l_p->getalluplog();
  158. if (empty($r_list)){
  159. $res_r['code']=0;
  160. $res_r['errmsg']='无导入数据';
  161. }else{
  162. $res_r['code']=200;
  163. $res_r['resultData']=$r_list;
  164. }
  165. return json_encode($res_r,320);
  166. }
  167. /*
  168. * 20230214
  169. * 请求公司的所有的导入记录
  170. */
  171. public function queryalluplogbycid(){
  172. $queryinfo = request() -> param();
  173. //预处理奖励数据
  174. $l_p=new paylogic();
  175. $r_list=$l_p->getuplogbycid($queryinfo);
  176. if (empty($r_list)){
  177. $res_r['code']=0;
  178. $res_r['errmsg']='无导入数据';
  179. }else{
  180. $res_r['code']=200;
  181. $res_r['resultData']=$r_list;
  182. }
  183. return json_encode($res_r,320);
  184. }
  185. }