0){ $where[] = ['is_gc', '=' ,1]; }else{ $where[] = ['is_gc', '=' ,0]; } $long = (double)$data['long']; $wide = (double)$data['wide']; $high = (double)$data['high']; $high_array = []; // 高度数组 $roof_number = []; // 顶板数量 $floor_number = []; // 底板数量 $side_number = []; // 侧板数量 $lacing_number = []; // 拉经数量 $fula_number = [];//辅拉数量 $warm = []; //保温数量 $channel_number = 0; for ($i = 0; $i < intval($high); $i++){ $high_array[] = 1; } if (intval($high) != $high){ $high_array = array_merge($high_array, [0.5]); } if (ceil($long) == $long && ceil($wide) == $wide && ceil($high) == $high){ //都为整数 $roof_number = ['1*1' => $long * $wide]; // 顶板数量 $floor_number = ['1*1' => $long * $wide];// 底板数量 foreach ($high_array as $item){ $side_number[] = ['1*1' => (($item * $long) + ($item * $wide)) * 2]; } }elseif (ceil($long) != $long && ceil($wide) != $wide && ceil($high) != $high){ //都不为整数 $roof_number = ['1*1' => intval($long) * intval($wide), '1*0.5' => intval($long) + intval($wide), '0.5*0.5' => 1]; // 顶板数量 $floor_number = ['1*1' => intval($long) * intval($wide), '1*0.5' => intval($long) + intval($wide), '0.5*0.5' => 1];// 底板数量 foreach ($high_array as $item){ if ($item >= 1){ $side_number[] = ['1*1' => ((intval($long)) + (intval($wide))) * 2, '0.1*0.5' => 4]; }else{ $side_number[] = ['1*0.5' => ((intval($long)) + (intval($wide))) * 2, '0.5*0.5' => 4]; } } }elseif (ceil($long) != $long || ceil($wide) != $wide || ceil($high) != $high){ //一个整数 if (ceil($long) != $long && ceil($wide) == $wide && ceil($high) == $high){ $roof_number = ['1*1' => intval($long) * intval($wide), '1*0.5' => $wide]; // 顶板数量 $floor_number = ['1*1' => intval($long) * intval($wide), '1*0.5' => $wide];// 底板数量 foreach ($high_array as $item){ $side_number[] = ['1*1' => ((intval($long)) + (intval($wide))) * 2, '0.1*0.5' => 2]; } }elseif (ceil($long) == $long && ceil($wide) != $wide and ceil($high) == $high){ $roof_number = ['1*1' => intval($long) * intval($wide), '1*0.5' => $long]; // 顶板数量 $floor_number = ['1*1' => intval($long) * intval($wide), '1*0.5' => $long];// 底板数量 foreach ($high_array as $item){ $side_number[] = ['1*1' => ((intval($long)) + (intval($wide))) * 2, '0.1*0.5' => 2]; } }elseif (ceil($long) != $long && ceil($wide) != $wide and ceil($high) == $high){ $roof_number = ['1*1' => intval($long) * intval($wide), '1*0.5' => intval($long) + intval($wide), '0.5*0.5' => 1]; // 顶板数量 $floor_number = ['1*1' => intval($long) * intval($wide), '1*0.5' => intval($long) + intval($wide), '0.5*0.5' => 1];// 底板数量 foreach ($high_array as $item){ $side_number[] = ['1*1' => ((intval($long)) + (intval($wide))) * 2, '0.1*0.5' => 4]; } } elseif (ceil($long) != $long && ceil($wide) == $wide and ceil($high) != $high){ $roof_number = ['1*1' => intval($long) * intval($wide), '1*0.5' => $wide]; // 顶板数量 $floor_number = ['1*1' => intval($long) * intval($wide), '1*0.5' => $wide];// 底板数量 foreach ($high_array as $item){ if ($item >= 1){ $side_number[] = ['1*1' => ((intval($long)) + (intval($wide))) * 2, '0.1*0.5' => 2]; }else{ $side_number[] = ['1*0.5' => ((intval($long)) + (intval($wide))) * 2, '0.5*0.5' => 2]; } } }elseif (ceil($long) == $long && ceil($wide) != $wide and ceil($high) != $high){ $roof_number = ['1*1' => intval($long) * intval($wide), '1*0.5' => $long]; // 顶板数量 $floor_number = ['1*1' => intval($long) * intval($wide), '1*0.5' => $long];// 底板数量 foreach ($high_array as $item){ if ($item >= 1){ $side_number[] = ['1*1' => ((intval($long)) + (intval($wide))) * 2, '0.1*0.5' => 2]; }else{ $side_number[] = ['1*0.5' => ((intval($long)) + (intval($wide))) * 2, '0.5*0.5' => 2]; } } }elseif (ceil($long) == $long && ceil($wide) == $wide and ceil($high) != $high){ $roof_number = ['1*1' => $long * $wide]; // 顶板数量 $floor_number = ['1*1' => $long * $wide];// 底板数量 foreach ($high_array as $item){ if ($item >= 1){ $side_number[] = ['1*1' => ((intval($long)) + (intval($wide))) * 2]; }else{ $side_number[] = ['1*0.5' => ((intval($long)) + (intval($wide))) * 2]; } } } } array_pop($high_array);// 删除最后一位,算出主拉层数 // 拉筋 foreach ($high_array as $item){ $lacing_number[] = ceil(((ceil($long) * (ceil($wide) - 1)) + (ceil($wide) * (ceil($long) - 1)))/2); } // 辅拉 if ($high > 1){ if ($high == 1.5){ $fula_number = [2 * ( (ceil($long) - 1) + (ceil($wide) - 1) ) + 1]; }elseif ($high == 2){ $fula_number = [3 * ( (ceil($long) - 1) + (ceil($wide) - 1) ) + 1]; }elseif ($high == 2.5){ $fula_number = [ 2 * ( (ceil($long) - 1) + (ceil($wide) - 1) ) + 1, 2 * ( (ceil($long) - 1) + (ceil($wide) - 1) ) + 1, ]; }elseif ($high == 3){ $fula_number = [ 3 * ( (ceil($long) - 1) + (ceil($wide) - 1) ) + 1, 2 * ( (ceil($long) - 1) + (ceil($wide) - 1) ) + 1, ]; }elseif ($high >= 3.5){ foreach ($high_array as $item){ $fula_number[] = 2 * ( (ceil($long) - 1) + (ceil($wide) - 1) ) + 1; } } } $warm1 = 0;// 1*1 数量 $warm2 = 0;// 1*0.5数量 $warm3 = 0;// 0.5*0.5数量 if ($data['is_warm'] > 0){ foreach ($side_number as $item){ // 侧板 foreach ($item as $key => $value){ if ($key == '1*1'){ $warm1 += $value; }elseif ($key == '1*0.5'){ $warm2 += $value; }elseif ($key == '0.5*0.5'){ $warm3 += $value; } } } foreach ($floor_number as $key => $value){ // 顶板 if ($key == '1*1'){ $warm1 += $value; }elseif ($key == '1*0.5'){ $warm2 += $value; }elseif ($key == '0.5*0.5'){ $warm3 += $value; } } } if ($data['is_channel'] > 0){ if (ceil($long) == $long && ceil($wide) == $wide && ceil($high) == $high){ //都为整数 $channel_number = $long * ($wide * 2 + 1) + $wide * 2; }elseif (ceil($long) != $long || ceil($wide) || $wide && ceil($high) || $high){ //不为整数 $channel_number = $long * (ceil($wide) * 2 + 1) + $wide * 2; } } halt($channel_number); } /** * 材料列表 * @return mixed * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\DbException * @throws \think\db\exception\ModelNotFoundException */ public function list() { $data = UtilService::getMore(['is_gc']); $list = []; if ($data['is_gc'] > 0){ $where[] = ['is_gc', '=' ,1]; }else{ $where[] = ['is_gc', '=' ,0]; } $list['warm'] = WaterMaterialScience::field('id,name,unit_price,company')->where('type', 7)->where($where)->select(); // 保温 $list['channel'] = WaterMaterialScience::field('id,name,unit_price,company')->where('type', 8)->where($where)->select(); // 槽钢 $list['roof'] = WaterMaterialScience::field('id,name,unit_price,company')->where('type', 1)->where($where)->select();// 顶板 $list['side_plate'] = WaterMaterialScience::field('id,name,unit_price,company')->where('type', 2)->where($where)->select();// 侧板 $list['lacing'] = WaterMaterialScience::field('id,name,unit_price,company')->where('type', 3)->where($where)->select();// 拉筋 $list['floor'] = WaterMaterialScience::field('id,name,unit_price,company')->where('type', 4)->where($where)->select(); // 底板 $list['column'] = WaterMaterialScience::field('id,name,unit_price,company')->where('type', 5)->where($where)->select(); // 立柱 $list['fula'] = WaterMaterialScience::field('id,name,unit_price,company')->where('type', 6)->where($where)->select(); // 辅拉 return app('json')->success($list); } }