ExportController.class.php 50 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225
  1. <?php
  2. namespace Admin\Controller;
  3. use Think\Page;
  4. class ExportController extends AddonController
  5. {
  6. /*导出列表*/
  7. public function index(){
  8. $this->display('index');
  9. }
  10. /*获取需要导出大件标签*/
  11. public function exportDetail(){
  12. $field="product_name";
  13. if($_SESSION['ly_admin_']['user_auth']['uid']==1){
  14. $productlist = M('qcode_product')->field($field)->where('id!=0')->select();
  15. $user_list = array();
  16. $user_list[0] = ['id'=>0,'nickname'=>'全部'];
  17. $user_list_1 = M('admin_user')
  18. ->alias('a')
  19. ->join('qr_admin_access access on a.id = access.uid')
  20. ->field('a.id,a.nickname')
  21. ->where('a.status = 1 and (access.group = 4 or access.group = 1)')
  22. ->select();
  23. $user_list = array_merge($user_list,$user_list_1);
  24. }else{
  25. $product_id = M('admin_user')->where('id = '.$_SESSION['ly_admin_']['user_auth']['uid'])->getField('product_id');
  26. $productlist = [];
  27. if(!empty($product_id)){
  28. $productlist = M('qcode_product')->where('id in ('.$product_id.')')->select();
  29. }
  30. $user_list = array();
  31. $user_list[0] = ['id'=>$_SESSION['ly_admin_']['user_auth']['uid'],'nickname'=>$_SESSION['ly_admin_']['user_auth']['nickname']];
  32. }
  33. $this->assign('productlist',$productlist);
  34. $this->assign('userlist',$user_list);
  35. $this->display('detail');
  36. }
  37. /*获取导出列表*/
  38. public function exportExcel(){
  39. $field="product_name";
  40. if($_SESSION['ly_admin_']['user_auth']['uid']==1){
  41. $productlist = M('qcode_product')->field($field)->where('id!=0')->select();
  42. $user_list = array();
  43. $user_list[0] = ['id'=>0,'nickname'=>'全部'];
  44. $user_list_1 = M('admin_user')
  45. ->alias('a')
  46. ->join('qr_admin_access access on a.id = access.uid')
  47. ->field('a.id,a.nickname')
  48. ->where('a.status = 1 and (access.group = 4 or access.group = 1)')
  49. ->select();
  50. $user_list = array_merge($user_list,$user_list_1);
  51. }else{
  52. $product_id = M('admin_user')->where('id = '.$_SESSION['ly_admin_']['user_auth']['uid'])->getField('product_id');
  53. $productlist = [];
  54. if(!empty($product_id)){
  55. $productlist = M('qcode_product')->where('id in ('.$product_id.')')->select();
  56. }
  57. $user_list = array();
  58. $user_list[0] = ['id'=>$_SESSION['ly_admin_']['user_auth']['uid'],'nickname'=>$_SESSION['ly_admin_']['user_auth']['nickname']];
  59. }
  60. $this->assign('productlist',$productlist);
  61. $this->assign('userlist',$user_list);
  62. $this->display('excel');
  63. }
  64. /*此方法暂时搁置*/
  65. public function exportBach(){
  66. $field="product_name";
  67. if($_SESSION['ly_admin_']['user_auth']['uid']==1){
  68. $productlist = M('qcode_product')->field($field)->where('id!=0')->select();
  69. $user_list = array();
  70. $user_list[0] = ['id'=>0,'nickname'=>'全部'];
  71. $user_list_1 = M('admin_user')
  72. ->alias('a')
  73. ->join('qr_admin_access access on a.id = access.uid')
  74. ->field('a.id,a.nickname')
  75. ->where('a.status = 1 and (access.group = 4 or access.group = 1)')
  76. ->select();
  77. $user_list = array_merge($user_list,$user_list_1);
  78. }else{
  79. $product_id = M('admin_user')->where('id = '.$_SESSION['ly_admin_']['user_auth']['uid'])->getField('product_id');
  80. $productlist = [];
  81. if(!empty($product_id)){
  82. $productlist = M('qcode_product')->where('id in ('.$product_id.')')->select();
  83. }
  84. $user_list = array();
  85. $user_list[0] = ['id'=>$_SESSION['ly_admin_']['user_auth']['uid'],'nickname'=>$_SESSION['ly_admin_']['user_auth']['nickname']];
  86. }
  87. $this->assign('productlist',$productlist);
  88. $this->assign('userlist',$user_list);
  89. $this->display('bach');
  90. }
  91. /*获取大件详情*/
  92. public function getBigData(){
  93. /*批次有正常和删除状态,0为未删除,1为已删除;大件0为未删除,1为已删除*/
  94. $session_config=I('session.ly_admin_');//获取登陆的session值
  95. $where = [];
  96. if($_POST['sysCdNm']){//有搜索产品名称
  97. $where['a.matter_name'] = $_POST['sysCdNm'];
  98. }
  99. if($_POST['startDate']){//有开始打印日期
  100. $statrtime=((int)date('Ymd',(strtotime($_POST['startDate'])))-20000000);
  101. $endtime=((int)date('Ymd',(strtotime($_POST['endDate'])))-20000000);
  102. $where['a.manufacture_date']=array(array('egt',$statrtime),array('elt',$endtime),'AND');
  103. }
  104. if($session_config['user_auth']['uid']==1){
  105. if($_POST['user_name']!=0){
  106. $where['a.userid']=$_POST['user_name'];
  107. }
  108. }else{
  109. $where['a.userid']=$session_config['user_auth']['uid'];
  110. }
  111. if($_POST['bach_num']!=''){
  112. $where['a.bach_num']=array('like','%'.trim($_POST['bach_num']).'%');
  113. }
  114. $where['a.bach_status']=0;
  115. $where['large.l_status']=0;
  116. $BatchList=M('qcode_bach')
  117. ->alias('a')
  118. ->join('qr_qcode_large large on large.bach_id=a.id')
  119. ->field('a.id bach_id,a.matter_name,a.manufacture_date,a.tray_num,a.bach_num,large.code_cp1,large.id large_id,large.code')
  120. ->order($_POST['sort'].' '.$_POST['order'])
  121. ->page($_POST['page'],$_POST['rows'])
  122. ->where($where)
  123. ->select();
  124. $total = M('qcode_bach')->alias('a')
  125. ->join('qr_qcode_large large on large.bach_id=a.id')
  126. ->where($where)
  127. ->count();
  128. /*查询第三个值*/
  129. foreach($BatchList as &$v){
  130. $v['count'] = M('qcode_small')->where('large_id = '.$v['large_id'].' and status = 0')->count();
  131. }
  132. $result = [];
  133. $result['total'] = $total;
  134. $result['rows'] = $BatchList;
  135. $bachlist = json_encode($result);
  136. echo $bachlist;
  137. }
  138. /*获取excel详情*/
  139. public function getExcelData(){
  140. /*批次有正常和删除状态,0为未删除,1为已删除;大件0为未删除,1为已删除*/
  141. $session_config=I('session.ly_admin_');//获取登陆的session值
  142. $where = [];
  143. if($_POST['sysCdNm']){//有搜索产品名称
  144. $where['matter_name'] = $_POST['sysCdNm'];
  145. }
  146. if($_POST['startDate']){//有开始打印日期
  147. $statrtime=strtotime($_POST['startDate']);
  148. $endtime=strtotime($_POST['endDate'])+86400-1;
  149. $where['date']=array(array('egt',$statrtime),array('elt',$endtime),'AND');
  150. }
  151. if($session_config['user_auth']['uid']==1){
  152. if($_POST['user_name']!='全部'){
  153. $where['username']=$_POST['user_name'];
  154. // $where['userid']=$session_config['user_auth']['uid'];
  155. }
  156. }else{
  157. $where['userid']=$session_config['user_auth']['uid'];
  158. // $where['username'] = $session_config['user_auth']['nickname'];
  159. }
  160. $where['status']=$_POST['status'];
  161. $BatchList=M('qcode_export')
  162. ->order($_POST['sort'].' '.$_POST['order'])
  163. ->page($_POST['page'],$_POST['rows'])
  164. ->where($where)
  165. ->select();
  166. $total = M('qcode_export')
  167. ->where($where)
  168. ->count();
  169. $result = [];
  170. $result['total'] = $total;
  171. $result['rows'] = $BatchList;
  172. $excellist = json_encode($result);
  173. echo $excellist;
  174. }
  175. /*获取小件列表*/
  176. public function getSmall(){
  177. $id = $_POST['largeId']!=0?$_POST['largeId']:0;
  178. $result=M('qcode_large')
  179. ->alias('l')
  180. ->join('qr_qcode_small s on s.large_id=l.id')
  181. ->field('s.code,s.code_cp1,s.p_nums,s.status,s.large_id,l.code_cp1 as l_code_sp1')
  182. ->where('l.id = '.$id)
  183. ->select();
  184. echo json_encode($result);
  185. }
  186. /*删除导出列表*/
  187. public function changeExcelData(){
  188. $id = $_POST['id'];
  189. /*查询导出记录*/
  190. $exportExcel = M('qcode_export')->find($id);
  191. /*修改大件的发货状态*/
  192. M()->startTrans();
  193. $update_ret = M('qcode_large')->where('id in ('.$exportExcel['large_str'].')')->setField('l_status',0);
  194. if($update_ret){
  195. //无导出excel
  196. // $return = M('qcode_export')->where('id = '.$id)->setField('status',1);
  197. // if($return){
  198. // M()->commit();
  199. // $this->ajaxReturn(['status'=>1,'msg'=>'删除成功']);
  200. // die;
  201. // }else {
  202. // M()->rollback();
  203. // $this->ajaxReturn(['status' => 0, 'msg' => '系统飞走了,请稍后再试']);
  204. // }
  205. //插入数据库
  206. $return = M('qcode_export')->where('id = '.$id)->setField('status',1);
  207. if($return){
  208. if(strtoupper(substr(PHP_OS,0,3))==='WIN'){
  209. $dir = iconv("utf-8", "gb2312",$exportExcel['file_dir']);
  210. }else{
  211. $dir = $exportExcel['file_dir'];
  212. }
  213. $res = unlink($dir);
  214. if($res){
  215. M()->commit();
  216. $this->ajaxReturn(['status'=>1,'msg'=>'删除成功']);
  217. die;
  218. }else{
  219. M()->rollback();
  220. $this->ajaxReturn(['status' => 0, 'msg' => '系统飞走了,请稍后再试']);
  221. }
  222. }else {
  223. M()->rollback();
  224. $this->ajaxReturn(['status' => 0, 'msg' => '系统飞走了,请稍后再试']);
  225. }
  226. }
  227. }
  228. /*excel导出*/
  229. public function export(){
  230. header("Content-type: text/html; charset=utf-8");
  231. $bach = I('bach_id');
  232. $bach_list = M('qcode_bach')->find($bach);
  233. $manufacture_date = $bach_list['manufacture_date'];
  234. $print_date = $bach_list['print_date'];
  235. $bach_list['manufacture_date'] = $this->getData($bach_list['manufacture_date']);
  236. $bach_list['print_date'] = $this->getData($bach_list['print_date']);
  237. if(empty($bach_list)){
  238. $arr = array('status'=>0,'msg'=>'违法请求,请重新请求');
  239. }else{
  240. $bach_list['data'] = M('qcode_bach')
  241. ->alias('bach')
  242. ->join('qr_qcode_large large ON large.bach_id = bach.id')
  243. ->join('qr_qcode_small small ON small.large_id = large.id')
  244. ->field('large.code lcode,large.code_cp1 lcode_cp1,large.code_cp2 lcode_cp2,small.code scode,small.code_cp1 scode_cp1,small.code_cp2 scode_cp2')
  245. ->where('bach.id = '.$bach.' and small.status = 0')
  246. ->select();
  247. }
  248. $bach_list['count'] = count($bach_list['data']);
  249. $return = $this->excelExport($bach_list);
  250. if($return){
  251. $arr = array('status'=>1,'msg'=>'导出完成','url'=>$return);
  252. }
  253. $this->ajaxReturn($arr);
  254. }
  255. /*获取时间格式*/
  256. public function getData($date){
  257. return '20'.substr($date,0,2).'/'.substr($date,2,2).'/'.substr($date,4,2);
  258. }
  259. /*补0*/
  260. public function addZero($a,$le,$pos='left'){
  261. $str =$a;
  262. $len = substr($a);
  263. $cha = $le-$len;
  264. if($cha>0){
  265. if($pos=='left'){
  266. $str = str_pad($str,$le,"0",STR_PAD_LEFT);
  267. }else{
  268. $str = str_pad($str,$le,"0",STR_PAD_RIGHT);
  269. }
  270. }
  271. return $str;
  272. }
  273. /**
  274. * 支持多批次导出操作
  275. */
  276. // public function newexport(){
  277. // $session_config=I('session.ly_admin_');
  278. //
  279. // $id = substr($_POST['id'],0,-1);
  280. //
  281. // /*检查所有大件的状态*/
  282. //// $return = $this->checkStatus($id);
  283. //// if(!$return){
  284. //// $this->ajaxReturn(['status'=>0,'msg'=>'参数违法,请重新提交']);
  285. //// }
  286. //
  287. // $bach_id_arr = M('qcode_large')
  288. // ->where('l_status = 0 and id IN ('.$id.')')
  289. // ->group(true)
  290. // ->getField('bach_id',true);
  291. //
  292. // for ($i=0; $i<count($bach_id_arr);$i++){
  293. // /*获取基本数据*/
  294. // $res = M('qcode_bach')
  295. // ->field('file_no,order_no,supplier_name,supplier_code,supplier_id,matter_name,matter_no,manufacture_date,print_date,l_reservation,s_reservation,l_flow,s_flow,l_weight,s_weight,larger_num,tray_num,box_num,bach_num')
  296. // ->where('id ='.$bach_id_arr[$i])
  297. // ->find();
  298. //
  299. // $larger_id = M('qcode_large')
  300. // ->where('id in ('.$id.') and bach_id = '.$bach_id_arr[$i])
  301. // ->getField('id',true);
  302. //
  303. // $larger_id_str = implode(',',$larger_id);
  304. //
  305. // $res['larger_num'] = count($larger_id);
  306. // $res['small_num'] = M('qcode_small')->where('large_id in ('.$larger_id_str.')')->count();
  307. //
  308. // //插入数据库
  309. // $add = [];
  310. // if ($res['box_num']!=1){
  311. // $add['num'] = $res['box_num'];
  312. // $add['mater_type'] = 1;
  313. // }else{
  314. // $add['num'] = $res['s_weight'];
  315. // $add['mater_type'] = 2;
  316. // }
  317. // $add['userid'] = $session_config['user_auth']['uid'];
  318. // $add['username'] = $res['supplier_name'];
  319. // $add['matter_name'] = $res['matter_name'];
  320. // $add['matter_no'] = $res['matter_no'];
  321. // $add['large_str'] = $larger_id_str;
  322. // $add['large_num'] = $res['larger_num'];
  323. // $add['small_num'] = $res['small_num'];
  324. // $add['bach_num'] = $res['bach_num'];
  325. // $add['date'] = time();
  326. // $add['file_dir'] = '';
  327. // $add['status'] = 0;
  328. // $data[$i] = $add;
  329. //
  330. // }
  331. // M()->startTrans();
  332. // $update_ret = M('qcode_large')->where('id in ('.$id.')')->setField('l_status',1);
  333. //
  334. //
  335. // if($update_ret){
  336. //
  337. // $return = M('qcode_export')->addAll($data);
  338. //
  339. //
  340. // if($return){
  341. // M()->commit();
  342. //
  343. // $arr = ['status'=>1,'msg'=>'操作成功','url'=>''];
  344. // }else{
  345. // M()->rollback();
  346. // $arr = ['status'=>0,'msg'=>'系统飞走了,请稍后再试'];
  347. // }
  348. // }
  349. // $this->ajaxReturn($arr);
  350. //
  351. // }
  352. /*导出初版本*/
  353. public function export1(){
  354. $id = substr($_POST['id'],0,-1);
  355. $count = $_POST['sum'];
  356. /*检查数量是否正确*/
  357. $return = $this->checkCount($id,$count);
  358. if(!$return){
  359. $this->ajaxReturn(['status'=>0,'msg'=>'导出数量错误,请重新请求']);
  360. }
  361. /*检查所有大件的状态*/
  362. $return = $this->checkStatus($id);
  363. if(!$return){
  364. $this->ajaxReturn(['status'=>0,'msg'=>'参数违法,请重新提交']);
  365. }
  366. /*判断所选择的大件是否同一辅料名称,统一供应商,并且获取基本数据*/
  367. $return = $this->check($id);
  368. if($return['status']==0){
  369. $this->ajaxReturn($return);
  370. }
  371. /*获取大小件绑定的的数据*/
  372. $data = $return['data'];
  373. /*获取大件的重量*/
  374. $data['l_weight'] = $this->sumLarge($id);
  375. $data['small_num'] = $count;
  376. $data['id_str'] = $id;
  377. $data['data'] = M('qcode_large')
  378. ->alias('large')
  379. ->join('qr_qcode_small small ON small.large_id = large.id')
  380. ->field('large.code lcode,large.code_cp1 lcode_cp1,large.code_cp2 lcode_cp2,small.code scode,small.code_cp1 scode_cp1,small.code_cp2 scode_cp2')
  381. ->where('small.large_id in ('.$id.') and small.status = 0')
  382. ->select();
  383. $return = $this->excelExport1($data);
  384. if($return['status']==1){
  385. $arr = array('status'=>1,'msg'=>'导出完成','url'=>$return['msg']);
  386. }else{
  387. $arr = $return;
  388. }
  389. $this->ajaxReturn($arr);
  390. }
  391. /*excel导出方法2*/
  392. // public function export1(){
  393. //
  394. // $session_config=I('session.ly_admin_');
  395. //
  396. // $id = substr($_POST['id'],0,-1);
  397. //
  398. // /*检查所有大件的状态*/
  399. //// $return = $this->checkStatus($id);
  400. //// if(!$return){
  401. //// $this->ajaxReturn(['status'=>0,'msg'=>'参数违法,请重新提交']);
  402. //// }
  403. //
  404. // $bach_id_arr = M('qcode_large')
  405. // ->where('l_status = 0 and id IN ('.$id.')')
  406. // ->group(true)
  407. // ->getField('bach_id',true);
  408. //
  409. // for ($i=0; $i<count($bach_id_arr);$i++){
  410. // /*获取基本数据*/
  411. // $res = M('qcode_bach')
  412. // ->field('file_no,order_no,supplier_name,supplier_code,supplier_id,matter_name,matter_no,manufacture_date,print_date,l_reservation,s_reservation,l_flow,s_flow,l_weight,s_weight,larger_num,tray_num,box_num,bach_num')
  413. // ->where('id ='.$bach_id_arr[$i])
  414. // ->find();
  415. //
  416. // $larger_id = M('qcode_large')
  417. // ->where('id in ('.$id.') and bach_id = '.$bach_id_arr[$i])
  418. // ->getField('id',true);
  419. //
  420. // $larger_id_str = implode(',',$larger_id);
  421. //
  422. // $res['larger_num'] = count($larger_id);
  423. // $res['small_num'] = M('qcode_small')->where('large_id in ('.$larger_id_str.')')->count();
  424. //
  425. // //插入数据库
  426. // $add = [];
  427. // if ($res['box_num']!=1){
  428. // $add['num'] = $res['box_num'];
  429. // $add['mater_type'] = 1;
  430. // }else{
  431. // $add['num'] = $res['s_weight'];
  432. // $add['mater_type'] = 2;
  433. // }
  434. // $add['userid'] = $session_config['user_auth']['uid'];
  435. // $add['username'] = $res['supplier_name'];
  436. // $add['matter_name'] = $res['matter_name'];
  437. // $add['matter_no'] = $res['matter_no'];
  438. // $add['large_str'] = $larger_id_str;
  439. // $add['large_num'] = $res['larger_num'];
  440. // $add['small_num'] = $res['small_num'];
  441. // $add['bach_num'] = $res['bach_num'];
  442. // $add['date'] = time();
  443. // $add['file_dir'] = '';
  444. // $add['status'] = 0;
  445. // $data[$i] = $add;
  446. //
  447. // }
  448. // M()->startTrans();
  449. // $update_ret = M('qcode_large')->where('id in ('.$id.')')->setField('l_status',1);
  450. //
  451. //
  452. // if($update_ret){
  453. //
  454. // $return = M('qcode_export')->addAll($data);
  455. //
  456. //
  457. // if($return){
  458. // M()->commit();
  459. //
  460. // $arr = ['status'=>1,'msg'=>'操作成功','url'=>''];
  461. // }else{
  462. // M()->rollback();
  463. // $arr = ['status'=>0,'msg'=>'系统飞走了,请稍后再试'];
  464. // }
  465. // }
  466. // $this->ajaxReturn($arr);
  467. // }
  468. /*获取发货单页面*/
  469. public function exportFahuo(){
  470. $field="product_name";
  471. if($_SESSION['ly_admin_']['user_auth']['uid']==1){
  472. $productlist = M('qcode_product')->field($field)->where('id!=0')->select();
  473. $user_list = array();
  474. $user_list[0] = ['id'=>0,'nickname'=>'全部'];
  475. $user_list_1 = M('admin_user')
  476. ->alias('a')
  477. ->join('qr_admin_access access on a.id = access.uid')
  478. ->field('a.id,a.nickname')
  479. ->where('a.status = 1 and (access.group = 4 or access.group = 1)')
  480. ->select();
  481. $user_list = array_merge($user_list,$user_list_1);
  482. }else{
  483. $product_id = M('admin_user')->where('id = '.$_SESSION['ly_admin_']['user_auth']['uid'])->getField('product_id');
  484. $productlist = [];
  485. if(!empty($product_id)){
  486. $productlist = M('qcode_product')->where('id in ('.$product_id.')')->select();
  487. }
  488. $user_list = array();
  489. $user_list[0] = ['id'=>$_SESSION['ly_admin_']['user_auth']['uid'],'nickname'=>$_SESSION['ly_admin_']['user_auth']['nickname']];
  490. }
  491. $this->assign('productlist',$productlist);
  492. $this->assign('userlist',$user_list);
  493. $this->display('fahuo');
  494. }
  495. /*得到发货页列表*/
  496. public function getFahuoData(){
  497. /*批次有正常和删除状态,0为未删除,1为已删除;大件0为未删除,1为已删除*/
  498. $session_config=I('session.ly_admin_');//获取登陆的session值
  499. $where = [];
  500. if($_POST['order_number']){//有搜索订单号
  501. $where['order_number'] = $_POST['order_number'];
  502. }
  503. if($_POST['startDate']){//有开始打印日期
  504. $statrtime=strtotime($_POST['startDate']);
  505. $endtime=strtotime($_POST['endDate'])+86400-1;
  506. $where['create_time']=array(array('egt',$statrtime),array('elt',$endtime),'AND');
  507. }
  508. if($session_config['user_auth']['uid']==1){
  509. if($_POST['user_name']!=0){
  510. $where['userid']=$_POST['user_name'];
  511. }
  512. }else{
  513. $where['userid']=$session_config['user_auth']['uid'];
  514. }
  515. $where['status']=$_POST['status'];
  516. $goodsList=M('goods')
  517. ->order($_POST['sort'].' '.$_POST['order'])
  518. ->page($_POST['page'],$_POST['rows'])
  519. ->where($where)
  520. ->select();
  521. $total = M('goods')
  522. ->where($where)
  523. ->count();
  524. $result = [];
  525. $result['total'] = $total;
  526. $result['rows'] = $goodsList;
  527. $fahuollist = json_encode($result);
  528. echo $fahuollist;
  529. }
  530. /*删除发货列表*/
  531. public function changeFahuoData(){
  532. $id = $_POST['id'];
  533. /*查询导出记录*/
  534. $exportExcel = M('goods')->find($id);
  535. /*修改大件的发货状态*/
  536. M()->startTrans();
  537. $update_ret = M('qcode_export')->where('id in ('.$exportExcel['export_ids'].')')->setField('status',0);
  538. if($update_ret){
  539. //插入数据库
  540. $return = M('goods')->where('id = '.$id)->setField('status',1);
  541. if($return){
  542. M()->commit();
  543. $this->ajaxReturn(['status'=>1,'msg'=>'删除成功']);
  544. die;
  545. }else {
  546. M()->rollback();
  547. $this->ajaxReturn(['status' => 0, 'msg' => '系统飞走了,请稍后再试']);
  548. }
  549. }
  550. }
  551. //发货申请
  552. public function addFahuo(){
  553. /*批次有正常和删除状态,0为未删除,1为已删除;大件0为未删除,1为已删除*/
  554. $id = substr($_POST['id'],0,-1);
  555. $session_config=I('session.ly_admin_');//获取登陆的session值
  556. $return = $this->checkExportStatus($id);
  557. if(!$return){
  558. $this->ajaxReturn(['status'=>0,'msg'=>'参数违法,请重新提交']);
  559. }
  560. /*修改发货状态*/
  561. M()->startTrans();
  562. $update_ret = M('qcode_export')->where('id in ('.$id.')')->setField('status',2);
  563. if($update_ret) {
  564. $export = M('qcode_export')->where('id in ('.$id.')')->select();
  565. $daterq = date("Ymd",time());
  566. //插入数据库
  567. $add = [];
  568. $add['userid'] = $session_config['user_auth']['uid'];
  569. $add['supplier_id'] = $add['userid'];
  570. $add['order_number'] = $_POST['order_num'];
  571. $add['deliveryman'] = $_POST['deliveryman'];
  572. $add['plate_number'] = $_POST['plate_number'];
  573. $add['shr_phone'] = $_POST['shr_phone'];
  574. $add['note'] = $_POST['note'];
  575. $add['supplier_name'] = $export[0]['username'];
  576. $add['export_ids'] = $id;
  577. $add['shdh'] = substr($daterq,2,2).' '.substr($daterq,2,6).mt_rand(1000,9999);
  578. $add['create_time'] = time();
  579. $add['qrcode_add'] = $this->qrcode($add['shdh']);
  580. $return = M('goods')->data($add)->add();
  581. if ($return) {
  582. M()->commit();
  583. } else {
  584. M()->rollback();
  585. $this->ajaxReturn(['status' => 0, 'msg' => '系统飞走了,请稍后再试']);
  586. }
  587. }
  588. $arr = array('status'=>1,'msg'=>'添加完成','url'=>'index.php?s=/Admin/Export/exportFahuo.html');
  589. $this->ajaxReturn($arr);
  590. }
  591. /*excel导出方法2*/
  592. public function export2(){
  593. $id = substr($_POST['id'],0,-1);
  594. $count = $_POST['sum'];
  595. /*检查数量是否正确*/
  596. $return = $this->checkCount($id,$count);
  597. if(!$return){
  598. $this->ajaxReturn(['status'=>0,'msg'=>'导出数量错误,请重新请求']);
  599. }
  600. /*检查所有大件的状态*/
  601. $return = $this->checkStatus($id);
  602. if(!$return){
  603. $this->ajaxReturn(['status'=>0,'msg'=>'参数违法,请重新提交']);
  604. }
  605. /*判断所选择的大件是否同一辅料名称,统一供应商,并且获取基本数据*/
  606. $return = $this->check($id);
  607. if($return['status']==0){
  608. $this->ajaxReturn($return);
  609. }
  610. /*获取大小件绑定的的数据*/
  611. $data = $return['data'];
  612. /*获取大件的重量*/
  613. $data['l_weight'] = $this->sumLarge($id);
  614. $data['small_num'] = $count;
  615. $data['id_str'] = $id;
  616. $data['data'] = M('qcode_large')
  617. ->alias('large')
  618. ->join('qr_qcode_small small ON small.large_id = large.id')
  619. ->field('large.code lcode,large.code_cp1 lcode_cp1,large.code_cp2 lcode_cp2,small.code scode,small.code_cp1 scode_cp1,small.code_cp2 scode_cp2')
  620. ->where('small.large_id in ('.$id.') and small.status = 0')
  621. ->select();
  622. $return = $this->excelExport1($data);
  623. if($return['status']==1){
  624. $arr = array('status'=>1,'msg'=>'导出完成','url'=>$return['msg']);
  625. }else{
  626. $arr = $return;
  627. }
  628. $this->ajaxReturn($arr);
  629. }
  630. /*检查数量 status有两种状态,0为正常,1为已删除*/
  631. public function checkCount($id,$count){
  632. $total = M('qcode_small')
  633. ->where('status = 0 and large_id IN ('.$id.')')
  634. ->count();
  635. if($total==$count){
  636. return true;
  637. }else{
  638. return false;
  639. }
  640. }
  641. /*检查状态*/
  642. public function checkStatus($id){
  643. $return = M('qcode_large')
  644. ->where('l_status = 1 and id IN ('.$id.')')
  645. ->count();
  646. if($return==0){
  647. return true;
  648. }else{
  649. return false;
  650. }
  651. }
  652. /*检查导出状态*/
  653. public function checkExportStatus($id){
  654. $return = M('qcode_export')
  655. ->where('status > 0 and id IN ('.$id.')')
  656. ->count();
  657. if($return==0){
  658. return true;
  659. }else{
  660. return false;
  661. }
  662. }
  663. /*其他数据验证,以及数据获取*/
  664. public function check($id){
  665. header("Content-type: text/html; charset=utf-8");
  666. $bach_return = M('qcode_large')
  667. ->where('l_status = 0 and id IN ('.$id.')')
  668. ->distinct(true)
  669. ->order("bach_id desc")
  670. ->getField('bach_id',true);
  671. $bach_str = implode(',',$bach_return);
  672. /*验证辅料名称是否为1*/
  673. $ret = M('qcode_bach')
  674. ->where('id IN ('.$bach_str.')')
  675. ->distinct(true)
  676. ->getField('matter_name',true);
  677. if(count($ret)>1){
  678. return ['status'=>0,'msg'=>'仅能选择一个辅料名称'];
  679. }
  680. /*验证供应商名称是否唯一*/
  681. $supplier= M('qcode_bach')
  682. ->where('id IN ('.$bach_str.')')
  683. ->distinct(true)
  684. ->getField('supplier_name',true);
  685. if(count($supplier)>1){
  686. return ['status'=>0,'msg'=>'仅能选择一个供应商'];
  687. }
  688. // if(count($bach_return)!=1){
  689. // return ['status'=>0,'msg'=>'仅能选择一个批次'];
  690. // }
  691. /*获取基本数据*/
  692. $data = M('qcode_bach')
  693. ->field('file_no,order_no,supplier_name,supplier_code,supplier_id,matter_name,matter_no,manufacture_date,print_date,l_reservation,s_reservation,l_flow,s_flow,l_weight,s_weight,larger_num,tray_num,box_num,bach_num')
  694. ->where('id ='.$bach_return['0'])
  695. ->find();
  696. $data['s_weight'] = $data['s_weight']/1000;
  697. if(count($bach_return)!=1){
  698. //
  699. $data['l_reservation'] = 0;
  700. $data['s_reservation'] = 0;
  701. // $data['l_flow'] = 0;
  702. // $data['s_flow'] = 0;
  703. // $data['s_weight'] = 0;
  704. // $data['tray_num'] = 0;
  705. }
  706. $data['larger_num'] = count(explode(',',$id));
  707. $data['l_weight'] *= $data['larger_num'];
  708. /*日期转化*/
  709. $data['manufacture_date'] = $this->getData( $data['manufacture_date']);
  710. $data['print_date'] = $this->getData($data['print_date']);
  711. return ['status'=>1,'data'=>$data];
  712. }
  713. /*计算大件重量*/
  714. public function sumLarge($id){
  715. $l_count = M('qcode_large')
  716. ->where('l_status = 0 and id IN ('.$id.')')
  717. ->sum('l_weight');
  718. return $l_count/100;
  719. }
  720. /**
  721. * 客户导出 生成excel
  722. *
  723. **/
  724. public function excelExport($data = false)
  725. {
  726. // $data['l_weight'] = $data['l_weight']/100;
  727. /*$fileName = iconv("utf-8", "gb2312", 'Data/'.date('Ymd', time()).$data['count'].$data['id'].'.xls');
  728. if(file_exists($fileName)){
  729. return $fileName;
  730. }else {*/
  731. //Vendor('Excel.Excel');//加载生成二维码的核心类
  732. $session_config=I('session.ly_admin_');
  733. $info=M('admin_user')->where('id='.$session_config['user_auth']['uid'])->field('nickname,username')->find();
  734. Vendor('Excel.PHPExcel');
  735. $objPHPExcel = new \PHPExcel();
  736. $fileName = iconv("utf-8", "gb2312", 'Data/'.$info['username'].date('Ymd', time()).$data['count'].$data['id'].'.xls');
  737. $objProps = $objPHPExcel->getProperties();
  738. /*设置列宽*/
  739. $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(80);
  740. $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(30);
  741. $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(80);
  742. $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(15);
  743. /*设置列宽结束*/
  744. /*设置文本格式*/
  745. $objPHPExcel->getActiveSheet()->getStyle('B')->getNumberFormat()->setFormatCode("@");
  746. /*设置文本格式*/
  747. /*第1~11 A行数据*/
  748. $colum = 'A';
  749. $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '1', '文件流水号');
  750. $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '2', '订单号');
  751. $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '3', '供应商');
  752. $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '4', '供应商代码');
  753. $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '5', '物料名称');
  754. $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '6', '物料代码');
  755. $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '7', '生产日期');
  756. $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '8', '打码日期');
  757. $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '9', '大件数量');
  758. $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '10', '托盘小件数量');
  759. $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '11', '小件数量');
  760. /*第1~11行A数据结束*/
  761. $key = ord("A");
  762. $key++;
  763. $colum = chr($key);
  764. /*第1~11 B行数据*/
  765. $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '1', $data['file_no']);
  766. $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '2', $data['order_no']);
  767. $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '3', $data['supplier_name']);
  768. $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '4', "'". $data['supplier_code']);
  769. $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '5', $data['matter_name']);
  770. $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '6', "'". $data['matter_no']);
  771. $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '7', $data['manufacture_date']);
  772. $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '8', $data['print_date']);
  773. $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '9', $data['larger_num']);
  774. $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '10', $data['tray_num']);
  775. $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '11', $data['small_num']);
  776. /*第1~11行B数据结束*/
  777. /*第3-14行数据 开始*/
  778. $colum = 'C';
  779. $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '3', '大件预留码:');
  780. $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '4', $data['l_reservation']);
  781. $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '5', '小件预留码:');
  782. $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '6', $data['s_reservation']);
  783. $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '7', '大件开始流水号:');
  784. $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '8', $data['l_flow']);
  785. $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '9', '小件开始流水号:');
  786. $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '10', $data['s_flow']);
  787. $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '11', '大件重量(KG)');
  788. $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '12', $data['l_weight']);
  789. $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '13', '小件重量(KG)');
  790. $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '14', $data['s_weight']);
  791. /*第3-14行数据 结束*/
  792. /*第8行数据 开始*/
  793. $objPHPExcel->setActiveSheetIndex(0)->setCellValue('A15', '大件二维码');
  794. $objPHPExcel->setActiveSheetIndex(0)->setCellValue('B15', '大件条码(预留)');
  795. $objPHPExcel->setActiveSheetIndex(0)->setCellValue('C15', '小件二维码');
  796. $objPHPExcel->setActiveSheetIndex(0)->setCellValue('D15', '小件条码(预留)');
  797. /*第8行数据 结束*/
  798. foreach ($data['data'] as $i => $v) {
  799. $j = $i + 16;
  800. $objPHPExcel->setActiveSheetIndex(0)->setCellValue('A' . $j, "'" . $v['lcode']);
  801. //$objPHPExcel->setActiveSheetIndex(0)->setCellValue('B'.$j, '大件条码(预留)');
  802. $objPHPExcel->setActiveSheetIndex(0)->setCellValue('C' . $j, "'" . $v['scode']);
  803. //$objPHPExcel->setActiveSheetIndex(0)->setCellValue('D'.$j, '小件条码(预留)');
  804. }
  805. //$fileName = iconv("utf-8", "gb2312", 'Data/' . date('Y-m-d_', time()) . $data['id'] . '_.xls');
  806. //$saveName = iconv("utf-8", "gb2312", time() . '.xls');
  807. /*header('Content-Type: application/vnd.ms-excel');
  808. header("Content-Disposition: attachment;filename=\"$saveName\"");
  809. header('Cache-Control: max-age=0');*/
  810. /*$objWriter->save('php://output');
  811. return true;*/
  812. $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
  813. $objWriter->save($fileName);
  814. return $fileName;
  815. }
  816. /**
  817. * 客户导出 生成excel方法2
  818. *
  819. **/
  820. // public function excelExport1($data = false)
  821. // {
  822. //
  823. // $session_config=I('session.ly_admin_');
  824. // /*修改大件的发货状态*/
  825. // M()->startTrans();
  826. // $update_ret = M('qcode_large')->where('id in ('.$data['id_str'].')')->setField('l_status',1);
  827. // if($update_ret){
  828. // //插入数据库
  829. // $add = [];
  830. // if ($data['box_num']!=1){
  831. // $add['num'] = $data['box_num'];
  832. // $add['mater_type'] = 1;
  833. // }else{
  834. // $add['num'] = $data['s_weight'];
  835. // $add['mater_type'] = 2;
  836. // }
  837. // $add['userid'] = $session_config['user_auth']['uid'];
  838. // $add['username'] = $data['supplier_name'];
  839. // $add['matter_name'] = $data['matter_name'];
  840. // $add['matter_no'] = $data['matter_no'];
  841. // $add['large_str'] = $data['id_str'];
  842. // $add['large_num'] = $data['larger_num'];
  843. // $add['small_num'] = $data['small_num'];
  844. // $add['bach_num'] = $data['bach_num'];
  845. // $add['date'] = time();
  846. // $add['file_dir'] = '';
  847. // $add['status'] = 0;
  848. // $return = M('qcode_export')->data($add)->add();
  849. // if($return){
  850. // M()->commit();
  851. // }else{
  852. // M()->rollback();
  853. // return ['status'=>0,'msg'=>'系统飞走了,请稍后再试'];
  854. // }
  855. // }
  856. //
  857. // return ['status'=>1,'msg'=>'添加成功'];
  858. //
  859. // }
  860. // /**
  861. // * 客户导出 生成excel方法2
  862. // *
  863. // **/
  864. public function excelExport1($data = false)
  865. {
  866. // $data['l_weight'] = $data['l_weight']/100;
  867. /*$fileName = iconv("utf-8", "gb2312", 'Data/'.date('Ymd', time()).$data['count'].$data['id'].'.xls');
  868. if(file_exists($fileName)){
  869. return $fileName;
  870. }else {*/
  871. //Vendor('Excel.Excel');//加载生成二维码的核心类
  872. $session_config=I('session.ly_admin_');
  873. $info=M('admin_user')->where('id='.$session_config['user_auth']['uid'])->field('nickname,username')->find();
  874. Vendor('Excel.PHPExcel');
  875. $objPHPExcel = new \PHPExcel();
  876. // $fileName = 'Runtime/Data/'.date('Ymd', time()).rand(100,999).'_'.$info['nickname'].'_'.$data['matter_name'].'_'.$data['small_num'].'.xls';
  877. $fileName = 'Runtime/Data/'.date('Ymd', time()).rand(100,999).'_'.$info['nickname'].'_'.str_replace('/','_',$data['matter_name']).'_'.$data['small_num'].'.xls';
  878. /*修改大件的发货状态*/
  879. M()->startTrans();
  880. $update_ret = M('qcode_large')->where('id in ('.$data['id_str'].')')->setField('l_status',1);
  881. if($update_ret){
  882. //插入数据库
  883. $add = [];
  884. if ($data['box_num']!=1){
  885. $add['num'] = $data['box_num'];
  886. $add['mater_type'] = 1;
  887. }else{
  888. $add['num'] = $data['s_weight'];
  889. $add['mater_type'] = 2;
  890. }
  891. $add['userid'] = $session_config['user_auth']['uid'];
  892. $add['username'] = $data['supplier_name'];
  893. $add['matter_name'] = $data['matter_name'];
  894. $add['matter_no'] = $data['matter_no'];
  895. $add['large_str'] = $data['id_str'];
  896. $add['large_num'] = $data['larger_num'];
  897. $add['small_num'] = $data['small_num'];
  898. $add['bach_num'] = $data['bach_num'];
  899. $add['date'] = time();
  900. $add['file_dir'] = $fileName;
  901. $add['status'] = 0;
  902. $return = M('qcode_export')->data($add)->add();
  903. if($return){
  904. M()->commit();
  905. }else{
  906. M()->rollback();
  907. return ['status'=>0,'msg'=>'系统飞走了,请稍后再试'];
  908. }
  909. }
  910. $objProps = $objPHPExcel->getProperties();
  911. /*设置列宽*/
  912. $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(80);
  913. $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(30);
  914. $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(80);
  915. $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(15);
  916. /*设置列宽结束*/
  917. /*设置文本格式*/
  918. $objPHPExcel->getActiveSheet()->getStyle('B')->getNumberFormat()->setFormatCode("@");
  919. /*设置文本格式*/
  920. /*第1~11 A行数据*/
  921. $colum = 'A';
  922. $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '1', '文件流水号');
  923. $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '2', '订单号');
  924. $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '3', '供应商');
  925. $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '4', '供应商代码');
  926. $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '5', '物料名称');
  927. $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '6', '物料代码');
  928. $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '7', '生产日期');
  929. $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '8', '打码日期');
  930. $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '9', '大件数量');
  931. $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '10', '托盘小件数量');
  932. $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '11', '小件总数量');
  933. /*第1~11行A数据结束*/
  934. $key = ord("A");
  935. $key++;
  936. $colum = chr($key);
  937. /*第1~11 B行数据*/
  938. $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '1', $data['file_no']);
  939. $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '2', $data['order_no']);
  940. $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '3', $data['supplier_name']);
  941. $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '4', "'". $data['supplier_code']);
  942. $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '5', $data['matter_name']);
  943. $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '6', "'". $data['matter_no']);
  944. $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '7', $data['manufacture_date']);
  945. $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '8', $data['print_date']);
  946. $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '9', $data['larger_num']);
  947. $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '10', $data['tray_num']);
  948. $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '11', $data['small_num']);
  949. /*第1~11行B数据结束*/
  950. /*第3-14行数据 开始*/
  951. $colum = 'C';
  952. $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '3', '大件预留码:');
  953. $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '4', $data['l_reservation']);
  954. $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '5', '小件预留码:');
  955. $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '6', $data['s_reservation']);
  956. $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '7', '大件开始流水号:');
  957. $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '8', $data['l_flow']);
  958. $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '9', '小件开始流水号:');
  959. $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '10', $data['s_flow']);
  960. $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '11', '大件重量(KG)');
  961. $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '12', $data['l_weight']);
  962. $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '13', '小件重量(KG)');
  963. $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '14', $data['s_weight']);
  964. /*第3-14行数据 结束*/
  965. /*第8行数据 开始*/
  966. $objPHPExcel->setActiveSheetIndex(0)->setCellValue('A15', '大件二维码');
  967. $objPHPExcel->setActiveSheetIndex(0)->setCellValue('B15', '大件条码(预留)');
  968. $objPHPExcel->setActiveSheetIndex(0)->setCellValue('C15', '小件二维码');
  969. $objPHPExcel->setActiveSheetIndex(0)->setCellValue('D15', '小件条码(预留)');
  970. /*第8行数据 结束*/
  971. foreach ($data['data'] as $i => $v) {
  972. $j = $i + 16;
  973. $objPHPExcel->setActiveSheetIndex(0)->setCellValue('A' . $j, "'" . $v['lcode']);
  974. //$objPHPExcel->setActiveSheetIndex(0)->setCellValue('B'.$j, '大件条码(预留)');
  975. $objPHPExcel->setActiveSheetIndex(0)->setCellValue('C' . $j, "'" . $v['scode']);
  976. //$objPHPExcel->setActiveSheetIndex(0)->setCellValue('D'.$j, '小件条码(预留)');
  977. }
  978. if(strtoupper(substr(PHP_OS,0,3))==='WIN'){
  979. $saveName = iconv("utf-8", "gb2312",$fileName);
  980. }else{
  981. $saveName = $fileName;
  982. }
  983. $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
  984. $objWriter->save($saveName);
  985. return ['status'=>1,'msg'=>$fileName];
  986. }
  987. //打印发货单
  988. public function print1($id){
  989. $model = new \Think\Model();
  990. $data = M('goods')->find($id);
  991. $export_ids = explode(',',$data['export_ids']);
  992. $arr = [];
  993. foreach($export_ids as $v){
  994. $arr[] = M('qcode_export')->find($v);
  995. }
  996. $address = $model->query("select u.company_address as address from qr_goods g left join qr_admin_user u on u.id=g.supplier_id where g.id=".$id)[0]['address'];
  997. $data['address']=$address;
  998. $data['arr']=$arr;
  999. $data['count']=count($arr);
  1000. $data['shrq_date']=date("Y-m-d",$data['create_time']);
  1001. if (empty($data['qrcode_add'])){
  1002. $data['qrcode_add'] = $this->qrcode($data['shdh']);
  1003. M('goods')->where('id='.$id)->setField('qrcode_add',$data['qrcode_add']);
  1004. }
  1005. echo json_encode($data);
  1006. }
  1007. public function qrcode($url)//二维码生成类
  1008. {
  1009. $level=2;
  1010. $size=5;
  1011. Vendor('phpqrcode.phpqrcode');//加载生成二维码的核心类
  1012. $errorCorrectionLevel =intval($level) ;//容错级别
  1013. $matrixPointSize = intval($size);//生成图片大小
  1014. //生成二维码图片
  1015. $object = new \QRcode();
  1016. //打开缓冲区
  1017. ob_start();
  1018. $object->png($url, false, $errorCorrectionLevel, $matrixPointSize, 2);
  1019. //这里就是把生成的图片流从缓冲区保存到内存对象上,使用base64_encode变成编码字符串,通过json返回给页面。
  1020. $imageString = base64_encode(ob_get_contents());
  1021. //关闭缓冲区
  1022. ob_end_clean();
  1023. //把生成的base64字符串返回给前端
  1024. $data = array(
  1025. 'labelcode'=>$url,
  1026. 'code'=>200,
  1027. 'data'=>$imageString,
  1028. 'product_code'=>$url
  1029. );
  1030. return 'data:image/png;base64,'.$imageString;
  1031. // $this->ajaxReturn($data);
  1032. }
  1033. public function qrcode_up($qrcode_add,$ids){
  1034. $res = M('goods')->where('id='.$ids)->setField('qrcode_add',$qrcode_add);
  1035. return $res;
  1036. }
  1037. public function shouhuo(){
  1038. $this->display('shouhuo');
  1039. }
  1040. public function exportShouhuo(){
  1041. $field="product_name";
  1042. $productlist = M('qcode_product')->field($field)->where('id!=0')->select();
  1043. $user_list = array();
  1044. $user_list[0] = ['id'=>0,'nickname'=>'全部'];
  1045. $user_list_1 = M('admin_user')
  1046. ->alias('a')
  1047. ->join('qr_admin_access access on a.id = access.uid')
  1048. ->field('a.id,a.nickname')
  1049. ->where('a.status = 1 and (access.group = 4 or access.group = 1 or access.group = 3)')
  1050. ->select();
  1051. $user_list = array_merge($user_list,$user_list_1);
  1052. // if($_SESSION['ly_admin_']['user_auth']['uid']==1){
  1053. // $user_list[0] = ['id'=>0,'nickname'=>'全部'];
  1054. // $user_list_1 = M('admin_user')
  1055. // ->alias('a')
  1056. // ->join('qr_admin_access access on a.id = access.uid')
  1057. // ->field('a.id,a.nickname')
  1058. // ->where('a.status = 1')
  1059. // ->select();
  1060. // $user_list = array_merge($user_list,$user_list_1);
  1061. // }else{
  1062. // $product_id = M('admin_user')->where('id = '.$_SESSION['ly_admin_']['user_auth']['uid'])->getField('product_id');
  1063. // $productlist = M('qcode_product')->where('id in ('.$product_id.')')->select();
  1064. // $user_list = array();
  1065. // $user_list[0] = ['id'=>$_SESSION['ly_admin_']['user_auth']['uid'],'nickname'=>$_SESSION['ly_admin_']['user_auth']['nickname']];
  1066. // }
  1067. $this->assign('productlist',$productlist);
  1068. $this->assign('userlist',$user_list);
  1069. $this->display('shouhuolist');
  1070. }
  1071. public function getShouhuoData(){
  1072. /*批次有正常和删除状态,0为未删除,1为已删除;大件0为未删除,1为已删除*/
  1073. $session_config=I('session.ly_admin_');//获取登陆的session值
  1074. $where = [];
  1075. if($_POST['order_number']){//有搜索订单号
  1076. $where['order_number'] = $_POST['order_number'];
  1077. }
  1078. if($_POST['startDate']){//有开始打印日期
  1079. $statrtime=strtotime($_POST['startDate']);
  1080. $endtime=strtotime($_POST['endDate'])+86400-1;
  1081. $where['create_time']=array(array('egt',$statrtime),array('elt',$endtime),'AND');
  1082. }
  1083. // if($session_config['user_auth']['uid']==1 ){
  1084. // if($_POST['user_name']!=0){
  1085. // $where['userid']=$_POST['user_name'];
  1086. // }
  1087. // }else{
  1088. // $where['userid']=$session_config['user_auth']['uid'];
  1089. // }
  1090. $where['status']=$_POST['status'];
  1091. $goodsList=M('goods')
  1092. ->order($_POST['sort'].' '.$_POST['order'])
  1093. ->page($_POST['page'],$_POST['rows'])
  1094. ->where($where)
  1095. ->select();
  1096. $total = M('goods')
  1097. ->where($where)
  1098. ->count();
  1099. $result = [];
  1100. $result['total'] = $total;
  1101. $result['rows'] = $goodsList;
  1102. $fahuollist = json_encode($result);
  1103. echo $fahuollist;
  1104. }
  1105. public function changeShouhuo(){
  1106. $where['shdh']=$_POST['shdh'];
  1107. $return = M('goods')->where($where)->setField('status',2);
  1108. if($return){
  1109. $this->ajaxReturn(['status'=>1,'msg'=> $where['shdh'].'发货单已收货','url' =>'index.php?s=/Admin/Export/exportShouhuo.html']);
  1110. die;
  1111. }else {
  1112. $this->ajaxReturn(['status' => 0, 'msg' => '系统飞走了,请稍后再试']);
  1113. }
  1114. }
  1115. public function dealShouhuo(){
  1116. $id = $_POST['id'];
  1117. $return = M('goods')->where('id = '.$id)->setField('status',0);
  1118. if($return){
  1119. $this->ajaxReturn(['status'=>1,'msg'=>'取消成功']);
  1120. die;
  1121. }else {
  1122. $this->ajaxReturn(['status' => 0, 'msg' => '系统飞走了,请稍后再试']);
  1123. }
  1124. }
  1125. }