diff --git a/app/adminapi/controller/project/ProjectSalaryDetailController.php b/app/adminapi/controller/project/ProjectSalaryDetailController.php index b9e7a63d2..67db87335 100644 --- a/app/adminapi/controller/project/ProjectSalaryDetailController.php +++ b/app/adminapi/controller/project/ProjectSalaryDetailController.php @@ -11,35 +11,42 @@ // +---------------------------------------------------------------------- // | author: likeadminTeam // +---------------------------------------------------------------------- - - -namespace app\adminapi\controller\project; - - -use app\adminapi\controller\BaseAdminController; -use app\adminapi\lists\project\ProjectSalaryDetailLists; -use app\adminapi\logic\project\ProjectSalaryDetailLogic; -use app\adminapi\validate\project\ProjectSalaryDetailValidate; - - -/** - * 工资明细控制器 - * Class ProjectSalaryDetailController - * @package app\adminapi\controller\project - */ -class ProjectSalaryDetailController extends BaseAdminController -{ - - - /** - * @notes 获取工资明细列表 - * @return \think\response\Json - * @author likeadmin - * @date 2023/12/27 16:12 - */ - public function lists() - { - return $this->dataLists(new ProjectSalaryDetailLists()); - } - -} \ No newline at end of file + + + namespace app\adminapi\controller\project; + + + use app\adminapi\controller\BaseAdminController; + use app\adminapi\lists\project\ProjectSalaryDetailLists; + use app\adminapi\logic\project\ProjectSalaryDetailLogic; + use app\adminapi\validate\project\ProjectSalaryDetailValidate; + + + /** + * 工资明细控制器 + * Class ProjectSalaryDetailController + * @package app\adminapi\controller\project + */ + class ProjectSalaryDetailController extends BaseAdminController + { + + + /** + * @notes 获取工资明细列表 + * @return \think\response\Json + * @author likeadmin + * @date 2023/12/27 16:12 + */ + public function lists() + { + return $this->dataLists(new ProjectSalaryDetailLists()); + } + + public function delete() + { + $params = (new ProjectSalaryDetailValidate())->post()->goCheck('delete'); + ProjectSalaryDetailLogic::delete($params); + return $this->success('删除成功', [], 1, 1); + } + + } \ No newline at end of file diff --git a/app/adminapi/controller/project/ProjectSalaryPaymentController.php b/app/adminapi/controller/project/ProjectSalaryPaymentController.php index f586b5c22..f41af62a5 100644 --- a/app/adminapi/controller/project/ProjectSalaryPaymentController.php +++ b/app/adminapi/controller/project/ProjectSalaryPaymentController.php @@ -11,76 +11,87 @@ // +---------------------------------------------------------------------- // | author: likeadminTeam // +---------------------------------------------------------------------- - - -namespace app\adminapi\controller\project; - - -use app\adminapi\controller\BaseAdminController; -use app\adminapi\lists\project\ProjectSalaryPaymentLists; -use app\adminapi\logic\project\ProjectSalaryPaymentLogic; -use app\adminapi\validate\project\ProjectSalaryPaymentValidate; - - -/** - * 工资付款控制器 - * Class ProjectSalaryPaymentController - * @package app\adminapi\controller\project - */ -class ProjectSalaryPaymentController extends BaseAdminController -{ - - - /** - * @notes 获取工资付款列表 - * @return \think\response\Json - * @author likeadmin - * @date 2023/12/27 16:08 - */ - public function lists() - { - return $this->dataLists(new ProjectSalaryPaymentLists()); - } - - - /** - * @notes 添加工资付款 - * @return \think\response\Json - * @author likeadmin - * @date 2023/12/27 16:08 - */ - public function add() - { - $params = (new ProjectSalaryPaymentValidate())->post()->goCheck('add'); - $result = ProjectSalaryPaymentLogic::add($params); - if (true === $result) { - return $this->success('添加成功', [], 1, 1); - } - return $this->fail(ProjectSalaryPaymentLogic::getError()); - } - public function edit() { - $params = (new ProjectSalaryPaymentValidate())->post()->goCheck('edit'); - $result = ProjectSalaryPaymentLogic::edit($params); - if (true === $result) { - return $this->success('编辑成功', [], 1, 1); + + namespace app\adminapi\controller\project; + + + use app\adminapi\controller\BaseAdminController; + use app\adminapi\lists\project\ProjectSalaryPaymentLists; + use app\adminapi\logic\project\ProjectSalaryPaymentLogic; + use app\adminapi\validate\project\ProjectSalaryPaymentValidate; + + + /** + * 工资付款控制器 + * Class ProjectSalaryPaymentController + * @package app\adminapi\controller\project + */ + class ProjectSalaryPaymentController extends BaseAdminController + { + + + /** + * @notes 获取工资付款列表 + * @return \think\response\Json + * @author likeadmin + * @date 2023/12/27 16:08 + */ + public function lists() + { + return $this->dataLists(new ProjectSalaryPaymentLists()); } - return $this->fail(ProjectSalaryPaymentLogic::getError()); - } - - - /** - * @notes 获取工资付款详情 - * @return \think\response\Json - * @author likeadmin - * @date 2023/12/27 16:08 - */ - public function detail() - { - $params = (new ProjectSalaryPaymentValidate())->goCheck('detail'); - $result = ProjectSalaryPaymentLogic::detail($params); - return $this->data($result); - } - - -} \ No newline at end of file + + + /** + * @notes 添加工资付款 + * @return \think\response\Json + * @author likeadmin + * @date 2023/12/27 16:08 + */ + public function add() + { + $params = (new ProjectSalaryPaymentValidate())->post()->goCheck('add'); + $result = ProjectSalaryPaymentLogic::add($params); + if (true === $result) { + return $this->success('添加成功', [], 1, 1); + } + return $this->fail(ProjectSalaryPaymentLogic::getError()); + } + + public function edit() + { + $params = (new ProjectSalaryPaymentValidate())->post()->goCheck('edit'); + $result = ProjectSalaryPaymentLogic::edit($params); + if (true === $result) { + return $this->success('编辑成功', [], 1, 1); + } + return $this->fail(ProjectSalaryPaymentLogic::getError()); + } + + public function delete() + { + $params = (new ProjectSalaryPaymentValidate())->post()->goCheck('delete'); + $result = ProjectSalaryPaymentLogic::delete($params); + if (true === $result) { + return $this->success('删除成功', [], 1, 1); + } + return $this->fail(ProjectSalaryPaymentLogic::getError()); + } + + + /** + * @notes 获取工资付款详情 + * @return \think\response\Json + * @author likeadmin + * @date 2023/12/27 16:08 + */ + public function detail() + { + $params = (new ProjectSalaryPaymentValidate())->goCheck('detail'); + $result = ProjectSalaryPaymentLogic::detail($params); + return $this->data($result); + } + + + } \ No newline at end of file diff --git a/app/adminapi/logic/project/ProjectSalaryPaymentLogic.php b/app/adminapi/logic/project/ProjectSalaryPaymentLogic.php index 3a43d9447..897f52de2 100644 --- a/app/adminapi/logic/project/ProjectSalaryPaymentLogic.php +++ b/app/adminapi/logic/project/ProjectSalaryPaymentLogic.php @@ -11,124 +11,129 @@ // +---------------------------------------------------------------------- // | author: likeadminTeam // +---------------------------------------------------------------------- - -namespace app\adminapi\logic\project; - - -use app\common\model\build\BuildPlan; -use app\common\model\build\BuildReport; -use app\common\model\build\BuildReportDetail; -use app\common\model\project\Project; -use app\common\model\project\ProjectAttendanceDetail; -use app\common\model\project\ProjectPersonnel; -use app\common\model\project\ProjectSalaryDetail; -use app\common\model\project\ProjectSalaryPayment; -use app\common\logic\BaseLogic; -use think\facade\Db; - - -/** - * 工资付款逻辑 - * Class ProjectSalaryPaymentLogic - * @package app\adminapi\logic\project - */ -class ProjectSalaryPaymentLogic extends BaseLogic -{ - /** - * @notes 添加工资付款 - * @param array $params - * @return bool - * @author likeadmin - * @date 2023/12/27 16:08 - */ - public static function add(array $params): bool - { - Db::startTrans(); - try { - $res = ProjectSalaryPayment::create([ - 'payment_code' => data_unique_code('项目工资付款单'), - 'project_id' => $params['project_id'], - 'payment_type' => $params['payment_type'], - 'apply_date' => strtotime($params['apply_date']), - 'remark' => $params['remark'] ?? '', - 'annex' => $params['annex']? json_encode($params['annex']) : null, - ]); - foreach($params['payment_detail'] as $v){ - ProjectSalaryDetail::create([ - 'salary_payment_id' => $res->id, - 'person_id' => $v['person_id'], - 'apply_date' => strtotime($params['apply_date']), - 'apply_amount' => $v['apply_amount'], - 'remark' => $v['remark'] ?? '', - ]); - } - Db::commit(); - return true; - } catch (\Exception $e) { - Db::rollback(); - self::setError($e->getMessage()); - return false; - } - } + namespace app\adminapi\logic\project; - public static function edit(array $params): bool + + use app\common\logic\BaseLogic; + use app\common\model\project\Project; + use app\common\model\project\ProjectSalaryDetail; + use app\common\model\project\ProjectSalaryPayment; + use think\facade\Db; + + + /** + * 工资付款逻辑 + * Class ProjectSalaryPaymentLogic + * @package app\adminapi\logic\project + */ + class ProjectSalaryPaymentLogic extends BaseLogic { - Db::startTrans(); - try { - ProjectSalaryPayment::where('id', $params['id'])->update([ - 'project_id' => $params['project_id'], - 'payment_type' => $params['payment_type'], - 'apply_date' => strtotime($params['apply_date']), - 'remark' => $params['remark'] ?? '', - 'annex' => $params['annex']? json_encode($params['annex']) : null, - 'update_time' => time(), - ]); - foreach($params['payment_detail'] as $v){ - if(isset($v['id']) && $v['id'] != ''){ - ProjectSalaryDetail::where('id',$v['id'])->update([ - 'salary_payment_id' => $params['id'], - 'person_id' => $v['person_id'], - 'apply_date' => strtotime($params['apply_date']), - 'apply_amount' => $v['apply_amount'], - 'remark' => $v['remark'] ?? '', - 'update_time' => time(), - ]); - }else{ + + /** + * @notes 添加工资付款 + * @param array $params + * @return bool + * @author likeadmin + * @date 2023/12/27 16:08 + */ + public static function add(array $params): bool + { + Db::startTrans(); + try { + $res = ProjectSalaryPayment::create([ + 'payment_code' => data_unique_code('项目工资付款单'), + 'project_id' => $params['project_id'], + 'payment_type' => $params['payment_type'], + 'apply_date' => strtotime($params['apply_date']), + 'remark' => $params['remark'] ?? '', + 'annex' => $params['annex'] ? json_encode($params['annex']) : null, + ]); + foreach ($params['payment_detail'] as $v) { ProjectSalaryDetail::create([ - 'salary_payment_id' => $params['id'], + 'salary_payment_id' => $res->id, 'person_id' => $v['person_id'], 'apply_date' => strtotime($params['apply_date']), 'apply_amount' => $v['apply_amount'], 'remark' => $v['remark'] ?? '', ]); } + Db::commit(); + return true; + } catch (\Exception $e) { + Db::rollback(); + self::setError($e->getMessage()); + return false; } - Db::commit(); - return true; - } catch (\Exception $e) { - Db::rollback(); - self::setError($e->getMessage()); - return false; } - } - - - /** - * @notes 获取工资付款详情 - * @param $params - * @return array - * @author likeadmin - * @date 2023/12/27 16:08 - */ - public static function detail($params): array - { - $data = ProjectSalaryPayment::field('id,payment_code,project_id,payment_type,apply_date,remark,annex')->findOrEmpty($params['id']); - $project = Project::field('name,project_code')->where('id',$data['project_id'])->findOrEmpty(); - $data['project_name'] = $project['name']; - $data['project_code'] = $project['project_code']; - //总工资付款 - $data['total_amount'] = ProjectSalaryDetail::where('salary_payment_id',$data['id'])->sum('apply_amount'); - return $data->toArray(); - } -} \ No newline at end of file + + public static function edit(array $params): bool + { + Db::startTrans(); + try { + ProjectSalaryPayment::where('id', $params['id'])->update([ + 'project_id' => $params['project_id'], + 'payment_type' => $params['payment_type'], + 'apply_date' => strtotime($params['apply_date']), + 'remark' => $params['remark'] ?? '', + 'annex' => $params['annex'] ? json_encode($params['annex']) : null, + 'update_time' => time(), + ]); + foreach ($params['payment_detail'] as $v) { + if (isset($v['id']) && $v['id'] != '') { + ProjectSalaryDetail::where('id', $v['id'])->update([ + 'salary_payment_id' => $params['id'], + 'person_id' => $v['person_id'], + 'apply_date' => strtotime($params['apply_date']), + 'apply_amount' => $v['apply_amount'], + 'remark' => $v['remark'] ?? '', + 'update_time' => time(), + ]); + } else { + ProjectSalaryDetail::create([ + 'salary_payment_id' => $params['id'], + 'person_id' => $v['person_id'], + 'apply_date' => strtotime($params['apply_date']), + 'apply_amount' => $v['apply_amount'], + 'remark' => $v['remark'] ?? '', + ]); + } + } + Db::commit(); + return true; + } catch (\Exception $e) { + Db::rollback(); + self::setError($e->getMessage()); + return false; + } + } + + public static function delete(array $params): bool + { + $detail = ProjectSalaryDetail::where('salary_payment_id', 'in', $params['id'])->findOrEmpty(); + if (!$detail->isEmpty()) { + self::setError('此数据关联了工资明细内容,需删除工资明细内容'); + return false; + } + return ProjectSalaryPayment::destroy($params['id']); + } + + + /** + * @notes 获取工资付款详情 + * @param $params + * @return array + * @author likeadmin + * @date 2023/12/27 16:08 + */ + public static function detail($params): array + { + $data = ProjectSalaryPayment::field('id,payment_code,project_id,payment_type,apply_date,remark,annex')->findOrEmpty($params['id']); + $project = Project::field('name,project_code')->where('id', $data['project_id'])->findOrEmpty(); + $data['project_name'] = $project['name']; + $data['project_code'] = $project['project_code']; + //总工资付款 + $data['total_amount'] = ProjectSalaryDetail::where('salary_payment_id', $data['id'])->sum('apply_amount'); + return $data->toArray(); + } + } \ No newline at end of file