|
|
@@ -26,6 +26,56 @@ use Illuminate\Support\Facades\DB;
|
|
|
|
|
|
class ItemService extends Service
|
|
|
{
|
|
|
+ public function itemGannetCommon($data,$user, $field = []){
|
|
|
+ if(empty($data['time'][0]) || empty($data['time'][1])) return [false, '请选择开始与结束时间'];
|
|
|
+ $return = $this->changeDateToTimeStampAboutRange($data['crt_time']);
|
|
|
+ $start = $return[0];
|
|
|
+ $end = $return[1];
|
|
|
+ $oneYearLater = strtotime('+1 year', $start);
|
|
|
+ if ($end > $oneYearLater) return [false, '查询范围不能超过一年'];
|
|
|
+ $type = [
|
|
|
+ 'item' => Item::class,
|
|
|
+ 'item_node' => ItemNode::class,
|
|
|
+ 'item_node_mission' => ItemNodeMission::class,
|
|
|
+ ];
|
|
|
+ if (empty($data['type']) && ! isset($type[$data['type']])) return [false , '类型错误'];
|
|
|
+ $class = $type[$data['type']];
|
|
|
+ $model = $class::TopAndEmployeeClear($user,$data);
|
|
|
+
|
|
|
+ $model = ItemNodeMission::TopAndEmployeeClear($user,$data);
|
|
|
+ $model = $model->where('del_time',0)
|
|
|
+// ->when(! empty($item_id),function ($query) use($item_id){
|
|
|
+// return $query->where('item_id', $item_id);
|
|
|
+// })
|
|
|
+// ->when(! empty($item_node_id),function ($query) use($item_node_id){
|
|
|
+// return $query->where('item_node_id', $item_node_id);
|
|
|
+// })
|
|
|
+ ->select($field)
|
|
|
+ ->orderby('id', 'desc');
|
|
|
+
|
|
|
+
|
|
|
+ if(! empty($data['title'])) $model->where('title', 'LIKE', '%'.$data['title'].'%');
|
|
|
+ if(! empty($data['code'])) $model->where('code', 'LIKE', '%'.$data['code'].'%');
|
|
|
+ if(! empty($data['id'])) $model->whereIn('id', $data['id']);
|
|
|
+ if(isset($data['state'])) $model->where('state', $data['state']);
|
|
|
+ if(isset($data['approval_state'])) $model->where('approval_state', $data['approval_state']);
|
|
|
+ if(! empty($data['crt_time'][0]) && ! empty($data['crt_time'][1])) {
|
|
|
+ $return = $this->changeDateToTimeStampAboutRange($data['crt_time']);
|
|
|
+ $model->where('crt_time','>=',$return[0]);
|
|
|
+ $model->where('crt_time','<=',$return[1]);
|
|
|
+ }
|
|
|
+
|
|
|
+ return $model;
|
|
|
+ }
|
|
|
+
|
|
|
+ public function itemGannetCommon1($data,$user){
|
|
|
+ $model = $this->itemNodeMissionCommon($data, $user);
|
|
|
+ $list = $this->limit($model,'',$data);
|
|
|
+ $list = $this->fillNodeMissionData($list);
|
|
|
+
|
|
|
+ return [true, $list];
|
|
|
+ }
|
|
|
+
|
|
|
public function itemFileUpLoad($data,$user){
|
|
|
// 1. 基础校验
|
|
|
$from = $data['from'] ?? null;
|
|
|
@@ -475,6 +525,7 @@ class ItemService extends Service
|
|
|
|
|
|
private function saveEmployee($id, $time, $data, $user, $old_employee_id = 0){
|
|
|
if($old_employee_id != $data['charge_id']){
|
|
|
+ //项目负责人更新
|
|
|
ItemEmployee::where('del_time',0)
|
|
|
->where('item_id', $id)
|
|
|
->where('data_id', $old_employee_id)
|
|
|
@@ -486,6 +537,42 @@ class ItemService extends Service
|
|
|
'top_depart_id' => $user['top_depart_id'],
|
|
|
'crt_time' => $time
|
|
|
]);
|
|
|
+
|
|
|
+ // 项目下的节点 如果有数据也要更新
|
|
|
+ $item_node = ItemNodeEmployee::where('item_id', $data['id'])
|
|
|
+ ->where('type', ItemNodeEmployee::type_one)
|
|
|
+ ->where('data_id', $old_employee_id)
|
|
|
+ ->select('item_id', 'item_node_id', 'top_depart_id')
|
|
|
+ ->get()->toArray();
|
|
|
+ ItemNodeEmployee::where('item_id', $data['id'])
|
|
|
+ ->where('type', ItemNodeEmployee::type_one)
|
|
|
+ ->where('data_id', $old_employee_id)
|
|
|
+ ->delete();
|
|
|
+ if(! empty($item_node)){
|
|
|
+ foreach ($item_node as $key => $value){
|
|
|
+ $item_node[$key]['data_id'] = $data['charge_id'];
|
|
|
+ $item_node[$key]['crt_time'] = $time;
|
|
|
+ }
|
|
|
+ ItemNodeEmployee::insert($item_node);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 项目下的节点的任务 如果有数据也要更新
|
|
|
+ $item_node_mission = ItemNodeMissionEmployee::where('item_id', $data['id'])
|
|
|
+ ->where('type', ItemNodeMissionEmployee::type_one)
|
|
|
+ ->where('data_id', $old_employee_id)
|
|
|
+ ->select('item_id', 'item_node_id', 'item_node_mission_id', 'top_depart_id')
|
|
|
+ ->get()->toArray();
|
|
|
+ ItemNodeMissionEmployee::where('item_id', $data['id'])
|
|
|
+ ->where('type', ItemNodeMissionEmployee::type_one)
|
|
|
+ ->where('data_id', $old_employee_id)
|
|
|
+ ->delete();
|
|
|
+ if(! empty($item_node_mission)){
|
|
|
+ foreach ($item_node_mission as $key => $value){
|
|
|
+ $item_node_mission[$key]['data_id'] = $data['charge_id'];
|
|
|
+ $item_node_mission[$key]['crt_time'] = $time;
|
|
|
+ }
|
|
|
+ ItemNodeMissionEmployee::insert($item_node_mission);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -1226,10 +1313,12 @@ class ItemService extends Service
|
|
|
}
|
|
|
|
|
|
private function saveNodeEmployee($id, $time, $data, $user, $old_employee_id = 0){
|
|
|
+ //负责人更换
|
|
|
if($old_employee_id != $data['charge_id']){
|
|
|
ItemNodeEmployee::where('del_time',0)
|
|
|
->where('item_node_id', $id)
|
|
|
->where('data_id', $old_employee_id)
|
|
|
+ ->where('type', 0)
|
|
|
->delete();
|
|
|
|
|
|
ItemNodeEmployee::insert([
|
|
|
@@ -1239,6 +1328,24 @@ class ItemService extends Service
|
|
|
'top_depart_id' => $user['top_depart_id'],
|
|
|
'crt_time' => $time
|
|
|
]);
|
|
|
+
|
|
|
+ //如果任务有数据 也需要更新
|
|
|
+ $item_node_mission = ItemNodeMissionEmployee::where('item_node_id', $data['id'])
|
|
|
+ ->where('type', ItemNodeMissionEmployee::type_two)
|
|
|
+ ->where('data_id', $old_employee_id)
|
|
|
+ ->select('item_id', 'item_node_id', 'item_node_mission_id', 'top_depart_id')
|
|
|
+ ->get()->toArray();
|
|
|
+ ItemNodeMissionEmployee::where('item_id', $data['id'])
|
|
|
+ ->where('type', ItemNodeMissionEmployee::type_two)
|
|
|
+ ->where('data_id', $old_employee_id)
|
|
|
+ ->delete();
|
|
|
+ if(! empty($item_node_mission)){
|
|
|
+ foreach ($item_node_mission as $key => $value){
|
|
|
+ $item_node_mission[$key]['data_id'] = $data['charge_id'];
|
|
|
+ $item_node_mission[$key]['crt_time'] = $time;
|
|
|
+ }
|
|
|
+ ItemNodeMissionEmployee::insert($item_node_mission);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|