From e79af98d1def276cacc5cceeea608a8d09cc19e6 Mon Sep 17 00:00:00 2001 From: weiz <736250432@qq.com> Date: Tue, 9 Apr 2024 11:22:24 +0800 Subject: [PATCH] update --- .../marketing/MarketingContractLists.php | 2 +- .../MarketingFrameworkAgreementLists.php | 2 +- .../MarketingSupplementaryAgreementLists.php | 2 +- .../project/ProjectAttendanceDetailLists.php | 2 +- .../marketing/MarketingContractLogic.php | 2 +- .../MarketingFrameworkAgreementLogic.php | 2 +- .../MarketingSupplementaryAgreementLogic.php | 2 +- .../project/ProjectAttendanceDetailLogic.php | 251 +++++++++--------- .../ProjectAttendanceDetailValidate.php | 13 +- 9 files changed, 143 insertions(+), 135 deletions(-) diff --git a/app/adminapi/lists/marketing/MarketingContractLists.php b/app/adminapi/lists/marketing/MarketingContractLists.php index 98c2b63da..813a594bd 100644 --- a/app/adminapi/lists/marketing/MarketingContractLists.php +++ b/app/adminapi/lists/marketing/MarketingContractLists.php @@ -66,7 +66,7 @@ $contract = MarketingContract::field('contract_name')->where('id', $data['related_contract_id'])->findOrEmpty(); $custom = MarketingCustom::field('name')->where('id', $data['part_a'])->findOrEmpty(); $dept = Dept::where('id', 'in', [$data['signed_dept'], $data['supervise_dept']])->column('name', 'id'); - $admin = Admin::where('in', 'in', [$data['part_b_signatory'], $data['signed_head'], $data['project_manager'], $data['seal_user']])->column('name', 'id'); + $admin = Admin::where('id', 'in', [$data['part_b_signatory'], $data['signed_head'], $data['project_manager'], $data['seal_user']])->column('name', 'id'); $data['framework_agreement_name'] = $contract['contract_name']; $data['part_a_name'] = $custom['name']; $data['part_b_signatory_name'] = $admin[$data['part_b_signatory']]; diff --git a/app/adminapi/lists/marketing/MarketingFrameworkAgreementLists.php b/app/adminapi/lists/marketing/MarketingFrameworkAgreementLists.php index 37879da8e..d5812d7fe 100644 --- a/app/adminapi/lists/marketing/MarketingFrameworkAgreementLists.php +++ b/app/adminapi/lists/marketing/MarketingFrameworkAgreementLists.php @@ -64,7 +64,7 @@ ->select()->each(function ($data) { $custom = MarketingCustom::field('name')->where('id', $data['part_a'])->findOrEmpty(); $dept = Dept::field('name')->where('id', $data['signed_dept'])->findOrEmpty(); - $admin = Admin::where('in', 'in', [$data['part_b_signatory'], $data['signed_head'], $data['seal_user']])->column('name', 'id'); + $admin = Admin::where('id', 'in', [$data['part_b_signatory'], $data['signed_head'], $data['seal_user']])->column('name', 'id'); $data['part_a_name'] = $custom['name']; $data['part_b_signatory_name'] = $admin[$data['part_b_signatory']]; $data['signed_dept_name'] = $dept['name']; diff --git a/app/adminapi/lists/marketing/MarketingSupplementaryAgreementLists.php b/app/adminapi/lists/marketing/MarketingSupplementaryAgreementLists.php index 8361d0758..573711fd6 100644 --- a/app/adminapi/lists/marketing/MarketingSupplementaryAgreementLists.php +++ b/app/adminapi/lists/marketing/MarketingSupplementaryAgreementLists.php @@ -65,7 +65,7 @@ $contract = MarketingContract::field('contract_name')->where('id', $data['related_contract_id'])->findOrEmpty(); $custom = MarketingCustom::field('name')->where('id', $data['part_a'])->findOrEmpty(); $dept = Dept::field('name')->where('id', $data['signed_dept'])->findOrEmpty(); - $admin = Admin::where('in', 'in', [$data['part_b_signatory'], $data['signed_head'], $data['seal_user']])->column('name', 'id'); + $admin = Admin::where('id', 'in', [$data['part_b_signatory'], $data['signed_head'], $data['seal_user']])->column('name', 'id'); $data['supplementary_agreement_name'] = $contract['contract_name']; $data['part_a_name'] = $custom['name']; $data['part_b_signatory_name'] = $admin[$data['part_b_signatory']]; diff --git a/app/adminapi/lists/project/ProjectAttendanceDetailLists.php b/app/adminapi/lists/project/ProjectAttendanceDetailLists.php index a089b6ae3..ee158d890 100644 --- a/app/adminapi/lists/project/ProjectAttendanceDetailLists.php +++ b/app/adminapi/lists/project/ProjectAttendanceDetailLists.php @@ -41,7 +41,7 @@ public function setSearch(): array { return [ - '=' => ['project_id'] + '=' => ['attendance_id', 'project_id'] ]; } diff --git a/app/adminapi/logic/marketing/MarketingContractLogic.php b/app/adminapi/logic/marketing/MarketingContractLogic.php index 6703d917f..357a4d58f 100644 --- a/app/adminapi/logic/marketing/MarketingContractLogic.php +++ b/app/adminapi/logic/marketing/MarketingContractLogic.php @@ -191,7 +191,7 @@ $contract = MarketingContract::field('contract_name')->where('id', $data['related_contract_id'])->findOrEmpty(); $custom = MarketingCustom::field('name')->where('id', $data['part_a'])->findOrEmpty(); $dept = Dept::where('id', 'in', [$data['signed_dept'], $data['supervise_dept']])->column('name', 'id'); - $admin = Admin::where('in', 'in', [$data['part_b_signatory'], $data['signed_head'], $data['project_manager'], $data['seal_user']])->column('name', 'id'); + $admin = Admin::where('id', 'in', [$data['part_b_signatory'], $data['signed_head'], $data['project_manager'], $data['seal_user']])->column('name', 'id'); $data['framework_agreement_name'] = $contract['contract_name']; $data['part_a_name'] = $custom['name']; $data['part_b_signatory_name'] = $admin[$data['part_b_signatory']]; diff --git a/app/adminapi/logic/marketing/MarketingFrameworkAgreementLogic.php b/app/adminapi/logic/marketing/MarketingFrameworkAgreementLogic.php index c2f89c52e..1ac53dcc2 100644 --- a/app/adminapi/logic/marketing/MarketingFrameworkAgreementLogic.php +++ b/app/adminapi/logic/marketing/MarketingFrameworkAgreementLogic.php @@ -166,7 +166,7 @@ $data = MarketingContract::withoutField('update_time,delete_time')->findOrEmpty($params['id']); $custom = MarketingCustom::field('name')->where('id', $data['part_a'])->findOrEmpty(); $dept = Dept::field('name')->where('id', $data['signed_dept'])->findOrEmpty(); - $admin = Admin::where('in', 'in', [$data['part_b_signatory'], $data['signed_head'], $data['seal_user']])->column('name', 'id'); + $admin = Admin::where('id', 'in', [$data['part_b_signatory'], $data['signed_head'], $data['seal_user']])->column('name', 'id'); $data['part_a_name'] = $custom['name']; $data['part_b_signatory_name'] = $admin[$data['part_b_signatory']]; $data['signed_dept_name'] = $dept['name']; diff --git a/app/adminapi/logic/marketing/MarketingSupplementaryAgreementLogic.php b/app/adminapi/logic/marketing/MarketingSupplementaryAgreementLogic.php index 870e23d37..a790ec814 100644 --- a/app/adminapi/logic/marketing/MarketingSupplementaryAgreementLogic.php +++ b/app/adminapi/logic/marketing/MarketingSupplementaryAgreementLogic.php @@ -163,7 +163,7 @@ $contract = MarketingContract::field('contract_name')->where('id', $data['related_contract_id'])->findOrEmpty(); $custom = MarketingCustom::field('name')->where('id', $data['part_a'])->findOrEmpty(); $dept = Dept::field('name')->where('id', $data['signed_dept'])->findOrEmpty(); - $admin = Admin::where('in', 'in', [$data['part_b_signatory'], $data['signed_head'], $data['seal_user']])->column('name', 'id'); + $admin = Admin::where('id', 'in', [$data['part_b_signatory'], $data['signed_head'], $data['seal_user']])->column('name', 'id'); $data['supplementary_agreement_name'] = $contract['contract_name']; $data['part_a_name'] = $custom['name']; $data['part_b_signatory_name'] = $admin[$data['part_b_signatory']]; diff --git a/app/adminapi/logic/project/ProjectAttendanceDetailLogic.php b/app/adminapi/logic/project/ProjectAttendanceDetailLogic.php index ff736bfb5..dd5c262b2 100644 --- a/app/adminapi/logic/project/ProjectAttendanceDetailLogic.php +++ b/app/adminapi/logic/project/ProjectAttendanceDetailLogic.php @@ -11,124 +11,133 @@ // +---------------------------------------------------------------------- // | author: likeadminTeam // +---------------------------------------------------------------------- - -namespace app\adminapi\logic\project; - - -use app\common\model\project\Project; -use app\common\model\project\ProjectAttendanceDetail; -use app\common\logic\BaseLogic; -use app\common\model\project\ProjectPersonnel; -use think\facade\Db; - - -/** - * 考勤明细逻辑 - * Class ProjectAttendanceDetailLogic - * @package app\adminapi\logic\project - */ -class ProjectAttendanceDetailLogic extends BaseLogic -{ - - - /** - * @notes 添加考勤明细 - * @param array $params - * @return bool - * @author likeadmin - * @date 2023/12/26 10:54 - */ - public static function add(array $params): bool - { - Db::startTrans(); - try { - ProjectAttendanceDetail::create([ - 'project_id' => $params['project_id'], - 'person_id' => $params['person_id'], - 'attendance_date' => strtotime($params['attendance_date']), - 'work_start_time' => strtotime($params['work_start_time']), - 'work_end_time' => strtotime($params['work_end_time']), - 'work_record_num' => $params['work_record_num'], - 'daily_salary' => $params['daily_salary'], - 'daily_living' => $params['daily_living'], - 'daily_subsidy' => $params['daily_subsidy'], - 'daily_other' => $params['daily_other'], - 'daily_income' => $params['daily_income'], - 'remark' => $params['remark'], - ]); - Db::commit(); - return true; - } catch (\Exception $e) { - Db::rollback(); - self::setError($e->getMessage()); - return false; - } - } - - - /** - * @notes 编辑考勤明细 - * @param array $params - * @return bool - * @author likeadmin - * @date 2023/12/26 10:54 - */ - public static function edit(array $params): bool - { - Db::startTrans(); - try { - ProjectAttendanceDetail::where('id', $params['id'])->update([ - 'attendance_date' => strtotime($params['attendance_date']), - 'work_start_time' => strtotime($params['work_start_time']), - 'work_end_time' => strtotime($params['work_end_time']), - 'work_record_num' => $params['work_record_num'], - 'daily_salary' => $params['daily_salary'], - 'daily_living' => $params['daily_living'], - 'daily_subsidy' => $params['daily_subsidy'], - 'daily_other' => $params['daily_other'], - 'daily_income' => $params['daily_income'], - 'remark' => $params['remark'], - ]); - Db::commit(); - return true; - } catch (\Exception $e) { - Db::rollback(); - self::setError($e->getMessage()); - return false; - } - } - - - /** - * @notes 删除考勤明细 - * @param array $params - * @return bool - * @author likeadmin - * @date 2023/12/26 10:54 - */ - public static function delete(array $params): bool - { - return ProjectAttendanceDetail::destroy($params['id']); - } - - - /** - * @notes 获取考勤明细详情 - * @param $params - * @return array - * @author likeadmin - * @date 2023/12/26 10:54 - */ - public static function detail($params): array - { - $data = ProjectAttendanceDetail::findOrEmpty($params['id'])->toArray(); - $project = Project::field('name,project_code')->where('id',$data['project_id'])->findOrEmpty(); - $person = ProjectPersonnel::field('name,idcard,work_type')->where('id',$data['person_id'])->findOrEmpty(); - $data['project_name'] = $project['name']; - $data['project_code'] = $project['project_code']; - $data['person_name'] = $person['name']; - $data['person_idcard'] = $person['idcard']; - $data['work_type_text'] = $person->work_type_text; - return $data; - } -} \ No newline at end of file + + namespace app\adminapi\logic\project; + + + use app\common\logic\BaseLogic; + use app\common\model\project\Project; + use app\common\model\project\ProjectAttendanceDetail; + use app\common\model\project\ProjectAttendanceRecord; + use app\common\model\project\ProjectPersonnel; + use think\facade\Db; + + + /** + * 考勤明细逻辑 + * Class ProjectAttendanceDetailLogic + * @package app\adminapi\logic\project + */ + class ProjectAttendanceDetailLogic extends BaseLogic + { + + + /** + * @notes 添加考勤明细 + * @param array $params + * @return bool + * @author likeadmin + * @date 2023/12/26 10:54 + */ + public static function add(array $params): bool + { + $attendance = ProjectAttendanceRecord::field('project_id')->where('id', $params['attendance_id'])->findOrEmpty(); + Db::startTrans(); + try { + ProjectAttendanceDetail::create([ + 'attendance_id' => $params['attendance_id'], + 'project_id' => $attendance['project_id'], + 'person_id' => $params['person_id'], + 'attendance_date' => strtotime($params['attendance_date']), + 'work_start_time' => strtotime($params['work_start_time']), + 'work_end_time' => strtotime($params['work_end_time']), + 'work_record_num' => $params['work_record_num'], + 'daily_salary' => $params['daily_salary'], + 'daily_living' => $params['daily_living'], + 'daily_subsidy' => $params['daily_subsidy'], + 'daily_other' => $params['daily_other'], + 'daily_income' => $params['daily_income'], + 'remark' => $params['remark'], + ]); + Db::commit(); + return true; + } catch (\Exception $e) { + Db::rollback(); + self::setError($e->getMessage()); + return false; + } + } + + + /** + * @notes 编辑考勤明细 + * @param array $params + * @return bool + * @author likeadmin + * @date 2023/12/26 10:54 + */ + public static function edit(array $params): bool + { + $attendance = ProjectAttendanceRecord::field('project_id')->where('id', $params['attendance_id'])->findOrEmpty(); + Db::startTrans(); + try { + ProjectAttendanceDetail::where('id', $params['id'])->update([ + 'attendance_id' => $params['attendance_id'], + 'project_id' => $attendance['project_id'], + 'person_id' => $params['person_id'], + 'attendance_date' => strtotime($params['attendance_date']), + 'work_start_time' => strtotime($params['work_start_time']), + 'work_end_time' => strtotime($params['work_end_time']), + 'work_record_num' => $params['work_record_num'], + 'daily_salary' => $params['daily_salary'], + 'daily_living' => $params['daily_living'], + 'daily_subsidy' => $params['daily_subsidy'], + 'daily_other' => $params['daily_other'], + 'daily_income' => $params['daily_income'], + 'remark' => $params['remark'], + ]); + Db::commit(); + return true; + } catch (\Exception $e) { + Db::rollback(); + self::setError($e->getMessage()); + return false; + } + } + + + /** + * @notes 删除考勤明细 + * @param array $params + * @return bool + * @author likeadmin + * @date 2023/12/26 10:54 + */ + public static function delete(array $params): bool + { + return ProjectAttendanceDetail::destroy($params['id']); + } + + + /** + * @notes 获取考勤明细详情 + * @param $params + * @return array + * @author likeadmin + * @date 2023/12/26 10:54 + */ + public static function detail($params): array + { + $data = ProjectAttendanceDetail::findOrEmpty($params['id'])->toArray(); + $attendance = ProjectAttendanceRecord::field('attendance_code')->where('id', $params['attendance_id'])->findOrEmpty(); + $project = Project::field('name,project_code')->where('id', $data['project_id'])->findOrEmpty(); + $person = ProjectPersonnel::field('name,idcard,work_type')->where('id', $data['person_id'])->findOrEmpty(); + $data['attendance_code'] = $attendance['attendance_code']; + $data['project_name'] = $project['name']; + $data['project_code'] = $project['project_code']; + $data['person_name'] = $person['name']; + $data['person_idcard'] = $person['idcard']; + $data['work_type_text'] = $person->work_type_text; + return $data; + } + } \ No newline at end of file diff --git a/app/adminapi/validate/project/ProjectAttendanceDetailValidate.php b/app/adminapi/validate/project/ProjectAttendanceDetailValidate.php index 958ffe83a..0d8410bd5 100644 --- a/app/adminapi/validate/project/ProjectAttendanceDetailValidate.php +++ b/app/adminapi/validate/project/ProjectAttendanceDetailValidate.php @@ -15,7 +15,7 @@ namespace app\adminapi\validate\project; - use app\common\model\project\Project; + use app\common\model\project\ProjectAttendanceRecord; use app\common\model\project\ProjectPersonnel; use app\common\validate\BaseValidate; @@ -34,7 +34,7 @@ */ protected $rule = [ 'id' => 'require', - 'project_id' => 'require|checkProject', + 'attendance_id' => 'require|checkAttendance', 'person_id' => 'require|checkPerson', 'attendance_date' => 'require|dateFormat:Y-m-d', 'work_start_time' => 'dateFormat:H:i', @@ -49,7 +49,7 @@ protected $message = [ 'id.require' => '缺少必要参数', - 'project_id.require' => '请选择项目', + 'attendance_id.require' => '请选择考勤记录', 'person_id.require' => '请选择项目人员', 'attendance_date.require' => '请选择考勤日期', 'attendance_date.dateFormat' => '考勤日期格式错误', @@ -92,7 +92,6 @@ */ public function sceneEdit() { - return $this->only(['id', 'attendance_date', 'work_start_time', 'work_end_time', 'work_record_num', 'daily_salary', 'daily_living', 'daily_subsidy', 'daily_other', 'daily_income']); } /** @@ -118,11 +117,11 @@ return $this->only(['id']); } - public function checkProject($value): bool|string + public function checkAttendance($value): bool|string { - $data = Project::where('id', $value)->findOrEmpty(); + $data = ProjectAttendanceRecord::where('id', $value)->findOrEmpty(); if ($data->isEmpty()) { - return '项目不存在'; + return '考勤记录信息不存在'; } return true; }