| 
					
				 | 
			
			
				@@ -116,48 +116,75 @@ class Integral extends EnterpriseController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             $amounts = $params["amount"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             $detailCounts = count($item_ids); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $ft_ids = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             for ($i = 0; $i < $detailCounts; $i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if (!in_array($item_ids[$i], $tmp_item_ids)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     $tmp_item_ids[] = $item_ids[$i]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if (!is_numeric($amounts[$i]) || $amounts[$i] < 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    throw new ValidateException(sprintf("第%d个积分标准项的数额填写错误,应填入大于0的数字", $i + 1)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    $res = ["msg" => sprintf("第%d个积分标准项的数额填写错误,应填入大于0的数字", $i + 1)]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    echo sprintf("<script>parent.IntegralInfoDlg.submitCallback(%s);</script>", json_encode($res)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    exit; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 $integralItemInfo = \app\common\api\IntegralItemApi::getOne($item_ids[$i]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if (!$integralItemInfo) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    throw new ValidateException(sprintf("第%d个积分标准项不存在", $i + 1)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    $res = ["msg" => sprintf("第%d个积分标准项不存在", $i + 1)]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    echo sprintf("<script>parent.IntegralInfoDlg.submitCallback(%s);</script>", json_encode($res)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    exit; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $ft_ids = array_filter(explode(",", $integralItemInfo["fileTypeId"])); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if ($ft_ids) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    $whereFt[] = ["id", "in", $ft_ids]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    $whereFt[] = ["must", "=", 1]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    $fts = Db::table("new_common_filetype")->where($whereFt)->select()->toArray(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    $count = count($fts); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if ($count > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        $_ft_ids = array_column($fts, "id"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        $whr = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        $whr[] = ["type", "=", ProjectState::INTEGRAL]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        $whr[] = ["relationId", "=", $item_ids[$i]]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        $whr[] = ["typeId", "in", $_ft_ids]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        if ($id) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            $whr[] = ["mainId", "=", $id]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            $whr[] = ["id", "in", $params["uploadFiles"]]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        $distinct_filetypes = Db::table("new_talent_file")->where($whr)->distinct(true)->field("typeId")->select(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        if ($count != count($distinct_filetypes)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            $res = ["msg" => '积分项目"' . $integralItemInfo["name"] . '"缺少必传附件']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            echo sprintf("<script>parent.IntegralInfoDlg.submitCallback(%s);</script>", json_encode($res)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            exit; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                $ft_ids = array_filter(array_merge($ft_ids, (array) explode(",", $integralItemInfo["fileTypeId"]))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $ft_ids = array_unique($ft_ids); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (count($tmp_item_ids) != $detailCounts) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                throw new ValidateException("同一个申报中,同一个积分标准不能申报多次"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $res = ["msg" => "同一个申报中,同一个积分标准不能申报多次"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                echo sprintf("<script>parent.IntegralInfoDlg.submitCallback(%s);</script>", json_encode($res)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                exit; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             $whrCommonFt = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             $whrCommonFt[] = ["project", "=", ProjectState::INTEGRAL]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             $whrCommonFt[] = ["active", "=", 1]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $whrCommonFt[] = ["must", "=", 1]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             $whrCommonFt[] = ["delete", "=", 0]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             $whrCommonFt[] = ["type", "=", $this->user["type"]]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             $whrCommonFt[] = ["isConditionFile", "=", 1]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             $common_fts = Db::table("new_common_filetype")->where($whrCommonFt)->select()->toArray(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             $common_ft_ids = array_column($common_fts, "id"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $ft_ids = array_filter(array_merge($ft_ids, (array) $common_ft_ids)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if ($ft_ids) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if ($common_ft_ids) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 $whr = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $whr[] = ["type", "=", ProjectState::INTEGRAL]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $whr[] = ["typeId", "in", $common_ft_ids]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if ($id) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     $whr[] = ["mainId", "=", $id]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    $whr[] = ["type", "=", ProjectState::INTEGRAL]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    if ($params["uploadFiles"]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        $whr[] = ["id", "in", $params["uploadFiles"]]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    $whr[] = ["id", "in", $params["uploadFiles"]]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                $whr[] = ["typeId", "in", $ft_ids]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 $distinct_filetypes = Db::table("new_talent_file")->where($whr)->distinct(true)->field("typeId")->select(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 $upload_type_counts = count($distinct_filetypes); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if ($upload_type_counts != count($ft_ids)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    $res = ["msg" => "请留意附件上传栏中带*号的内容均为必传项,请上传完整再提交审核"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if ($upload_type_counts != count($common_ft_ids)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    $res = ["msg" => "公共附件缺少必传附件"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     echo sprintf("<script>parent.IntegralInfoDlg.submitCallback(%s);</script>", json_encode($res)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     exit; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 |