ProcessStatisticController.php 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Process;
  4. use App\Services\common\ExportService;
  5. use App\Services\ProcessStatisticService;
  6. use Exception;
  7. use Illuminate\Http\Request;
  8. use Illuminate\Support\Facades\Gate;
  9. use Illuminate\Support\Facades\Http;
  10. class ProcessStatisticController extends Controller
  11. {
  12. public function index(Request $request){
  13. if(!Gate::allows('二次加工管理-查询')){ return redirect('denied'); }
  14. /** @var ProcessStatisticService $processStatistics */
  15. $processStatistics=app("ProcessStatisticService")->paginate($request->input());
  16. $owners=app("OwnerService")->getIntersectPermitting();
  17. $processMethods=app("ProcessMethodService")->getSelection();
  18. return view('process.statistic',['processStatistics'=>$processStatistics,'params'=>$request->input(),'owners'=>$owners,'processMethods'=>$processMethods]);
  19. }
  20. public function export(){
  21. if(!Gate::allows('二次加工管理-查询')){ return '没有权限'; }
  22. if (request("checkAllSign")){
  23. \request()->offsetUnset("checkAllSign");
  24. $processes = app('ProcessStatisticService')->get(\request()->input());
  25. }else $processes = app('ProcessStatisticService')->get(["process_id"=>\request("data")]);
  26. $row = ["任务号","接单人", "货主", "开始日期", "完成日期","创建日期", "单价", "预期数量", "完成数量", "收入合计",
  27. "完成时间(天)'", "总工时", "加工类型", "最高日产能", "最低日产能", "日均产能", "合计成本", "毛利润",
  28. "毛利率", "状态","加工备注","结算备注"];
  29. $list = [];
  30. foreach ($processes as $process){
  31. $list[] = [
  32. $process->process->code ?? "",
  33. $process->operatorLog->user->name ?? "",
  34. $process->process->owner->name ?? "",
  35. $process->started_at,
  36. $process->ended_at,
  37. $process->process->created_at ?? "",
  38. $process->process->unit_price ?? "",
  39. $process->process->amount ?? "",
  40. $process->process->completed_amount ?? "",
  41. $process->revenue,
  42. $process->duration_days,
  43. $process->duration_man_hours,
  44. $process->process->method->name ?? "",
  45. $process->top_capacity,
  46. $process->bottom_capacity,
  47. $process->average_capacity,
  48. $process->total_cost,
  49. $process->gross_profit,
  50. ($process->gross_profit_rate*100)."%",
  51. $process->process->status ?? "",
  52. $process->process->remark ?? "",
  53. $process->process->balance_remark ?? "",
  54. ];
  55. }
  56. return app(ExportService::class)->json($row,$list,"二次加工统计记录");
  57. }
  58. }