update([ 'project_id' => $params['project_id'], 'djr' => $params['djr'], 'djrq' => $params['djrq'], ]); if (!empty($params['project_change_visa_content'])) { foreach ($params['project_change_visa_content'] as $item) { if (!empty($item['id'])) { ProjectChangeVisaContentLogic::edit($item); } else { $item['project_change_visa_id'] = $params['id']; ProjectChangeVisaContentLogic::add($item); } } } Db::commit(); return true; } catch (\Exception $e) { Db::rollback(); self::setError($e->getMessage()); return false; } } /** * @notes 添加 * @param array $params * @return bool * @author likeadmin * @date 2024/02/23 09:58 */ public static function add(array $params): bool { Db::startTrans(); try { $projectChangeVisa = ProjectChangeVisa::create([ 'dataid' => generate_sn(ProjectChangeVisa::class, 'dataid'), 'num' => generate_sn(ProjectChangeVisa::class, 'num'), 'project_id' => $params['project_id'], 'djr' => $params['djr'], 'djrq' => $params['djrq'], ]); if (!empty($params['project_change_visa_content'])) { foreach ($params['project_change_visa_content'] as $item) { $item['project_change_visa_id'] = $projectChangeVisa->id; ProjectChangeVisaContentLogic::add($item); } } Db::commit(); return true; } catch (\Exception $e) { Db::rollback(); self::setError($e->getMessage()); return false; } } /** * @notes 删除 * @param array $params * @return bool * @author likeadmin * @date 2024/02/23 09:58 */ public static function delete(array $params): bool { $data = ProjectChangeVisaContent::where('project_change_visa_id', 'in', $params['id'])->findOrEmpty(); if (!$data->isEmpty()) { self::setError('此数据关联了项目变更签证明细信息,须删除项目变更签证明细信息'); return false; } return ProjectChangeVisa::destroy($params['id']); } /** * @notes 获取详情 * @param $params * @return array * @author likeadmin * @date 2024/02/23 09:58 */ public static function detail($params): array { $data = ProjectChangeVisa::with(['projectInfo'])->findOrEmpty($params['id']); $data['project_change_visa_content'] = ProjectChangeVisaContent::where('project_change_visa_id', $data['id'])->select(); $djr = Admin::field('name')->where('id', $data['djr'])->findOrEmpty(); $data['djr_name'] = $djr?->name; return $data->toArray(); } public static function datas() { $datas = ProjectChangeVisa::field(['id', 'num']) ->order(['id' => 'desc']) ->select() ->toArray(); foreach ($datas as &$item) { $item['projectinfo'] = 'ID:' . $item['id'] . ' / 单号:' . $item['num']; } return $datas; } }