generate_sn(ProjectProgressPayment::class, 'dataid'), 'num' => generate_sn(ProjectProgressPayment::class, 'num'), 'project_id' => $params['project_id'], 'djr' => $params['djr'], 'djrq' => $params['djrq'], 'sbhj' => $params['sbhj'], 'shhj' => $params['shhj'], 'ljhj' => $params['ljhj'], 'annex' => $params['annex'] ? json_encode($params['annex']) : null, ]); if(!empty($params['project_progress_payment_detail'])){ foreach ($params['project_progress_payment_detail'] as $item) { $item['project_progress_payment_id'] = $p->id; ProjectProgressPaymentDetailLogic::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 13:47 */ public static function edit(array $params): bool { Db::startTrans(); try { ProjectProgressPayment::where('id', $params['id'])->update([ 'project_id' => $params['project_id'], 'djr' => $params['djr'], 'djrq' => $params['djrq'], 'sbhj' => $params['sbhj'], 'shhj' => $params['shhj'], 'ljhj' => $params['ljhj'], 'annex' => $params['annex'] ? json_encode($params['annex']) : null, ]); if(!empty($params['project_progress_payment_detail'])){ foreach ($params['project_progress_payment_detail'] as $item) { if(!empty($item['id'])){ ProjectProgressPaymentDetailLogic::edit($item); }else{ $item['project_progress_payment_id'] = $params['id']; ProjectProgressPaymentDetailLogic::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 13:47 */ public static function delete(array $params): bool { $detail = ProjectProgressPaymentDetail::where('project_progress_payment_id','in',$params['id'])->findOrEmpty(); if(!$detail->isEmpty()){ self::setError('此数据关联了项目进度款明细信息,须删除项目进度款明细信息'); return false; } return ProjectProgressPayment::destroy($params['id']); } /** * @notes 获取详情 * @param $params * @return array * @author likeadmin * @date 2024/02/23 13:47 */ public static function detail($params): array { $data = ProjectProgressPayment::with(['projectInfo'])->findOrEmpty($params['id'])->toArray(); $data['project_progress_payment_detail'] = ProjectProgressPaymentDetail::where('project_progress_payment_id', $data['id'])->select(); return $data; } public static function datas() { $datas = ProjectProgressPayment::field(['id', 'num']) ->order(['id' => 'desc']) ->select() ->toArray(); foreach ($datas as &$item) { $item['projectinfo'] = 'ID:' . $item['id'] . ' / 单号:' . $item['num']; } return $datas; } }