| 
					
				 | 
			
			
				@@ -5,11 +5,12 @@ namespace app\enterprise\controller; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 use app\enterprise\common\EnterpriseController; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 use think\facade\Db; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 use app\common\api\EnterpriseApi; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-use app\enterprise\validate\TalentInfo; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-use app\common\api\IntegralState; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+use app\common\state\IntegralState; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 use app\common\api\IntegralRecordApi; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 use app\common\api\TalentLogApi; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-use app\common\api\Project; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+use app\common\state\ProjectState; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+use app\enterprise\validate\IntegralValidator; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+use think\exception\ValidateException; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  * Description of 积分申报 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -23,7 +24,7 @@ class Integral extends EnterpriseController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public function list() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $res = IntegralRecordApi::getList($this->request, $step); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $res = IntegralRecordApi::getList($this->request->param()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return json($res); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -37,7 +38,7 @@ class Integral extends EnterpriseController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         $info = IntegralRecordApi::getOne($id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         $ep = EnterpriseApi::getOne($this->user["uid"]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if ($info) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $info["real_state"] = TalentLogApi::getLastLog($id, Project::INTEGRAL)["state"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $info["real_state"] = TalentLogApi::getLastLog($id, ProjectState::INTEGRAL)["state"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if ($info && in_array($info["checkState"], [IntegralState::VERIFY_PASS, IntegralState::REVERIFY_PASS, IntegralState::REVERIFY_FAIL])) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return $this->view($request); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -236,7 +237,7 @@ class Integral extends EnterpriseController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private function save($info, \think\Request $request, $checkState) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $batch = \app\common\api\BatchApi::getValidBatch(Project::INTEGRAL, $this->user["type"]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $batch = \app\common\api\BatchApi::getValidBatch(ProjectState::INTEGRAL, $this->user["type"]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (!$batch) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 throw new ValidateException("不在人才认定申报申请时间内"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -255,14 +256,35 @@ class Integral extends EnterpriseController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 $data[$key] = trim($param[$key]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $updateDetailList = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             $insertDetailList = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $tmp_item_ids = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             $data["batch_id"] = $batch["id"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $detail_ids = $param["detail_id"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             $projectTypes = $param["projectType"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             $projectIds = $param["projectId"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             $item_ids = $param["item_id"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             $amounts = $param["amount"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $detailCounts = count($item_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)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $insertDetailList[] = [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    "id" => getStringId(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    "record_id" => "", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    "item_id" => "", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    "amount" => "", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    "unit" => "", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    "file_id" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (count($tmp_item_ids) != $detailCounts) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                throw new ValidateException("同一个申报中,同一个积分标准不能申报多次"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if ($info["real_state"] == IntegralState::VERIFY_REJECT) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 //真实状态是驳回,需要判断什么字段可以提交                 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 $modify_fields = array_filter(explode(",", $info["modify_fields"])); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -273,31 +295,7 @@ class Integral extends EnterpriseController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 $tmp_item_ids = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if ($info["modify_files"]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    $detailCounts = count($detail_ids); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    for ($i = 0; $i < $detailCounts; $i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        if (!in_array($item_ids[$i], $tmp_item_ids)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            $tmp_item_ids[] = $item_ids[$i]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        if ($detail_ids[$i]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            $updateDetailList[] = [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                "id" => $detail_ids[$i], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                "record_id" => "", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                "item_id" => "", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                "amount" => "", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                "unit" => "", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                "file_id" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            ]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            $insertDetailList[] = [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                "id" => getStringId(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                "record_id" => "", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                "item_id" => "", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                "amount" => "", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                "unit" => "", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                "file_id" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            ]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             $data["checkState"] = $checkState; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -308,8 +306,9 @@ class Integral extends EnterpriseController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 $success_msg = "保存成功"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if ($data["id"]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     //编辑 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    TalentModel::update($data); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    $last_log = TalentLogApi::getLastLog($data["id"], Project::INTEGRAL); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    $data["updateTime"] = date("Y-m-d H:i:s"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    \app\common\model\IntegralRecord::update($data); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    $last_log = TalentLogApi::getLastLog($data["id"], ProjectState::INTEGRAL); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     if ($last_log["new_state"] != IntegralState::SAVE) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         TalentLogApi::write(1, $data["id"], $checkState, "保存未提交", 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     } else { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -317,10 +316,11 @@ class Integral extends EnterpriseController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     //新增 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    $data["enterprise_id"] = $this->user["uid"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     $data["id"] = getStringId(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    $data["enterprise_id"] = $this->user["uid"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    $data["createTime"] = date("Y-m-d H:i:s"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     \app\common\model\IntegralRecord::insert($data); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    TalentLogApi::write(Project::INTEGRAL, $data["id"], $checkState, "保存未提交", 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    TalentLogApi::write(ProjectState::INTEGRAL, $data["id"], $checkState, "保存未提交", 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     $whr = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     $whr[] = ["fileId", "in", $files]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     $upd_checklog["mainId"] = $data["id"]; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -333,18 +333,20 @@ class Integral extends EnterpriseController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     $data["new_submit_time"] = date("Y-m-d H:i:s"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if ($data["id"]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    $data["updateTime"] = date("Y-m-d H:i:s"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     \app\common\model\IntegralRecord::update($data); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     //新增 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    $data["enterprise_id"] = $this->user["uid"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     $data["id"] = getStringId(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    $data["enterprise_id"] = $this->user["uid"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    $data["createTime"] = date("Y-m-d H:i:s"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     \app\common\model\IntegralRecord::insert($data); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     $whr = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     $whr[] = ["fileId", "in", $files]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     $upd_checklog["mainId"] = $data["id"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     Db::table("new_talent_checklog")->where($whr)->save($upd_checklog); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                TalentLogApi::write(Project::INTEGRAL, $id, $checkState, "确认提交审核", 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                TalentLogApi::write(ProjectState::INTEGRAL, $data["id"], $checkState, "确认提交审核", 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 throw new ValidateException($error_msg); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -353,7 +355,7 @@ class Integral extends EnterpriseController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 //删除多余的附件,一般是选择人才类型留下来的 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 $whr = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 $whr[] = ["mainId", "=", $data["id"]]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                $whr[] = ["type", "=", Project::INTEGRAL]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $whr[] = ["type", "=", ProjectState::INTEGRAL]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 $whr[] = ["id", "not in", $files]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 $_wait_del_files = Db::table("new_talent_file")->where($whr)->select()->toArray(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 $_logfileIds[] = []; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -373,8 +375,8 @@ class Integral extends EnterpriseController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 $whr = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 $whr[] = ["id", "in", $files]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                Db::table("new_talent_file")->where($whr)->save(["mainId" => $id]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                $res = ["code" => 200, "msg" => $success_msg, "obj" => ["id" => $id, "checkState" => $checkState]]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Db::table("new_talent_file")->where($whr)->save(["mainId" => $data["id"]]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $res = ["code" => 200, "msg" => $success_msg, "obj" => ["id" => $data["id"], "checkState" => $checkState]]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 $callback = $checkState == IntegralState::SAVE ? "infoCallback" : "submitCallback"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 echo sprintf("<script>parent.IntegralInfoDlg.{$callback}(%s);</script>", json_encode($res)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 exit(); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -397,7 +399,7 @@ class Integral extends EnterpriseController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         $checkState = $info["checkState"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (in_array($checkState, [0, 1])) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $log = TalentLogApi::getLastLog($id, Project::INTEGRAL); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $log = TalentLogApi::getLastLog($id, ProjectState::INTEGRAL); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if ($log["state"] > 1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 //有提交审核记录 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 return json(["msg" => "该申报已提交审核,无法删除"]); 
			 |