cqp 3 долоо хоног өмнө
parent
commit
5a169aac10

+ 40 - 0
app/Service/ItemService.php

@@ -312,6 +312,12 @@ class ItemService extends Service
         $oldData = $model->toArray();
         if($oldData['state'] == Item::TYPE_THREE) return [false, '项目已完成,请勿重复操作'];
 
+        $bool = ItemNode::where('del_time',0)
+            ->where('item_id', $data['id'])
+            ->where('state', '<>',ItemNode::TYPE_THREE)
+            ->exists();
+        if($bool) return [false, '项目下存在节点未完结'];
+
         try {
             DB::beginTransaction();
 
@@ -1007,6 +1013,13 @@ class ItemService extends Service
             if(empty($item)) return [false, '项目不存在或已被删除'];
             if($item->state == ItemNodeMission::TYPE_THREE) return [false, '项目已完结,操作失败'];
             if($item->approval_state == ItemNodeMission::TYPE_MINUS_ONE) return [false, '项目审核中,操作失败'];
+            if($data['state'] == Item::TYPE_THREE) {
+                $bool = ItemNode::where('del_time',0)
+                    ->where('item_id', $data['id'])
+                    ->where('state', '<>',ItemNode::TYPE_THREE)
+                    ->exists();
+                if($bool) return [false, '项目下存在节点未完结'];
+            }
 
             $bool = Item::where('code',$data['code'])
                 ->where('top_depart_id', $data['top_depart_id'])
@@ -1162,6 +1175,12 @@ class ItemService extends Service
         $oldData = $model->toArray();
         if($oldData['state'] == ItemNode::TYPE_THREE) return [false, '项目节点已完成,请勿重复操作'];
 
+        $bool = ItemNodeMission::where('del_time',0)
+            ->where('item_node_id', $data['id'])
+            ->where('state', '<>',ItemNodeMission::TYPE_THREE)
+            ->exists();
+        if($bool) return [false, '节点下存在任务未完结'];
+
         try {
             DB::beginTransaction();
 
@@ -1767,6 +1786,14 @@ class ItemService extends Service
             if(empty($item)) return [false, '项目节点不存在或已被删除'];
             if($item->approval_state == ItemNode::TYPE_MINUS_ONE) return [false, '节点审核中,操作失败'];
 
+            if($data['state'] == ItemNode::TYPE_THREE) {
+                $bool = ItemNodeMission::where('del_time',0)
+                    ->where('item_node_id', $data['id'])
+                    ->where('state', '<>',ItemNodeMission::TYPE_THREE)
+                    ->exists();
+                if($bool) return [false, '节点下存在任务未完结'];
+            }
+
             $bool = ItemNode::where('title', $data['title'])
                 ->where('item_id',$data['item_id'])
                 ->where('top_depart_id', $data['top_depart_id'])
@@ -1827,6 +1854,12 @@ class ItemService extends Service
         $oldData = $model->toArray();
         if($oldData['state'] == ItemNodeMission::TYPE_THREE) return [false, '任务已完成,请勿重复操作'];
 
+        $bool = ItemNodeMission::where('del_time',0)
+            ->where('parent_item_node_mission_id', $data['id'])
+            ->where('state', '<>',ItemNodeMission::TYPE_THREE)
+            ->exists();
+        if($bool) return [false, '任务下存在子任务未完结'];
+
         try {
             DB::beginTransaction();
 
@@ -2531,6 +2564,13 @@ class ItemService extends Service
                 ->first();
             if(empty($item)) return [false, '项目节点下任务不存在或已被删除'];
             if($item->approval_state == ItemNodeMission::TYPE_MINUS_ONE) return [false, '任务审核中,操作失败'];
+            if($data['state'] == ItemNodeMission::TYPE_THREE) {
+                $bool = ItemNodeMission::where('del_time',0)
+                    ->where('parent_item_node_mission_id', $data['id'])
+                    ->where('state', '<>',ItemNodeMission::TYPE_THREE)
+                    ->exists();
+                if($bool) return [false, '任务下存在子任务未完结'];
+            }
 
             $bool = ItemNodeMission::where('title', $data['title'])
                 ->where('item_node_id',$data['item_node_id'])