Retreatlog.php 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. <?php
  2. defined('BASEPATH') OR exit('No direct script access allowed');
  3. class Retreatlog extends Start_Controller {
  4. public function __construct(){
  5. parent::__construct();
  6. $this->load->library('session');
  7. $this->load->model('Model_Retreatlogs','retreatlogs');
  8. }
  9. //定义方法的调用规则 获取URI第二段值
  10. public function _remap($arg,$arg_array)
  11. {
  12. if($arg == 'exceljs')//添加
  13. {
  14. $this->_exceljs();
  15. }
  16. else{
  17. $this->_index();
  18. }
  19. }
  20. private function _index(){
  21. if($this->input->method() == 'post'){
  22. $page = $this->input->post('page',true);
  23. $perpage = $this->input->post('perpage',true);
  24. $number = $this->input->post('number',true);
  25. $timetk = $this->input->post('timetk',true);
  26. $timetj = $this->input->post('timetj',true);
  27. $timetk = strtotime($timetk);
  28. $timetj = strtotime($timetj);
  29. $where = " tk_time >= {$timetk} and tk_time <= {$timetj} ";
  30. if($number){
  31. $where .= " and number = '{$number}' ";
  32. }
  33. //数据排序
  34. $order_str = "id desc";
  35. if(empty($page))
  36. {
  37. $start = 0;
  38. $perpage = 1;
  39. }
  40. else
  41. {
  42. $start = ($page - 1)*$perpage;
  43. }
  44. $info_list = $this->retreatlogs->find_all($where,'id,number,ck_time,tk_time,cz_time,ck_goods',$order_str,$start,$perpage);
  45. foreach($info_list as $k => $v){
  46. $json_arr = json_decode($v['ck_goods'],true);
  47. $fpadata_arr = explode(";", $json_arr['fpdata']);
  48. $tmp_str = '';
  49. foreach($fpadata_arr as $key => $value){
  50. $tmp_arr = explode("|", $value);
  51. if(isset($tmp_arr[1])){
  52. $tmp_str.= $tmp_arr[1].' ';
  53. if(isset($tmp_arr[2])){
  54. $tmp_str.= " * ".$tmp_arr[2].'<br/>';
  55. }
  56. }
  57. }
  58. $info_list[$k]['ck_time'] = date('Y-m-d H:i:s',$v['ck_time']);
  59. $info_list[$k]['tk_time'] = date('Y-m-d H:i:s',$v['tk_time']);
  60. $info_list[$k]['cz_time'] = date('Y-m-d H:i:s',$v['cz_time']);
  61. $info_list[$k]['ck_goods'] = $tmp_str;
  62. }
  63. $total = $this->retreatlogs->find_count($where);
  64. $pagenum = ceil($total/$perpage);
  65. $over = $total-($start+$perpage);
  66. $rows = array('total'=>$total,'over'=>$over,'pagenum'=>$pagenum,'rows'=>($info_list));
  67. echo json_encode($rows);exit;
  68. }else{
  69. $this->_Template('retreatlog',$this->data);
  70. }
  71. }
  72. private function _exceljs(){
  73. $number = $this->input->get('number',true);
  74. $timetk = $this->input->get('timetk',true);
  75. $timetj = $this->input->get('timetj',true);
  76. $timetk = strtotime($timetk);
  77. $timetj = strtotime($timetj);
  78. $where = "tk_time >= {$timetk} and tk_time <= {$timetj}";
  79. if($number){
  80. $where .= " and number = '{$number}' ";
  81. }
  82. $order_str = "id desc";
  83. $info_list = $this->retreatlogs->find_all($where,'id,number,ck_time,tk_time,cz_time,ck_goods',$order_str);
  84. foreach($info_list as $k => $v){
  85. $json_arr = json_decode($v['ck_goods'],true);
  86. $fpadata_arr = explode(";", $json_arr['fpdata']);
  87. $tmp_str = '';
  88. foreach($fpadata_arr as $key => $value){
  89. $tmp_arr = explode("|", $value);
  90. if(isset($tmp_arr[1])){
  91. $tmp_str.= $tmp_arr[1].' ';
  92. if(isset($tmp_arr[2])){
  93. $tmp_str.= " * ".$tmp_arr[2].'<br/>';
  94. }
  95. }
  96. }
  97. $tmp_str = trim($tmp_str,'<br/>');
  98. $info_list[$k]['ck_time'] =empty($v['ck_time'])? '' : date('Y-m-d H:i:s',$v['ck_time']);
  99. $info_list[$k]['tk_time'] = empty($v['tk_time'])? '' : date('Y-m-d H:i:s',$v['tk_time']);
  100. $info_list[$k]['cz_time'] = empty($v['cz_time'])? '' : date('Y-m-d H:i:s',$v['cz_time']);
  101. $info_list[$k]['ck_goods'] = $tmp_str;
  102. }
  103. //生成excel
  104. $filename = date("Y-m-d")."退库日志记录.xls";
  105. $str = "<html xmlns:x=\"urn:schemas-microsoft-com:office:excel\">
  106. <head>
  107. <!--[if gte mso 9]><xml>
  108. <x:ExcelWorkbook>
  109. <x:ExcelWorksheets>
  110. <x:ExcelWorksheet>
  111. <x:Name>EXCEL</x:Name>
  112. <x:WorksheetOptions>
  113. <x:Print>
  114. <x:ValidPrinterInfo />
  115. </x:Print>
  116. </x:WorksheetOptions>
  117. </x:ExcelWorksheet>
  118. </x:ExcelWorksheets>
  119. </x:ExcelWorkbook>
  120. </xml>
  121. <![endif]-->
  122. </head><body>";
  123. $str .= "<table border=1 style='font-family: Microsoft Yahei;font-size: 13px;'>";
  124. $str .= "<tr><td>订单编号</td><td>出库时间</td><td>退库时间</td><td>重置时间</td><td>货品信息</td></tr>";
  125. foreach ($info_list as $key=>$value)
  126. {
  127. $str .= "<tr>";
  128. $str .= "<td>". $value['number']. "</td>";
  129. $str .= "<td>". $value['ck_time']. "</td>";
  130. $str .= "<td>". $value['tk_time']. "</td>";
  131. $str .= "<td>". $value['cz_time']. "</td>";
  132. $str .= "<td>". $value['ck_goods']. "</td>";
  133. $str .= "</tr>";
  134. }
  135. $str .= "</table></body></html>";
  136. header( "Content-Type: application/vnd.ms-excel; name='excel'" );
  137. header( "Content-type: application/octet-stream" );
  138. header( "Content-Disposition: attachment; filename=".$filename );
  139. header( "Cache-Control: must-revalidate, post-check=0, pre-check=0" );
  140. header( "Pragma: no-cache" );
  141. header( "Expires: 0" );
  142. exit($str);
  143. }
  144. }