ProductBatchProcessLogController.php 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164
  1. <?php
  2. /**
  3. * 重庆赤晓店信息科技有限公司
  4. * https://www.chixiaodian.com
  5. * Copyright (c) 2023 赤店商城 All rights reserved.
  6. */
  7. namespace app\plugins\product_traceability\controllers;
  8. use app\models\Goods;
  9. use app\models\SaasUser;
  10. use app\models\User;
  11. use app\modules\admin\models\GoodsForm;
  12. use app\plugins\product_traceability\models\form\ProductBatchProcessForm;
  13. use app\plugins\product_traceability\models\Product;
  14. use app\plugins\product_traceability\models\ProductBatch;
  15. use app\plugins\product_traceability\models\ProductBatchProcess;
  16. use app\plugins\product_traceability\models\ProductBatchProcessLog;
  17. use app\plugins\product_traceability\models\ProductBatchProcessLogSheet;
  18. use app\plugins\product_traceability\models\ProductBatchProcessSheet;
  19. use app\utils\QrCode;
  20. use yii\base\BaseObject;
  21. use yii\helpers\Json;
  22. class ProductBatchProcessLogController extends BaseController
  23. {
  24. public function actionProductBatchProcessLogList()
  25. {
  26. $start_time = get_params('dateStart');
  27. $end_time = get_params('dateEnd');
  28. $product_batch_id = get_params('product_batch_id');
  29. $product_batch_process_id = get_params('product_batch_process_id');
  30. $search_product_name_key = get_params('search_product_name_key');
  31. $search_batch_name_key = get_params('search_batch_name_key');
  32. $search_goods_name_key = get_params('search_goods_name_key');
  33. $search_batch_number_key = get_params('search_batch_number_key');
  34. $search_process_user_name_key = get_params('search_process_user_name_key');
  35. $search_state = get_params('search_state', '-1');
  36. $query = ProductBatchProcessLog::find()->alias('pbpl')
  37. ->leftJoin(['pbp' => ProductBatchProcess::tableName()], 'pbp.id=pbpl.product_batch_process_id')
  38. ->leftJoin(['u' => User::tableName()], 'u.id=pbp.process_user_id')
  39. ->leftJoin(['su' => SaasUser::tableName()],'su.mobile=u.binding')
  40. ->leftJoin(['pb' => ProductBatch::tableName()], 'pb.id=pbp.product_batch_id')
  41. ->leftJoin(['p' => Product::tableName()], 'p.id=pb.product_id')
  42. ->leftJoin(['g' => Goods::tableName()], 'g.id=pb.goods_id')
  43. ->where([
  44. 'pbpl.is_delete' => 0,
  45. 'pb.is_delete' => 0,
  46. 'pb.store_id' => get_store_id()
  47. ])->select(['pbpl.*', 'pbp.process_name', 'pb.batch_number', 'pb.batch_name', 'p.product_name', 'g.name as goods_name', 'su.name']);
  48. if (!empty($product_batch_id)) {
  49. $query->andWhere(['=', 'pbp.product_batch_id', $product_batch_id]);
  50. }
  51. if (!empty($product_batch_process_id)) {
  52. $query->andWhere(['=', 'pbpl.product_batch_process_id', $product_batch_process_id]);
  53. }
  54. if (!empty($search_product_name_key)) {
  55. $query->andWhere(['like', 'p.product_name', trim($search_product_name_key)]);
  56. }
  57. if (!empty($search_batch_name_key)) {
  58. $query->andWhere(['like', 'pb.batch_name', trim($search_batch_name_key)]);
  59. }
  60. if (!empty($search_batch_number_key)) {
  61. $query->andWhere(['like', 'pb.batch_number', trim($search_batch_number_key)]);
  62. }
  63. if (!empty($search_goods_name_key)) {
  64. $query->andWhere(['like', 'g.name', trim($search_goods_name_key)]);
  65. }
  66. if (!empty($search_process_user_name_key)) {
  67. $query->andWhere(['like', 'su.name', trim($search_process_user_name_key)]);
  68. }
  69. if ($search_state != -1) {
  70. $query->andWhere(['pbpl.state' => $search_state]);
  71. }
  72. if ($start_time) {
  73. $query->andWhere(['>=', 'pb.created_at', strtotime($start_time)]);
  74. }
  75. if ($end_time) {
  76. $query->andWhere(['<=', 'pb.created_at', strtotime($end_time)]);
  77. }
  78. $list = pagination_make($query, true, 'id desc');
  79. $list= $list['list'];
  80. foreach ($list as $k => $v) {
  81. $log_sheet_list = ProductBatchProcessLogSheet::find()->where(['store_id' => $v['store_id'], 'process_log_id' => $v['id']])->asArray()->all();
  82. foreach ($log_sheet_list as $kk => $vv) {
  83. $log_sheet_list[$kk]['value'] = ($vv['type'] == 'checkbox' || $vv['type'] == 'uploadImg' || $vv['type'] == 'uploadVideo')
  84. ? json_decode($vv['value'], true) : $vv['value'];
  85. }
  86. $list[$k]['log_sheet_list'] =$log_sheet_list;
  87. }
  88. return [
  89. 'code' => 0,
  90. 'msg' => 'success',
  91. 'data' => [
  92. 'data' => $list,
  93. 'pageNo' => $list['pageNo'],
  94. 'totalCount' => $list['totalCount'],
  95. ],
  96. ];
  97. }
  98. public function actionProductBatchProcessLogDel()
  99. {
  100. $id = get_params('id');
  101. $product_batch_process_log = ProductBatchProcessLog::findOne($id);
  102. $product_batch_process_log->is_delete = 1;
  103. if ($product_batch_process_log->save()) {
  104. return [
  105. 'code' => 0,
  106. 'msg' => '删除成功'
  107. ];
  108. }else {
  109. return [
  110. 'code' => 1,
  111. 'msg' => $product_batch_process_log->getErrors(),
  112. ];
  113. }
  114. }
  115. /**
  116. * 批量操作
  117. * @return \yii\web\Response
  118. */
  119. public function actionProductBatchProcessLogOperate()
  120. {
  121. $id = post_params('id');
  122. $type = post_params('type');
  123. $status = post_params('status');
  124. if (empty($id) || !is_array($id)) {
  125. return [
  126. 'code' => 1,
  127. 'msg' => '参数有误'
  128. ];
  129. }
  130. if (!in_array($status, [0, 1])) {
  131. return [
  132. 'code' => 1,
  133. 'msg' => '状态参数有误'
  134. ];
  135. }
  136. if ($type == 'open' || $type == 'disabled') {
  137. ProductBatchProcessLog::updateAll(['is_show' => $status], ['in', 'id', $id]);
  138. }
  139. if ($type == 'delete') {
  140. $res= ProductBatchProcessLog::updateAll(['is_delete' => $status], ['in', 'id', $id]);
  141. }
  142. return [
  143. 'code' => 0,
  144. 'msg' => '更新成功'
  145. ];
  146. }
  147. }