CsController.php 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365
  1. <?php
  2. namespace ghs\controllers;
  3. use biz\ghs\classes\GhsClass;
  4. use biz\sj\classes\SjClass;
  5. use biz\wx\classes\WxMessageClass;
  6. use bizGhs\book\classes\BookItemClass;
  7. use bizGhs\order\classes\PurchaseOrderClass;
  8. use bizGhs\order\classes\PurchaseOrderItemClass;
  9. use bizGhs\product\classes\ProductClass;
  10. use bizGhs\shop\classes\ShopClass;
  11. use bizHd\purchase\classes\PurchaseClass;
  12. use common\components\dateUtil;
  13. use common\components\dict;
  14. use common\components\noticeUtil;
  15. use common\components\printUtil;
  16. use common\components\stringUtil;
  17. use common\components\util;
  18. use biz\shop\classes\ShopExtClass;
  19. use Yii;
  20. use biz\shop\classes\MainClass;
  21. use biz\shop\classes\ShopCapitalClass;
  22. use biz\stat\classes\StatCgClass;
  23. use biz\stat\classes\StatCgGhsClass;
  24. use biz\stat\classes\StatOutClass;
  25. use bizGhs\base\classes\BaseClass;
  26. use bizGhs\book\classes\BookCustomClass;
  27. use bizGhs\book\classes\BookItemCustomClass;
  28. use bizGhs\book\classes\BookItemGhsClass;
  29. use bizGhs\cg\classes\CgOrderItemClass;
  30. use bizGhs\cg\classes\CgOrderItemSendClass;
  31. use bizGhs\custom\classes\CustomClass;
  32. use bizGhs\ghs\classes\GhsDebtRecordClass;
  33. use bizGhs\item\classes\CostChangeClass;
  34. use bizGhs\item\classes\ItemClassClass;
  35. use bizGhs\order\traits\OrderTrait;
  36. use bizGhs\shop\classes\ShopAdminClass;
  37. use bizGhs\stock\classes\OnStockRecordClass;
  38. use bizGhs\stock\classes\StockRecordClass;
  39. class CsController extends BaseController
  40. {
  41. public $guestAccess = ['list'];
  42. public function actionList()
  43. {
  44. $where = [];
  45. $get = Yii::$app->request->get();
  46. $export = $get['export'] ?? 0;
  47. $search = $get['search'] ?? '';
  48. $where['shopId'] = 23580;
  49. $ghsId = $get['ghsId'] ?? 0;
  50. if (!empty($ghsId)) {
  51. $where['ghsId'] = $ghsId;
  52. }
  53. if (!empty($search)) {
  54. if (is_numeric($search) && strlen($search) == 4) {
  55. $where['orderSn'] = ['like', $search];
  56. } else {
  57. $where['ghsName'] = ['like', $search];
  58. }
  59. }
  60. $name = $get['name'] ?? '';
  61. if (!empty($name)) {
  62. $re = strstr($name, 'PH');
  63. if (!empty($re)) {
  64. $where['orderSn'] = $name;
  65. } else {
  66. $where['ghsName'] = ['like', $name];
  67. }
  68. }
  69. $searchTime = 'custom';
  70. $startTime = '2024-07-01';
  71. $endTime = '2024-07-31';
  72. $period = dateUtil::formatTime($searchTime, $startTime, $endTime);
  73. $where['entryTime'] = ['between', [$period['startTime'], $period['endTime']]];
  74. $cgStaffId = $get['cgStaffId'] ?? 0;
  75. if (!empty($cgStaffId)) {
  76. $where['cgStaffId'] = $cgStaffId;
  77. }
  78. if ($export == 1) {
  79. ini_set('memory_limit', '2045M');
  80. set_time_limit(0);
  81. if (isset($where['entryTime']) == false) {
  82. util::fail('请选时间段');
  83. }
  84. $start = $where['entryTime'][1][0];
  85. $end = $where['entryTime'][1][1];
  86. $monthTime = bcmul(31, 86400);
  87. $startArea = strtotime($start);
  88. $endArea = strtotime($end);
  89. $diff = bcsub($endArea, $startArea);
  90. if ($diff > $monthTime) {
  91. util::fail('最长可导出一个月');
  92. }
  93. }
  94. $data = PurchaseOrderClass::getOrderList($where);
  95. if ($export == 1) {
  96. $this->exportOrderData($data, 23390);
  97. }
  98. //状态统计,很慢,暂时隐藏
  99. //$statData = PurchaseOrderClass::statNum($this->shopId);
  100. $statData = [
  101. 'allNum' => 0,
  102. 'unPayNum' => 0,
  103. 'unSendNum' => 0,
  104. 'sendingNum' => 0,
  105. 'finishNum' => 0,
  106. ];
  107. $data = array_merge($data, $statData);
  108. echo "<pre>";
  109. print_r($data);
  110. }
  111. public function exportOrderData($respond, $mainId)
  112. {
  113. $orderList = $respond['list'] ?? [];
  114. if (empty($orderList)) {
  115. util::fail('没有数据需要导出');
  116. }
  117. $orderSnList = array_column($orderList, 'orderSn');
  118. $orderItemData = PurchaseOrderItemClass::getAllByCondition(['orderSn' => ['in', $orderSnList]], null, '*');
  119. $orderItemList = [];
  120. if (!empty($orderItemData)) {
  121. foreach ($orderItemData as $itemInfo) {
  122. $orderSn = $itemInfo['orderSn'] ?? '';
  123. $orderItemList[$orderSn][] = $itemInfo;
  124. }
  125. }
  126. foreach ($orderList as $key => $orderInfo) {
  127. $orderSn = $orderInfo['orderSn'] ?? '';
  128. $status = $orderInfo['status'] ?? 0;
  129. //增加项
  130. $actPrice = $orderInfo['actPrice'] ?? 0;
  131. if ($status != 4) {
  132. unset($orderList[$key]);
  133. continue;
  134. }
  135. //增加项
  136. if ($actPrice <= 0) {
  137. unset($orderList[$key]);
  138. continue;
  139. }
  140. $itemList = $orderItemList[$orderSn] ?? [];
  141. $orderList[$key]['itemList'] = $itemList;
  142. }
  143. $classList = ItemClassClass::getAllByCondition(['mainId' => $mainId], null, '*', 'id');
  144. $phpExcelFile = Yii::getAlias("@vendor/phpoffice/phpexcel/");
  145. require_once($phpExcelFile . 'Classes/PHPExcel.php');
  146. $objPHPExcel = new \PHPExcel();
  147. $objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
  148. ->setLastModifiedBy("Maarten Balliauw")
  149. ->setTitle("Office 2007 XLSX Document")
  150. ->setSubject("Office 2007 XLSX Document")
  151. ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
  152. ->setKeywords("office 2007 openxml php")
  153. ->setCategory("file");
  154. $ghsTitle = '供货商';
  155. $objPHPExcel->getActiveSheet()->getHeaderFooter()->setOddHeader(date('n月j日') . " " . $ghsTitle);
  156. $objPHPExcel->getActiveSheet()->getPageMargins()->setTop(0.7);
  157. $objPHPExcel->getActiveSheet()->getPageMargins()->setBottom(0.1);
  158. $objPHPExcel->getActiveSheet()->getPageMargins()->setLeft(0.5);
  159. $objPHPExcel->getActiveSheet()->getPageMargins()->setRight(0);
  160. $objPHPExcel->getActiveSheet()->getPageMargins()->setHeader(0.1);
  161. $objPHPExcel->getActiveSheet()->getPageMargins()->setFooter(0);
  162. $objPHPExcel->getActiveSheet()->setCellValue('A1', '订单号');
  163. $objPHPExcel->getActiveSheet()->setCellValue('B1', '创建时间');
  164. $objPHPExcel->getActiveSheet()->setCellValue('C1', '入库时间');
  165. $objPHPExcel->getActiveSheet()->setCellValue('D1', '订单金额');
  166. $objPHPExcel->getActiveSheet()->setCellValue('E1', '退款金额');
  167. $objPHPExcel->getActiveSheet()->setCellValue('F1', '实际金额');
  168. $objPHPExcel->getActiveSheet()->setCellValue('G1', '供货商名称');
  169. $objPHPExcel->getActiveSheet()->setCellValue('H1', '录入人员');
  170. $objPHPExcel->getActiveSheet()->setCellValue('I1', '采购人员');
  171. $objPHPExcel->getActiveSheet()->setCellValue('J1', '状态');
  172. $objPHPExcel->getActiveSheet()->setCellValue('K1', '打印次数');
  173. $objPHPExcel->getActiveSheet()->setCellValue('L1', '结清状态');
  174. $objPHPExcel->getActiveSheet()->setCellValue('M1', '');
  175. $objPHPExcel->getActiveSheet()->setCellValue('N1', '花材Id');
  176. $objPHPExcel->getActiveSheet()->setCellValue('O1', '花材名称');
  177. $objPHPExcel->getActiveSheet()->setCellValue('P1', '单价');
  178. $objPHPExcel->getActiveSheet()->setCellValue('Q1', '数量');
  179. $objPHPExcel->getActiveSheet()->setCellValue('R1', '已退数量');
  180. $objPHPExcel->getActiveSheet()->setCellValue('S1', '金额');
  181. $objPHPExcel->getActiveSheet()->setCellValue('T1', '分类');
  182. //设置宽度
  183. $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(20);
  184. $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(20);
  185. $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(20);
  186. $objPHPExcel->getActiveSheet()->getColumnDimension('G')->setWidth(20);
  187. $objPHPExcel->getActiveSheet()->getColumnDimension('G')->setWidth(20);
  188. $objPHPExcel->getActiveSheet()->getColumnDimension('O')->setWidth(20);
  189. $objPHPExcel->getActiveSheet()->getColumnDimension('T')->setWidth(20);
  190. //加粗
  191. $objPHPExcel->getActiveSheet()->getStyle('A1')->getFont()->setSize(9)->setBold(true);
  192. $objPHPExcel->getActiveSheet()->getStyle('B1')->getFont()->setSize(9)->setBold(true);
  193. $objPHPExcel->getActiveSheet()->getStyle('C1')->getFont()->setSize(9)->setBold(true);
  194. $objPHPExcel->getActiveSheet()->getStyle('D1')->getFont()->setSize(9)->setBold(true);
  195. $objPHPExcel->getActiveSheet()->getStyle('E1')->getFont()->setSize(9)->setBold(true);
  196. $objPHPExcel->getActiveSheet()->getStyle('F1')->getFont()->setSize(9)->setBold(true);
  197. $objPHPExcel->getActiveSheet()->getStyle('G1')->getFont()->setSize(9)->setBold(true);
  198. $objPHPExcel->getActiveSheet()->getStyle('H1')->getFont()->setSize(9)->setBold(true);
  199. $objPHPExcel->getActiveSheet()->getStyle('I1')->getFont()->setSize(9)->setBold(true);
  200. $objPHPExcel->getActiveSheet()->getStyle('J1')->getFont()->setSize(9)->setBold(true);
  201. $objPHPExcel->getActiveSheet()->getStyle('K1')->getFont()->setSize(9)->setBold(true);
  202. $objPHPExcel->getActiveSheet()->getStyle('L1')->getFont()->setSize(9)->setBold(true);
  203. $objPHPExcel->getActiveSheet()->getStyle('M1')->getFont()->setSize(9)->setBold(true);
  204. $objPHPExcel->getActiveSheet()->getStyle('N1')->getFont()->setSize(9)->setBold(true);
  205. $objPHPExcel->getActiveSheet()->getStyle('O1')->getFont()->setSize(9)->setBold(true);
  206. $objPHPExcel->getActiveSheet()->getStyle('P1')->getFont()->setSize(9)->setBold(true);
  207. $objPHPExcel->getActiveSheet()->getStyle('Q1')->getFont()->setSize(9)->setBold(true);
  208. $objPHPExcel->getActiveSheet()->getStyle('R1')->getFont()->setSize(9)->setBold(true);
  209. $objPHPExcel->getActiveSheet()->getStyle('S1')->getFont()->setSize(9)->setBold(true);
  210. $objPHPExcel->getActiveSheet()->getStyle('T1')->getFont()->setSize(9)->setBold(true);
  211. $objPHPExcel->getActiveSheet()->getStyle('A1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  212. $objPHPExcel->getActiveSheet()->getStyle('B1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  213. $objPHPExcel->getActiveSheet()->getStyle('C1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  214. $objPHPExcel->getActiveSheet()->getStyle('D1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  215. $objPHPExcel->getActiveSheet()->getStyle('E1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  216. $objPHPExcel->getActiveSheet()->getStyle('F1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  217. $objPHPExcel->getActiveSheet()->getStyle('G1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  218. $objPHPExcel->getActiveSheet()->getStyle('H1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  219. $objPHPExcel->getActiveSheet()->getStyle('I1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  220. $objPHPExcel->getActiveSheet()->getStyle('J1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  221. $objPHPExcel->getActiveSheet()->getStyle('K1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  222. $objPHPExcel->getActiveSheet()->getStyle('L1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  223. $objPHPExcel->getActiveSheet()->getStyle('M1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  224. $objPHPExcel->getActiveSheet()->getStyle('N1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  225. $objPHPExcel->getActiveSheet()->getStyle('O1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  226. $objPHPExcel->getActiveSheet()->getStyle('P1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  227. $objPHPExcel->getActiveSheet()->getStyle('Q1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  228. $objPHPExcel->getActiveSheet()->getStyle('R1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  229. $objPHPExcel->getActiveSheet()->getStyle('S1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  230. $objPHPExcel->getActiveSheet()->getStyle('T1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  231. $objPHPExcel->getActiveSheet()->getStyle('A1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);
  232. $objPHPExcel->getActiveSheet()->getStyle('B1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);
  233. $objPHPExcel->getActiveSheet()->getStyle('C1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);
  234. $objPHPExcel->getActiveSheet()->getStyle('D1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);
  235. $objPHPExcel->getActiveSheet()->getStyle('E1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);
  236. $objPHPExcel->getActiveSheet()->getStyle('F1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);
  237. $objPHPExcel->getActiveSheet()->getStyle('G1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);
  238. $objPHPExcel->getActiveSheet()->getStyle('H1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);
  239. $objPHPExcel->getActiveSheet()->getStyle('I1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);
  240. $objPHPExcel->getActiveSheet()->getStyle('J1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);
  241. $objPHPExcel->getActiveSheet()->getStyle('K1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);
  242. $objPHPExcel->getActiveSheet()->getStyle('L1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);
  243. $objPHPExcel->getActiveSheet()->getStyle('M1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);
  244. $objPHPExcel->getActiveSheet()->getStyle('N1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);
  245. $objPHPExcel->getActiveSheet()->getStyle('O1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);
  246. $objPHPExcel->getActiveSheet()->getStyle('P1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);
  247. $objPHPExcel->getActiveSheet()->getStyle('Q1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);
  248. $objPHPExcel->getActiveSheet()->getStyle('R1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);
  249. $objPHPExcel->getActiveSheet()->getStyle('S1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);
  250. $objPHPExcel->getActiveSheet()->getStyle('T1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);
  251. $baseRow = 2;
  252. $x = 0;
  253. foreach ($orderList as $key => $orderData) {
  254. $currentList = $orderData['itemList'] ?? [];
  255. if (!empty($currentList)) {
  256. foreach ($currentList as $k => $orderInfo) {
  257. $i = $baseRow + $x;
  258. $x++;
  259. $objPHPExcel->getActiveSheet()->setCellValue('A' . $i, $orderData['orderSn']);
  260. $objPHPExcel->getActiveSheet()->setCellValue('B' . $i, $orderData['addTime']);
  261. if ($orderData['status'] == 4) {
  262. $objPHPExcel->getActiveSheet()->setCellValue('C' . $i, $orderData['entryTime']);
  263. } else {
  264. $objPHPExcel->getActiveSheet()->setCellValue('C' . $i, '');
  265. }
  266. $objPHPExcel->getActiveSheet()->setCellValue('D' . $i, $orderData['orderPrice']);
  267. $objPHPExcel->getActiveSheet()->setCellValue('E' . $i, $orderData['tkPrice']);
  268. $objPHPExcel->getActiveSheet()->setCellValue('F' . $i, $orderData['actPrice']);
  269. $objPHPExcel->getActiveSheet()->setCellValue('G' . $i, $orderData['ghsName']);
  270. $objPHPExcel->getActiveSheet()->setCellValue('H' . $i, $orderData['shopAdminName']);
  271. $objPHPExcel->getActiveSheet()->setCellValue('I' . $i, $orderData['cgStaffName']);
  272. $map = [1 => '待确认', 2 => '待发货', 3 => '待入库', 4 => '已入库', 5 => '已取消'];
  273. $statusName = isset($orderData['status']) && isset($map[$orderData['status']]) ? $map[$orderData['status']] : '未知';
  274. $objPHPExcel->getActiveSheet()->setCellValue('J' . $i, $statusName);
  275. $objPHPExcel->getActiveSheet()->setCellValue('K' . $i, $orderData['printNum'] ?? 0);
  276. $debtName = '';
  277. if ($orderData['debt'] == 1) {
  278. $debtName = '未结清';
  279. }
  280. if ($orderData['debt'] == 2) {
  281. $debtName = '已结清';
  282. }
  283. $objPHPExcel->getActiveSheet()->setCellValue('L' . $i, $debtName);
  284. $objPHPExcel->getActiveSheet()->setCellValue('M' . $i, '');
  285. $objPHPExcel->getActiveSheet()->setCellValue('N' . $i, $orderInfo['productId']);
  286. $objPHPExcel->getActiveSheet()->setCellValue('O' . $i, $orderInfo['name']);
  287. $objPHPExcel->getActiveSheet()->setCellValue('P' . $i, $orderInfo['bigPrice']);
  288. $remainNum = bcsub($orderInfo['itemNum'], $orderInfo['refundNum']);
  289. $price = bcmul($remainNum, $orderInfo['bigPrice'], 2);
  290. $price = floatval($price);
  291. $objPHPExcel->getActiveSheet()->setCellValue('Q' . $i, $remainNum);
  292. $objPHPExcel->getActiveSheet()->setCellValue('R' . $i, $orderInfo['refundNum']);
  293. $objPHPExcel->getActiveSheet()->setCellValue('S' . $i, $price);
  294. $classId = $orderInfo['classId'] ?? 0;
  295. $className = isset($classList[$classId]) && isset($classList[$classId]['name']) ? $classList[$classId]['name'] : '';
  296. $objPHPExcel->getActiveSheet()->setCellValue('T' . $i, $className);
  297. //居左
  298. $objPHPExcel->getActiveSheet()->getStyle('A' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  299. $objPHPExcel->getActiveSheet()->getStyle('B' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  300. $objPHPExcel->getActiveSheet()->getStyle('C' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  301. $objPHPExcel->getActiveSheet()->getStyle('D' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  302. $objPHPExcel->getActiveSheet()->getStyle('E' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  303. $objPHPExcel->getActiveSheet()->getStyle('F' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  304. $objPHPExcel->getActiveSheet()->getStyle('G' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  305. $objPHPExcel->getActiveSheet()->getStyle('H' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  306. $objPHPExcel->getActiveSheet()->getStyle('I' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  307. $objPHPExcel->getActiveSheet()->getStyle('J' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  308. $objPHPExcel->getActiveSheet()->getStyle('K' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  309. $objPHPExcel->getActiveSheet()->getStyle('L' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  310. $objPHPExcel->getActiveSheet()->getStyle('M' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  311. $objPHPExcel->getActiveSheet()->getStyle('N' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  312. $objPHPExcel->getActiveSheet()->getStyle('O' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  313. $objPHPExcel->getActiveSheet()->getStyle('P' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  314. $objPHPExcel->getActiveSheet()->getStyle('Q' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  315. $objPHPExcel->getActiveSheet()->getStyle('R' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  316. $objPHPExcel->getActiveSheet()->getStyle('S' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  317. $objPHPExcel->getActiveSheet()->getStyle('T' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  318. }
  319. }
  320. }
  321. $fileName = '采购单明细-' . time();
  322. $objPHPExcel->getActiveSheet()->setTitle($fileName);
  323. $objPHPExcel->setActiveSheetIndex(0);
  324. $dir = './priceTable/' . $mainId;
  325. if (file_exists($dir) == false) {
  326. mkdir($dir, 0777, true);
  327. }
  328. $date = $fileName;
  329. $file = $date . '.xls';
  330. $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
  331. if (file_exists($dir . '/' . $file)) {
  332. unlink($dir . '/' . $file);
  333. }
  334. $objWriter->save($dir . '/' . $file);
  335. $fileUrl = Yii::$app->params['ghsHost'] . '/priceTable/' . $mainId . '/' . $file;
  336. util::success(['file' => $fileUrl, 'shortFile' => $file]);
  337. }
  338. }