From 6ea7d4469b38e860e6e08623c1b0819b58706f68 Mon Sep 17 00:00:00 2001 From: weiz <736250432@qq.com> Date: Fri, 5 Apr 2024 16:08:26 +0800 Subject: [PATCH] uodate --- .../MaterialPurchaseRequestController.php | 181 +++++---- .../ProjectAttendanceRecordController.php | 193 ++++----- .../ProjectMaterialBudgetController.php | 225 ++++++----- .../ProjectSubpackageBudgetController.php | 225 ++++++----- .../project/ProjectAttendanceDetailLists.php | 153 +++---- .../project/ProjectAttendanceRecordLogic.php | 53 ++- .../project/ProjectMaterialBudgetLogic.php | 350 ++++++++-------- .../project/ProjectSubpackageBudgetLogic.php | 382 +++++++++--------- .../SubcontractingContractValidate.php | 4 + .../ProjectAttendanceDetailValidate.php | 27 +- .../ProjectAttendanceRecordValidate.php | 7 + 11 files changed, 917 insertions(+), 883 deletions(-) diff --git a/app/adminapi/controller/material/MaterialPurchaseRequestController.php b/app/adminapi/controller/material/MaterialPurchaseRequestController.php index 9ed97eb2d..7ea3488c0 100644 --- a/app/adminapi/controller/material/MaterialPurchaseRequestController.php +++ b/app/adminapi/controller/material/MaterialPurchaseRequestController.php @@ -11,98 +11,97 @@ // +---------------------------------------------------------------------- // | author: likeadminTeam // +---------------------------------------------------------------------- - - -namespace app\adminapi\controller\material; - - -use app\adminapi\controller\BaseAdminController; -use app\adminapi\lists\material\MaterialPurchaseRequestLists; -use app\adminapi\logic\material\MaterialPurchaseRequestLogic; -use app\adminapi\validate\material\MaterialPurchaseRequestValidate; -use app\common\model\oa\Flow; -use app\common\model\oa\FlowType; - - -/** - * 材料采购申请控制器 - * Class MaterialPurchaseRequestController - * @package app\adminapi\controller\material - */ -class MaterialPurchaseRequestController extends BaseAdminController -{ - - - /** - * @notes 获取材料采购申请列表 - * @return \think\response\Json - * @author likeadmin - * @date 2024/01/09 13:47 - */ - public function lists() - { - return $this->dataLists(new MaterialPurchaseRequestLists()); - } - - - /** - * @notes 添加材料采购申请 - * @return \think\response\Json - * @author likeadmin - * @date 2024/01/09 13:47 - */ - public function add() - { - $params = (new MaterialPurchaseRequestValidate())->post()->goCheck('add'); - $result = MaterialPurchaseRequestLogic::add($params,$this->adminId); - if (true === $result) { - return $this->success('添加成功', [], 1, 1); - } - return $this->fail(MaterialPurchaseRequestLogic::getError()); - } - public function edit() + + namespace app\adminapi\controller\material; + + + use app\adminapi\controller\BaseAdminController; + use app\adminapi\lists\material\MaterialPurchaseRequestLists; + use app\adminapi\logic\material\MaterialPurchaseRequestLogic; + use app\adminapi\validate\material\MaterialPurchaseRequestValidate; + use app\common\model\oa\Flow; + use app\common\model\oa\FlowType; + + + /** + * 材料采购申请控制器 + * Class MaterialPurchaseRequestController + * @package app\adminapi\controller\material + */ + class MaterialPurchaseRequestController extends BaseAdminController { - $params = (new MaterialPurchaseRequestValidate())->post()->goCheck('edit'); - $result = MaterialPurchaseRequestLogic::edit($params,$this->adminId); - if (true === $result) { - return $this->success('编辑成功', [], 1, 1); + + + /** + * @notes 获取材料采购申请列表 + * @return \think\response\Json + * @author likeadmin + * @date 2024/01/09 13:47 + */ + public function lists() + { + return $this->dataLists(new MaterialPurchaseRequestLists()); } - return $this->fail(MaterialPurchaseRequestLogic::getError()); - } - - - - /** - * @notes 获取材料采购申请详情 - * @return \think\response\Json - * @author likeadmin - * @date 2024/01/09 13:47 - */ - public function detail() - { - $params = (new MaterialPurchaseRequestValidate())->goCheck('detail'); - $result = MaterialPurchaseRequestLogic::detail($params); - return $this->data($result); - } - - public function flows(): \think\response\Json - { - $flow_type = FlowType::where('type',5)->where('name','cgsq')->findOrEmpty(); - $data = Flow::field('id,name')->where('flow_cate',$flow_type['id'])->where('status',2)->select(); - return $this->success('请求成功',$data->toArray()); - } - - //添加审批 - public function approve(): \think\response\Json - { - $params = (new MaterialPurchaseRequestValidate())->post()->goCheck('approve'); - $result = MaterialPurchaseRequestLogic::approve($params,$this->adminId); - if (true === $result) { - return $this->success('提交审核信息成功', [], 1, 1); + + + /** + * @notes 添加材料采购申请 + * @return \think\response\Json + * @author likeadmin + * @date 2024/01/09 13:47 + */ + public function add() + { + $params = (new MaterialPurchaseRequestValidate())->post()->goCheck('add'); + $result = MaterialPurchaseRequestLogic::add($params, $this->adminId); + if (true === $result) { + return $this->success('添加成功', [], 1, 1); + } + return $this->fail(MaterialPurchaseRequestLogic::getError()); } - return $this->fail(MaterialPurchaseRequestLogic::getError()); - } - - -} \ No newline at end of file + + public function edit() + { + $params = (new MaterialPurchaseRequestValidate())->post()->goCheck('edit'); + $result = MaterialPurchaseRequestLogic::edit($params, $this->adminId); + if (true === $result) { + return $this->success('编辑成功', [], 1, 1); + } + return $this->fail(MaterialPurchaseRequestLogic::getError()); + } + + + /** + * @notes 获取材料采购申请详情 + * @return \think\response\Json + * @author likeadmin + * @date 2024/01/09 13:47 + */ + public function detail() + { + $params = (new MaterialPurchaseRequestValidate())->goCheck('detail'); + $result = MaterialPurchaseRequestLogic::detail($params); + return $this->data($result); + } + + public function flows(): \think\response\Json + { + $flow_type = FlowType::where('type', 5)->where('name', 'cgsq')->findOrEmpty(); + $data = Flow::field('id,name')->where('flow_cate', $flow_type['id'])->where('status', 2)->select(); + return $this->success('请求成功', $data->toArray()); + } + + //添加审批 + public function approve(): \think\response\Json + { + $params = (new MaterialPurchaseRequestValidate())->post()->goCheck('approve'); + $result = MaterialPurchaseRequestLogic::approve($params, $this->adminId); + if (true === $result) { + return $this->success('提交审核信息成功', [], 1, 1); + } + return $this->fail(MaterialPurchaseRequestLogic::getError()); + } + + + } \ No newline at end of file diff --git a/app/adminapi/controller/project/ProjectAttendanceRecordController.php b/app/adminapi/controller/project/ProjectAttendanceRecordController.php index 0b8565cb6..0e1f12413 100644 --- a/app/adminapi/controller/project/ProjectAttendanceRecordController.php +++ b/app/adminapi/controller/project/ProjectAttendanceRecordController.php @@ -11,98 +11,101 @@ // +---------------------------------------------------------------------- // | author: likeadminTeam // +---------------------------------------------------------------------- - - -namespace app\adminapi\controller\project; - - -use app\adminapi\controller\BaseAdminController; -use app\adminapi\lists\project\ProjectAttendanceRecordLists; -use app\adminapi\logic\project\ProjectAttendanceRecordLogic; -use app\adminapi\validate\project\ProjectAttendanceRecordValidate; - - -/** - * 考勤记录控制器 - * Class ProjectAttendanceRecordController - * @package app\adminapi\controller\project - */ -class ProjectAttendanceRecordController extends BaseAdminController -{ - - - /** - * @notes 获取考勤记录列表 - * @return \think\response\Json - * @author likeadmin - * @date 2023/12/26 09:44 - */ - public function lists() - { - return $this->dataLists(new ProjectAttendanceRecordLists()); - } - - - /** - * @notes 添加考勤记录 - * @return \think\response\Json - * @author likeadmin - * @date 2023/12/26 09:44 - */ - public function add() - { - $params = (new ProjectAttendanceRecordValidate())->post()->goCheck('add'); - $result = ProjectAttendanceRecordLogic::add($params); - if (true === $result) { - return $this->success('添加成功', [], 1, 1); - } - return $this->fail(ProjectAttendanceRecordLogic::getError()); - } - - - /** - * @notes 编辑考勤记录 - * @return \think\response\Json - * @author likeadmin - * @date 2023/12/26 09:44 - */ - public function edit() - { - $params = (new ProjectAttendanceRecordValidate())->post()->goCheck('edit'); - $result = ProjectAttendanceRecordLogic::edit($params); - if (true === $result) { - return $this->success('编辑成功', [], 1, 1); - } - return $this->fail(ProjectAttendanceRecordLogic::getError()); - } - - - /** - * @notes 删除考勤记录 - * @return \think\response\Json - * @author likeadmin - * @date 2023/12/26 09:44 - */ - public function delete() - { - $params = (new ProjectAttendanceRecordValidate())->post()->goCheck('delete'); - $res = ProjectAttendanceRecordLogic::delete($params); - return $res ? $this->success('删除成功', [], 1, 1) : $this->fail(ProjectAttendanceRecordLogic::getError()); - } - - - /** - * @notes 获取考勤记录详情 - * @return \think\response\Json - * @author likeadmin - * @date 2023/12/26 09:44 - */ - public function detail() - { - $params = (new ProjectAttendanceRecordValidate())->goCheck('detail'); - $result = ProjectAttendanceRecordLogic::detail($params); - return $this->data($result); - } - - -} \ No newline at end of file + + + namespace app\adminapi\controller\project; + + + use app\adminapi\controller\BaseAdminController; + use app\adminapi\lists\project\ProjectAttendanceRecordLists; + use app\adminapi\logic\project\ProjectAttendanceRecordLogic; + use app\adminapi\validate\project\ProjectAttendanceRecordValidate; + + + /** + * 考勤记录控制器 + * Class ProjectAttendanceRecordController + * @package app\adminapi\controller\project + */ + class ProjectAttendanceRecordController extends BaseAdminController + { + + + /** + * @notes 获取考勤记录列表 + * @return \think\response\Json + * @author likeadmin + * @date 2023/12/26 09:44 + */ + public function lists() + { + return $this->dataLists(new ProjectAttendanceRecordLists()); + } + + + /** + * @notes 添加考勤记录 + * @return \think\response\Json + * @author likeadmin + * @date 2023/12/26 09:44 + */ + public function add() + { + $params = (new ProjectAttendanceRecordValidate())->post()->goCheck('add'); + $result = ProjectAttendanceRecordLogic::add($params); + if (true === $result) { + return $this->success('添加成功', [], 1, 1); + } + return $this->fail(ProjectAttendanceRecordLogic::getError()); + } + + + /** + * @notes 编辑考勤记录 + * @return \think\response\Json + * @author likeadmin + * @date 2023/12/26 09:44 + */ + public function edit() + { + $params = (new ProjectAttendanceRecordValidate())->post()->goCheck('edit'); + $result = ProjectAttendanceRecordLogic::edit($params); + if (true === $result) { + return $this->success('编辑成功', [], 1, 1); + } + return $this->fail(ProjectAttendanceRecordLogic::getError()); + } + + + /** + * @notes 删除考勤记录 + * @return \think\response\Json + * @author likeadmin + * @date 2023/12/26 09:44 + */ + public function delete() + { + $params = (new ProjectAttendanceRecordValidate())->post()->goCheck('delete'); + $result = ProjectAttendanceRecordLogic::delete($params); + if (true === $result) { + return $this->success('删除成功', [], 1, 1); + } + return $this->fail(ProjectAttendanceRecordLogic::getError()); + } + + + /** + * @notes 获取考勤记录详情 + * @return \think\response\Json + * @author likeadmin + * @date 2023/12/26 09:44 + */ + public function detail() + { + $params = (new ProjectAttendanceRecordValidate())->goCheck('detail'); + $result = ProjectAttendanceRecordLogic::detail($params); + return $this->data($result); + } + + + } \ No newline at end of file diff --git a/app/adminapi/controller/project/ProjectMaterialBudgetController.php b/app/adminapi/controller/project/ProjectMaterialBudgetController.php index 85bf42671..8052217ce 100644 --- a/app/adminapi/controller/project/ProjectMaterialBudgetController.php +++ b/app/adminapi/controller/project/ProjectMaterialBudgetController.php @@ -11,118 +11,121 @@ // +---------------------------------------------------------------------- // | author: likeadminTeam // +---------------------------------------------------------------------- - - -namespace app\adminapi\controller\project; - - -use app\adminapi\controller\BaseAdminController; -use app\adminapi\lists\project\ProjectMaterialBudgetLists; -use app\adminapi\logic\project\ProjectMaterialBudgetLogic; -use app\adminapi\validate\project\ProjectMaterialBudgetValidate; -use app\common\model\oa\Flow; -use app\common\model\oa\FlowType; - - -/** - * 材料预算控制器 - * Class ProjectMaterialBudgetController - * @package app\adminapi\controller\project - */ -class ProjectMaterialBudgetController extends BaseAdminController -{ - - - /** - * @notes 获取材料预算列表 - * @return \think\response\Json - * @author likeadmin - * @date 2024/01/08 16:30 - */ - public function lists() - { - return $this->dataLists(new ProjectMaterialBudgetLists()); - } - - - /** - * @notes 添加材料预算 - * @return \think\response\Json - * @author likeadmin - * @date 2024/01/08 16:30 - */ - public function add() - { - $params = (new ProjectMaterialBudgetValidate())->post()->goCheck('add'); - $result = ProjectMaterialBudgetLogic::add($params,$this->adminId); - if (true === $result) { - return $this->success('添加成功', [], 1, 1); - } - return $this->fail(ProjectMaterialBudgetLogic::getError()); - } - - - /** - * @notes 编辑材料预算 - * @return \think\response\Json - * @author likeadmin - * @date 2024/01/08 16:30 - */ - public function edit() - { - $params = (new ProjectMaterialBudgetValidate())->post()->goCheck('edit'); - $result = ProjectMaterialBudgetLogic::edit($params); - if (true === $result) { - return $this->success('编辑成功', [], 1, 1); - } - return $this->fail(ProjectMaterialBudgetLogic::getError()); - } - - - /** - * @notes 删除材料预算 - * @return \think\response\Json - * @author likeadmin - * @date 2024/01/08 16:30 - */ - public function delete() - { - $params = (new ProjectMaterialBudgetValidate())->post()->goCheck('delete'); - ProjectMaterialBudgetLogic::delete($params); - return $this->success('删除成功', [], 1, 1); - } - - - /** - * @notes 获取材料预算详情 - * @return \think\response\Json - * @author likeadmin - * @date 2024/01/08 16:30 - */ - public function detail() - { - $params = (new ProjectMaterialBudgetValidate())->goCheck('detail'); - $result = ProjectMaterialBudgetLogic::detail($params); - return $this->data($result); - } - public function flows(): \think\response\Json - { - $flow_type = FlowType::where('type',4)->where('name','clys')->findOrEmpty(); - $data = Flow::field('id,name')->where('flow_cate',$flow_type['id'])->where('status',2)->select(); - return $this->success('请求成功',$data->toArray()); - } - //添加审批 - public function approve(): \think\response\Json + namespace app\adminapi\controller\project; + + + use app\adminapi\controller\BaseAdminController; + use app\adminapi\lists\project\ProjectMaterialBudgetLists; + use app\adminapi\logic\project\ProjectMaterialBudgetLogic; + use app\adminapi\validate\project\ProjectMaterialBudgetValidate; + use app\common\model\oa\Flow; + use app\common\model\oa\FlowType; + + + /** + * 材料预算控制器 + * Class ProjectMaterialBudgetController + * @package app\adminapi\controller\project + */ + class ProjectMaterialBudgetController extends BaseAdminController { - $params = (new ProjectMaterialBudgetValidate())->post()->goCheck('approve'); - $result = ProjectMaterialBudgetLogic::approve($params,$this->adminId); - if (true === $result) { - return $this->success('提交审核信息成功', [], 1, 1); + + + /** + * @notes 获取材料预算列表 + * @return \think\response\Json + * @author likeadmin + * @date 2024/01/08 16:30 + */ + public function lists() + { + return $this->dataLists(new ProjectMaterialBudgetLists()); } - return $this->fail(ProjectMaterialBudgetLogic::getError()); - } - - -} \ No newline at end of file + + + /** + * @notes 添加材料预算 + * @return \think\response\Json + * @author likeadmin + * @date 2024/01/08 16:30 + */ + public function add() + { + $params = (new ProjectMaterialBudgetValidate())->post()->goCheck('add'); + $result = ProjectMaterialBudgetLogic::add($params, $this->adminId); + if (true === $result) { + return $this->success('添加成功', [], 1, 1); + } + return $this->fail(ProjectMaterialBudgetLogic::getError()); + } + + + /** + * @notes 编辑材料预算 + * @return \think\response\Json + * @author likeadmin + * @date 2024/01/08 16:30 + */ + public function edit() + { + $params = (new ProjectMaterialBudgetValidate())->post()->goCheck('edit'); + $result = ProjectMaterialBudgetLogic::edit($params); + if (true === $result) { + return $this->success('编辑成功', [], 1, 1); + } + return $this->fail(ProjectMaterialBudgetLogic::getError()); + } + + + /** + * @notes 删除材料预算 + * @return \think\response\Json + * @author likeadmin + * @date 2024/01/08 16:30 + */ + public function delete() + { + $params = (new ProjectMaterialBudgetValidate())->post()->goCheck('delete'); + $result = ProjectMaterialBudgetLogic::delete($params); + if (true === $result) { + return $this->success('删除成功', [], 1, 1); + } + return $this->fail(ProjectMaterialBudgetLogic::getError()); + } + + + /** + * @notes 获取材料预算详情 + * @return \think\response\Json + * @author likeadmin + * @date 2024/01/08 16:30 + */ + public function detail() + { + $params = (new ProjectMaterialBudgetValidate())->goCheck('detail'); + $result = ProjectMaterialBudgetLogic::detail($params); + return $this->data($result); + } + + public function flows(): \think\response\Json + { + $flow_type = FlowType::where('type', 4)->where('name', 'clys')->findOrEmpty(); + $data = Flow::field('id,name')->where('flow_cate', $flow_type['id'])->where('status', 2)->select(); + return $this->success('请求成功', $data->toArray()); + } + + //添加审批 + public function approve(): \think\response\Json + { + $params = (new ProjectMaterialBudgetValidate())->post()->goCheck('approve'); + $result = ProjectMaterialBudgetLogic::approve($params, $this->adminId); + if (true === $result) { + return $this->success('提交审核信息成功', [], 1, 1); + } + return $this->fail(ProjectMaterialBudgetLogic::getError()); + } + + + } \ No newline at end of file diff --git a/app/adminapi/controller/project/ProjectSubpackageBudgetController.php b/app/adminapi/controller/project/ProjectSubpackageBudgetController.php index 1c28a470f..044bca1a3 100644 --- a/app/adminapi/controller/project/ProjectSubpackageBudgetController.php +++ b/app/adminapi/controller/project/ProjectSubpackageBudgetController.php @@ -11,118 +11,121 @@ // +---------------------------------------------------------------------- // | author: likeadminTeam // +---------------------------------------------------------------------- - - -namespace app\adminapi\controller\project; - - -use app\adminapi\controller\BaseAdminController; -use app\adminapi\lists\project\ProjectSubpackageBudgetLists; -use app\adminapi\logic\project\ProjectSubpackageBudgetLogic; -use app\adminapi\validate\project\ProjectSubpackageBudgetValidate; -use app\common\model\oa\Flow; -use app\common\model\oa\FlowType; - - -/** - * 分包预算控制器 - * Class ProjectSubpackageBudgetController - * @package app\adminapi\controller\project - */ -class ProjectSubpackageBudgetController extends BaseAdminController -{ - - - /** - * @notes 获取分包预算列表 - * @return \think\response\Json - * @author likeadmin - * @date 2024/01/10 15:19 - */ - public function lists() - { - return $this->dataLists(new ProjectSubpackageBudgetLists()); - } - - - /** - * @notes 添加分包预算 - * @return \think\response\Json - * @author likeadmin - * @date 2024/01/10 15:19 - */ - public function add() - { - $params = (new ProjectSubpackageBudgetValidate())->post()->goCheck('add'); - $result = ProjectSubpackageBudgetLogic::add($params,$this->adminId); - if (true === $result) { - return $this->success('添加成功', [], 1, 1); - } - return $this->fail(ProjectSubpackageBudgetLogic::getError()); - } - - - /** - * @notes 编辑分包预算 - * @return \think\response\Json - * @author likeadmin - * @date 2024/01/10 15:19 - */ - public function edit() - { - $params = (new ProjectSubpackageBudgetValidate())->post()->goCheck('edit'); - $result = ProjectSubpackageBudgetLogic::edit($params); - if (true === $result) { - return $this->success('编辑成功', [], 1, 1); - } - return $this->fail(ProjectSubpackageBudgetLogic::getError()); - } - - - /** - * @notes 删除分包预算 - * @return \think\response\Json - * @author likeadmin - * @date 2024/01/10 15:19 - */ - public function delete() - { - $params = (new ProjectSubpackageBudgetValidate())->post()->goCheck('delete'); - ProjectSubpackageBudgetLogic::delete($params); - return $this->success('删除成功', [], 1, 1); - } - - - /** - * @notes 获取分包预算详情 - * @return \think\response\Json - * @author likeadmin - * @date 2024/01/10 15:19 - */ - public function detail() - { - $params = (new ProjectSubpackageBudgetValidate())->goCheck('detail'); - $result = ProjectSubpackageBudgetLogic::detail($params); - return $this->data($result); - } - public function flows(): \think\response\Json - { - $flow_type = FlowType::where('type',4)->where('name','fbys')->findOrEmpty(); - $data = Flow::field('id,name')->where('flow_cate',$flow_type['id'])->where('status',2)->select(); - return $this->success('请求成功',$data->toArray()); - } - //添加审批 - public function approve(): \think\response\Json + namespace app\adminapi\controller\project; + + + use app\adminapi\controller\BaseAdminController; + use app\adminapi\lists\project\ProjectSubpackageBudgetLists; + use app\adminapi\logic\project\ProjectSubpackageBudgetLogic; + use app\adminapi\validate\project\ProjectSubpackageBudgetValidate; + use app\common\model\oa\Flow; + use app\common\model\oa\FlowType; + + + /** + * 分包预算控制器 + * Class ProjectSubpackageBudgetController + * @package app\adminapi\controller\project + */ + class ProjectSubpackageBudgetController extends BaseAdminController { - $params = (new ProjectSubpackageBudgetValidate())->post()->goCheck('approve'); - $result = ProjectSubpackageBudgetLogic::approve($params,$this->adminId); - if (true === $result) { - return $this->success('提交审核信息成功', [], 1, 1); + + + /** + * @notes 获取分包预算列表 + * @return \think\response\Json + * @author likeadmin + * @date 2024/01/10 15:19 + */ + public function lists() + { + return $this->dataLists(new ProjectSubpackageBudgetLists()); } - return $this->fail(ProjectSubpackageBudgetLogic::getError()); - } - - -} \ No newline at end of file + + + /** + * @notes 添加分包预算 + * @return \think\response\Json + * @author likeadmin + * @date 2024/01/10 15:19 + */ + public function add() + { + $params = (new ProjectSubpackageBudgetValidate())->post()->goCheck('add'); + $result = ProjectSubpackageBudgetLogic::add($params, $this->adminId); + if (true === $result) { + return $this->success('添加成功', [], 1, 1); + } + return $this->fail(ProjectSubpackageBudgetLogic::getError()); + } + + + /** + * @notes 编辑分包预算 + * @return \think\response\Json + * @author likeadmin + * @date 2024/01/10 15:19 + */ + public function edit() + { + $params = (new ProjectSubpackageBudgetValidate())->post()->goCheck('edit'); + $result = ProjectSubpackageBudgetLogic::edit($params); + if (true === $result) { + return $this->success('编辑成功', [], 1, 1); + } + return $this->fail(ProjectSubpackageBudgetLogic::getError()); + } + + + /** + * @notes 删除分包预算 + * @return \think\response\Json + * @author likeadmin + * @date 2024/01/10 15:19 + */ + public function delete() + { + $params = (new ProjectSubpackageBudgetValidate())->post()->goCheck('delete'); + $result = ProjectSubpackageBudgetLogic::delete($params); + if (true === $result) { + return $this->success('删除成功', [], 1, 1); + } + return $this->fail(ProjectSubpackageBudgetLogic::getError()); + } + + + /** + * @notes 获取分包预算详情 + * @return \think\response\Json + * @author likeadmin + * @date 2024/01/10 15:19 + */ + public function detail() + { + $params = (new ProjectSubpackageBudgetValidate())->goCheck('detail'); + $result = ProjectSubpackageBudgetLogic::detail($params); + return $this->data($result); + } + + public function flows(): \think\response\Json + { + $flow_type = FlowType::where('type', 4)->where('name', 'fbys')->findOrEmpty(); + $data = Flow::field('id,name')->where('flow_cate', $flow_type['id'])->where('status', 2)->select(); + return $this->success('请求成功', $data->toArray()); + } + + //添加审批 + public function approve(): \think\response\Json + { + $params = (new ProjectSubpackageBudgetValidate())->post()->goCheck('approve'); + $result = ProjectSubpackageBudgetLogic::approve($params, $this->adminId); + if (true === $result) { + return $this->success('提交审核信息成功', [], 1, 1); + } + return $this->fail(ProjectSubpackageBudgetLogic::getError()); + } + + + } \ No newline at end of file diff --git a/app/adminapi/lists/project/ProjectAttendanceDetailLists.php b/app/adminapi/lists/project/ProjectAttendanceDetailLists.php index f25c6b188..a089b6ae3 100644 --- a/app/adminapi/lists/project/ProjectAttendanceDetailLists.php +++ b/app/adminapi/lists/project/ProjectAttendanceDetailLists.php @@ -11,78 +11,81 @@ // +---------------------------------------------------------------------- // | author: likeadminTeam // +---------------------------------------------------------------------- - -namespace app\adminapi\lists\project; - - -use app\adminapi\lists\BaseAdminDataLists; -use app\common\model\project\Project; -use app\common\model\project\ProjectAttendanceDetail; -use app\common\lists\ListsSearchInterface; -use app\common\model\project\ProjectPersonnel; - - -/** - * 考勤明细列表 - * Class ProjectAttendanceDetailLists - * @package app\adminapi\listsproject - */ -class ProjectAttendanceDetailLists extends BaseAdminDataLists implements ListsSearchInterface -{ - - - /** - * @notes 设置搜索条件 - * @return \string[][] - * @author likeadmin - * @date 2023/12/26 10:54 - */ - public function setSearch(): array - { - return [ - '=' => ['project_id'] - ]; - } - - - /** - * @notes 获取考勤明细列表 - * @return array - * @throws \think\db\exception\DataNotFoundException - * @throws \think\db\exception\DbException - * @throws \think\db\exception\ModelNotFoundException - * @author likeadmin - * @date 2023/12/26 10:54 - */ - public function lists(): array - { - return ProjectAttendanceDetail::where($this->searchWhere) - ->field(['id', 'attendance_code', 'project_id', 'person_id', 'attendance_date', 'work_start_time', 'work_end_time', 'work_record_num', 'daily_salary', 'daily_living', 'daily_subsidy', 'daily_other', 'daily_income', 'remark']) - ->limit($this->limitOffset, $this->limitLength) - ->order(['id' => 'desc']) - ->select()->each(function($item){ - $project = Project::field('name,project_code')->where('id',$item['project_id'])->findOrEmpty(); - $person = ProjectPersonnel::field('name,idcard,work_type')->where('id',$item['person_id'])->findOrEmpty(); - $item['project_name'] = $project['name']; - $item['project_code'] = $project['project_code']; - $item['person_name'] = $person['name']; - $item['person_idcard'] = $person['idcard']; - $item['work_type_text'] = $person->work_type_text; - return $item; - }) - ->toArray(); - } - - - /** - * @notes 获取考勤明细数量 - * @return int - * @author likeadmin - * @date 2023/12/26 10:54 - */ - public function count(): int - { - return ProjectAttendanceDetail::where($this->searchWhere)->count(); - } - -} \ No newline at end of file + + namespace app\adminapi\lists\project; + + + use app\adminapi\lists\BaseAdminDataLists; + use app\common\lists\ListsSearchInterface; + use app\common\model\project\Project; + use app\common\model\project\ProjectAttendanceDetail; + use app\common\model\project\ProjectAttendanceRecord; + use app\common\model\project\ProjectPersonnel; + + + /** + * 考勤明细列表 + * Class ProjectAttendanceDetailLists + * @package app\adminapi\listsproject + */ + class ProjectAttendanceDetailLists extends BaseAdminDataLists implements ListsSearchInterface + { + + + /** + * @notes 设置搜索条件 + * @return \string[][] + * @author likeadmin + * @date 2023/12/26 10:54 + */ + public function setSearch(): array + { + return [ + '=' => ['project_id'] + ]; + } + + + /** + * @notes 获取考勤明细列表 + * @return array + * @throws \think\db\exception\DataNotFoundException + * @throws \think\db\exception\DbException + * @throws \think\db\exception\ModelNotFoundException + * @author likeadmin + * @date 2023/12/26 10:54 + */ + public function lists(): array + { + return ProjectAttendanceDetail::where($this->searchWhere) + ->field(['id', 'attendance_id', 'project_id', 'person_id', 'attendance_date', 'work_start_time', 'work_end_time', 'work_record_num', 'daily_salary', 'daily_living', 'daily_subsidy', 'daily_other', 'daily_income', 'remark']) + ->limit($this->limitOffset, $this->limitLength) + ->order(['id' => 'desc']) + ->select()->each(function ($item) { + $attendance = ProjectAttendanceRecord::field('attendance_code')->where('id', $item['attendance_id'])->findOrEmpty(); + $project = Project::field('name,project_code')->where('id', $item['project_id'])->findOrEmpty(); + $person = ProjectPersonnel::field('name,idcard,work_type')->where('id', $item['person_id'])->findOrEmpty(); + $item['attendance_code'] = $attendance['attendance_code']; + $item['project_name'] = $project['name']; + $item['project_code'] = $project['project_code']; + $item['person_name'] = $person['name']; + $item['person_idcard'] = $person['idcard']; + $item['work_type_text'] = $person->work_type_text; + return $item; + }) + ->toArray(); + } + + + /** + * @notes 获取考勤明细数量 + * @return int + * @author likeadmin + * @date 2023/12/26 10:54 + */ + public function count(): int + { + return ProjectAttendanceDetail::where($this->searchWhere)->count(); + } + + } \ No newline at end of file diff --git a/app/adminapi/logic/project/ProjectAttendanceRecordLogic.php b/app/adminapi/logic/project/ProjectAttendanceRecordLogic.php index ef62d35e1..c40c77319 100644 --- a/app/adminapi/logic/project/ProjectAttendanceRecordLogic.php +++ b/app/adminapi/logic/project/ProjectAttendanceRecordLogic.php @@ -42,17 +42,15 @@ { Db::startTrans(); try { - $attendance_code = data_unique_code('项目考勤记录'); $ProjectAttendanceRecordRes = ProjectAttendanceRecord::create([ 'project_id' => $params['project_id'], - 'attendance_code' => $attendance_code, + 'attendance_code' => data_unique_code('项目考勤记录'), 'attendance_date' => strtotime($params['attendance_date']), 'remark' => $params['remark'], 'annex' => $params['annex'] ? json_encode($params['annex']) : null, ]); foreach ($params['attendance_detail'] as $v) { ProjectAttendanceDetail::create([ - 'attendance_code' => $attendance_code, 'attendance_id' => $ProjectAttendanceRecordRes->id, 'project_id' => $params['project_id'], 'person_id' => $v['person_id'], @@ -95,6 +93,41 @@ 'remark' => $params['remark'], 'annex' => $params['annex'] ? json_encode($params['annex']) : null, ]); + foreach ($params['attendance_detail'] as $v) { + if (!empty($v['id'])) { + ProjectAttendanceDetail::where('id', $v['id'])->update([ + 'attendance_id' => $params['id'], + 'project_id' => $params['project_id'], + 'person_id' => $v['person_id'], + 'attendance_date' => strtotime($params['attendance_date']), + 'work_start_time' => strtotime($v['work_start_time']), + 'work_end_time' => strtotime($v['work_end_time']), + 'work_record_num' => $v['work_record_num'], + 'daily_salary' => $v['daily_salary'], + 'daily_living' => $v['daily_living'], + 'daily_subsidy' => $v['daily_subsidy'], + 'daily_other' => $v['daily_other'], + 'daily_income' => $v['daily_income'], + 'remark' => $v['work_num'] ?? '', + ]); + } else { + ProjectAttendanceDetail::create([ + 'attendance_id' => $params['id'], + 'project_id' => $params['project_id'], + 'person_id' => $v['person_id'], + 'attendance_date' => strtotime($params['attendance_date']), + 'work_start_time' => strtotime($v['work_start_time']), + 'work_end_time' => strtotime($v['work_end_time']), + 'work_record_num' => $v['work_record_num'], + 'daily_salary' => $v['daily_salary'], + 'daily_living' => $v['daily_living'], + 'daily_subsidy' => $v['daily_subsidy'], + 'daily_other' => $v['daily_other'], + 'daily_income' => $v['daily_income'], + 'remark' => $v['work_num'] ?? '', + ]); + } + } Db::commit(); return true; } catch (\Exception $e) { @@ -114,18 +147,12 @@ */ public static function delete(array $params): bool { - Db::startTrans(); - try { - $detailIds = ProjectAttendanceDetail::where('attendance_id', $params['id'])->column('id'); - ProjectAttendanceDetail::destroy($detailIds); - ProjectAttendanceRecord::destroy($params['id']); - Db::commit(); - return true; - } catch (\Exception $e) { - Db::rollback(); - self::setError($e->getMessage()); + $detail = ProjectAttendanceDetail::where('attendance_id', 'in', $params['id'])->findOrEmpty(); + if (!$detail->isEmpty()) { + self::setError('此数据关联了考勤明细内容,需删除考勤明细内容'); return false; } + return ProjectAttendanceRecord::destroy($params['id']); } diff --git a/app/adminapi/logic/project/ProjectMaterialBudgetLogic.php b/app/adminapi/logic/project/ProjectMaterialBudgetLogic.php index 224d526c5..d8296b81b 100644 --- a/app/adminapi/logic/project/ProjectMaterialBudgetLogic.php +++ b/app/adminapi/logic/project/ProjectMaterialBudgetLogic.php @@ -11,107 +11,53 @@ // +---------------------------------------------------------------------- // | author: likeadminTeam // +---------------------------------------------------------------------- - -namespace app\adminapi\logic\project; - - -use app\common\model\dept\Dept; -use app\common\model\dept\Orgs; -use app\common\model\oa\FlowApprove; -use app\common\model\project\Project; -use app\common\model\project\ProjectMaterialBudget; -use app\common\logic\BaseLogic; -use app\common\model\project\ProjectMaterialBudgetDetail; -use think\facade\Db; - - -/** - * 材料预算逻辑 - * Class ProjectMaterialBudgetLogic - * @package app\adminapi\logic\project - */ -class ProjectMaterialBudgetLogic extends BaseLogic -{ - - - /** - * @notes 添加材料预算 - * @param array $params - * @return bool - * @author likeadmin - * @date 2024/01/08 16:30 - */ - public static function add(array $params,$admin_id): bool - { - $detail = $params['material_budget_detail'];//json_decode($params['material_budget_detail'],true); - Db::startTrans(); - try { - $project_material_budget = ProjectMaterialBudget::create([ - 'org_id' => $params['org_id'], - 'dept_id' => $params['dept_id'], - 'project_id' => $params['project_id'], - 'material_budget_code' => data_unique_code('项目材料预算'), - 'remark' => $params['remark'] ?? '', - 'annex' => $params['annex']? json_encode($params['annex']) : null, - ]); - foreach ($detail as $item) - { - ProjectMaterialBudgetDetail::create([ + + namespace app\adminapi\logic\project; + + + use app\common\logic\BaseLogic; + use app\common\model\dept\Dept; + use app\common\model\dept\Orgs; + use app\common\model\oa\FlowApprove; + use app\common\model\project\Project; + use app\common\model\project\ProjectMaterialBudget; + use app\common\model\project\ProjectMaterialBudgetDetail; + use think\facade\Db; + + + /** + * 材料预算逻辑 + * Class ProjectMaterialBudgetLogic + * @package app\adminapi\logic\project + */ + class ProjectMaterialBudgetLogic extends BaseLogic + { + + + /** + * @notes 添加材料预算 + * @param array $params + * @return bool + * @author likeadmin + * @date 2024/01/08 16:30 + */ + public static function add(array $params, $admin_id): bool + { + $detail = $params['material_budget_detail'];//json_decode($params['material_budget_detail'],true); + Db::startTrans(); + try { + $project_material_budget = ProjectMaterialBudget::create([ + 'org_id' => $params['org_id'], + 'dept_id' => $params['dept_id'], 'project_id' => $params['project_id'], - 'material_budget_id' => $project_material_budget->id, - 'material_id' => $item['material_id'], - 'budget_type' => 0, - 'price' => $item['price'], - 'num' => $item['num'], - 'amount' => $item['price'] * $item['num'], - 'remark' => $item['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 2024/01/08 16:30 - */ - public static function edit(array $params): bool - { - $detail = $params['material_budget_detail'];//json_decode($params['material_budget_detail'],true); - Db::startTrans(); - try { - ProjectMaterialBudget::where('id', $params['id'])->update([ - 'org_id' => $params['org_id'], - 'dept_id' => $params['dept_id'], - 'project_id' => $params['project_id'], - 'remark' => $params['remark'] ?? '', - 'annex' => $params['annex']? json_encode($params['annex']) : null, - ]); - foreach ($detail as $item) - { - if(isset($item['id']) && $item['id'] != ''){ - ProjectMaterialBudgetDetail::where('id',$item['id'])->update([ - 'project_id' => $params['project_id'], - 'material_budget_id' => $params['id'], - 'material_id' => $item['material_id'], - 'price' => $item['price'], - 'num' => $item['num'], - 'amount' => $item['price'] * $item['num'], - 'remark' => $item['remark'] ?? '', - ]); - }else{ + 'material_budget_code' => data_unique_code('项目材料预算'), + 'remark' => $params['remark'] ?? '', + 'annex' => $params['annex'] ? json_encode($params['annex']) : null, + ]); + foreach ($detail as $item) { ProjectMaterialBudgetDetail::create([ 'project_id' => $params['project_id'], - 'material_budget_id' => $params['id'], + 'material_budget_id' => $project_material_budget->id, 'material_id' => $item['material_id'], 'budget_type' => 0, 'price' => $item['price'], @@ -120,80 +66,138 @@ class ProjectMaterialBudgetLogic extends BaseLogic 'remark' => $item['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 2024/01/08 16:30 - */ - public static function delete(array $params): bool - { - return ProjectMaterialBudget::destroy($params['id']); - } - - - /** - * @notes 获取材料预算详情 - * @param $params - * @return array - * @author likeadmin - * @date 2024/01/08 16:30 - */ - public static function detail($params): array - { - $data = ProjectMaterialBudget::field('id,org_id,dept_id,project_id,material_budget_code,remark,annex,approve_id')->findOrEmpty($params['id']); - $org = Orgs::field('name')->where('id',$data['org_id'])->findOrEmpty(); - $dept = Dept::field('name')->where('id',$data['dept_id'])->findOrEmpty(); - $project = Project::field('name,project_code')->where('id',$data['project_id'])->findOrEmpty(); - $data['org_name'] = $org['name']; - $data['dept_name'] = $dept['name']; - $data['project_name'] = $project['name']; - $data['project_code'] = $project['project_code']; - $approve_data = FlowApprove::where('id',$data['approve_id'])->findOrEmpty(); - $data['approve_check_status'] = $approve_data['check_status']; - return $data->toArray(); - } - - public static function approve($params,$admin_id): bool{ - $data = ProjectMaterialBudget::where('id',$params['id'])->findOrEmpty(); - $approve_data = FlowApprove::where('id',$data['approve_id'])->findOrEmpty(); - if(!empty($data['approve_id']) && $approve_data['check_status'] != 3){ - self::setError('当前内容存在审核信息,请勿重复提交'); - return false; - } - Db::startTrans(); - try { - $res = addApprove( - '材料预算', - $params['id'], - 'app\common\model\project\ProjectMaterialBudget', - $params['path'], - $params['flow_id'], - $admin_id - ); - if($res){ - ProjectMaterialBudget::where('id',$params['id'])->update([ - 'approve_id' => $res, - ]); + 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; } - } -} \ No newline at end of file + + + /** + * @notes 编辑材料预算 + * @param array $params + * @return bool + * @author likeadmin + * @date 2024/01/08 16:30 + */ + public static function edit(array $params): bool + { + $detail = $params['material_budget_detail'];//json_decode($params['material_budget_detail'],true); + Db::startTrans(); + try { + ProjectMaterialBudget::where('id', $params['id'])->update([ + 'org_id' => $params['org_id'], + 'dept_id' => $params['dept_id'], + 'project_id' => $params['project_id'], + 'remark' => $params['remark'] ?? '', + 'annex' => $params['annex'] ? json_encode($params['annex']) : null, + ]); + foreach ($detail as $item) { + if (isset($item['id']) && $item['id'] != '') { + ProjectMaterialBudgetDetail::where('id', $item['id'])->update([ + 'project_id' => $params['project_id'], + 'material_budget_id' => $params['id'], + 'material_id' => $item['material_id'], + 'price' => $item['price'], + 'num' => $item['num'], + 'amount' => $item['price'] * $item['num'], + 'remark' => $item['remark'] ?? '', + ]); + } else { + ProjectMaterialBudgetDetail::create([ + 'project_id' => $params['project_id'], + 'material_budget_id' => $params['id'], + 'material_id' => $item['material_id'], + 'budget_type' => 0, + 'price' => $item['price'], + 'num' => $item['num'], + 'amount' => $item['price'] * $item['num'], + 'remark' => $item['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 2024/01/08 16:30 + */ + public static function delete(array $params): bool + { + $detail = ProjectMaterialBudgetDetail::where('material_budget_id', 'in', $params['id'])->findOrEmpty(); + if (!$detail->isEmpty()) { + self::setError('此数据关联了预算明细内容,需删除预算明细内容'); + return false; + } + return ProjectMaterialBudget::destroy($params['id']); + } + + + /** + * @notes 获取材料预算详情 + * @param $params + * @return array + * @author likeadmin + * @date 2024/01/08 16:30 + */ + public static function detail($params): array + { + $data = ProjectMaterialBudget::field('id,org_id,dept_id,project_id,material_budget_code,remark,annex,approve_id')->findOrEmpty($params['id']); + $org = Orgs::field('name')->where('id', $data['org_id'])->findOrEmpty(); + $dept = Dept::field('name')->where('id', $data['dept_id'])->findOrEmpty(); + $project = Project::field('name,project_code')->where('id', $data['project_id'])->findOrEmpty(); + $data['org_name'] = $org['name']; + $data['dept_name'] = $dept['name']; + $data['project_name'] = $project['name']; + $data['project_code'] = $project['project_code']; + $approve_data = FlowApprove::where('id', $data['approve_id'])->findOrEmpty(); + $data['approve_check_status'] = $approve_data['check_status']; + return $data->toArray(); + } + + public static function approve($params, $admin_id): bool + { + $data = ProjectMaterialBudget::where('id', $params['id'])->findOrEmpty(); + $approve_data = FlowApprove::where('id', $data['approve_id'])->findOrEmpty(); + if (!empty($data['approve_id']) && $approve_data['check_status'] != 3) { + self::setError('当前内容存在审核信息,请勿重复提交'); + return false; + } + Db::startTrans(); + try { + $res = addApprove( + '材料预算', + $params['id'], + 'app\common\model\project\ProjectMaterialBudget', + $params['path'], + $params['flow_id'], + $admin_id + ); + if ($res) { + ProjectMaterialBudget::where('id', $params['id'])->update([ + 'approve_id' => $res, + ]); + } + Db::commit(); + return true; + } catch (\Exception $e) { + Db::rollback(); + self::setError($e->getMessage()); + return false; + } + } + } \ No newline at end of file diff --git a/app/adminapi/logic/project/ProjectSubpackageBudgetLogic.php b/app/adminapi/logic/project/ProjectSubpackageBudgetLogic.php index 54c90c900..9f2f8eaf1 100644 --- a/app/adminapi/logic/project/ProjectSubpackageBudgetLogic.php +++ b/app/adminapi/logic/project/ProjectSubpackageBudgetLogic.php @@ -11,196 +11,200 @@ // +---------------------------------------------------------------------- // | author: likeadminTeam // +---------------------------------------------------------------------- - -namespace app\adminapi\logic\project; - -use app\common\model\dept\Dept; -use app\common\model\dept\Orgs; -use app\common\model\oa\FlowApprove; -use app\common\model\project\Project; -use app\common\model\project\ProjectSubpackageBudget; -use app\common\logic\BaseLogic; -use app\common\model\project\ProjectSubpackageBudgetDetail; -use think\facade\Db; - - -/** - * 分包预算逻辑 - * Class ProjectSubpackageBudgetLogic - * @package app\adminapi\logic\project - */ -class ProjectSubpackageBudgetLogic extends BaseLogic -{ - - - /** - * @notes 添加分包预算 - * @param array $params - * @return bool - * @author likeadmin - * @date 2024/01/10 15:19 - */ - public static function add(array $params,$admin_id): bool - { - $detail = $params['subpackage_budget_detail'];//json_decode($params['subpackage_budget_detail'],true); - Db::startTrans(); - try { - $res = ProjectSubpackageBudget::create([ - 'org_id' => $params['org_id'], - 'dept_id' => $params['dept_id'], - 'project_id' => $params['project_id'], - 'subpackage_budget_code' => data_unique_code('项目分包预算'), - 'remark' => $params['remark'] ?? '', - 'annex' => $params['annex']? json_encode($params['annex']) : null, - ]); - foreach ($detail as $item) - { - ProjectSubpackageBudgetDetail::create([ - 'project_id' => $params['project_id'], - 'subpackage_budget_id' => $res->id, - 'work_type' => $item['work_type'], - 'work_content' => $item['work_content'], - 'project_features' => $item['project_features'] ?? '', - 'unit' => $item['unit'], - 'num' => $item['num'], - 'price' => $item['price'], - 'amount' => $item['num'] * $item['price'], - 'remark' => $item['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 2024/01/10 15:19 - */ - public static function edit(array $params): bool - { - $detail =$params['subpackage_budget_detail'];//json_decode($params['subpackage_budget_detail'],true); - Db::startTrans(); - try { - ProjectSubpackageBudget::where('id', $params['id'])->update([ - 'org_id' => $params['org_id'], - 'dept_id' => $params['dept_id'], - 'project_id' => $params['project_id'], - 'subpackage_budget_code' => data_unique_code('项目分包预算'), - 'remark' => $params['remark'] ?? '', - 'annex' => $params['annex']? json_encode($params['annex']) : null, - ]); - foreach ($detail as $item) - { - if(isset($item['id']) && $item['id'] != ''){ - ProjectSubpackageBudgetDetail::where('id',$item['id'])->update([ - 'project_id' => $params['project_id'], - 'subpackage_budget_id' => $params['id'], - 'work_type' => $item['work_type'], - 'work_content' => $item['work_content'], - 'project_features' => $item['project_features'] ?? '', - 'unit' => $item['unit'], - 'num' => $item['num'], - 'price' => $item['price'], - 'amount' => $item['num'] * $item['price'], - 'remark' => $item['remark'] ?? '', - ]); - }else{ - ProjectSubpackageBudgetDetail::create([ - 'project_id' => $params['project_id'], - 'subpackage_budget_id' => $params['id'], - 'work_type' => $item['work_type'], - 'work_content' => $item['work_content'], - 'project_features' => $item['project_features'] ?? '', - 'unit' => $item['unit'], - 'num' => $item['num'], - 'price' => $item['price'], - 'amount' => $item['num'] * $item['price'], - 'remark' => $item['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 2024/01/10 15:19 - */ - public static function delete(array $params): bool - { - return ProjectSubpackageBudget::destroy($params['id']); - } - - - /** - * @notes 获取分包预算详情 - * @param $params - * @return array - * @author likeadmin - * @date 2024/01/10 15:19 - */ - public static function detail($params): array - { - $data = ProjectSubpackageBudget::field('id,org_id,dept_id,project_id,subpackage_budget_code,remark,annex,approve_id')->findOrEmpty($params['id']); - $org = Orgs::field('name')->where('id',$data['org_id'])->findOrEmpty(); - $dept = Dept::field('name')->where('id',$data['dept_id'])->findOrEmpty(); - $project = Project::field('name,project_code')->where('id',$data['project_id'])->findOrEmpty(); - $data['org_name'] = $org['name']; - $data['dept_name'] = $dept['name']; - $data['project_name'] = $project['name']; - $data['project_code'] = $project['project_code']; - $approve_data = FlowApprove::where('id',$data['approve_id'])->findOrEmpty(); - $data['approve_check_status'] = $approve_data['check_status']; - return $data->toArray(); - } - public static function approve($params,$admin_id): bool{ - $data = ProjectSubpackageBudget::where('id',$params['id'])->findOrEmpty(); - $approve_data = FlowApprove::where('id',$data['approve_id'])->findOrEmpty(); - if(!empty($data['approve_id']) && $approve_data['check_status'] != 3){ - self::setError('当前内容存在审核信息,请勿重复提交'); - return false; - } - Db::startTrans(); - try { - $res = addApprove( - '分包预算', - $params['id'], - 'app\common\model\project\ProjectSubpackageBudget', - $params['path'], - $params['flow_id'], - $admin_id - ); - if($res){ - ProjectSubpackageBudget::where('id',$params['id'])->update([ - 'approve_id' => $res, + namespace app\adminapi\logic\project; + + use app\common\logic\BaseLogic; + use app\common\model\dept\Dept; + use app\common\model\dept\Orgs; + use app\common\model\oa\FlowApprove; + use app\common\model\project\Project; + use app\common\model\project\ProjectSubpackageBudget; + use app\common\model\project\ProjectSubpackageBudgetDetail; + use think\facade\Db; + + + /** + * 分包预算逻辑 + * Class ProjectSubpackageBudgetLogic + * @package app\adminapi\logic\project + */ + class ProjectSubpackageBudgetLogic extends BaseLogic + { + + + /** + * @notes 添加分包预算 + * @param array $params + * @return bool + * @author likeadmin + * @date 2024/01/10 15:19 + */ + public static function add(array $params, $admin_id): bool + { + $detail = $params['subpackage_budget_detail'];//json_decode($params['subpackage_budget_detail'],true); + Db::startTrans(); + try { + $res = ProjectSubpackageBudget::create([ + 'org_id' => $params['org_id'], + 'dept_id' => $params['dept_id'], + 'project_id' => $params['project_id'], + 'subpackage_budget_code' => data_unique_code('项目分包预算'), + 'remark' => $params['remark'] ?? '', + 'annex' => $params['annex'] ? json_encode($params['annex']) : null, ]); + foreach ($detail as $item) { + ProjectSubpackageBudgetDetail::create([ + 'project_id' => $params['project_id'], + 'subpackage_budget_id' => $res->id, + 'work_type' => $item['work_type'], + 'work_content' => $item['work_content'], + 'project_features' => $item['project_features'] ?? '', + 'unit' => $item['unit'], + 'num' => $item['num'], + 'price' => $item['price'], + 'amount' => $item['num'] * $item['price'], + 'remark' => $item['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; } - } -} \ No newline at end of file + + + /** + * @notes 编辑分包预算 + * @param array $params + * @return bool + * @author likeadmin + * @date 2024/01/10 15:19 + */ + public static function edit(array $params): bool + { + $detail = $params['subpackage_budget_detail'];//json_decode($params['subpackage_budget_detail'],true); + Db::startTrans(); + try { + ProjectSubpackageBudget::where('id', $params['id'])->update([ + 'org_id' => $params['org_id'], + 'dept_id' => $params['dept_id'], + 'project_id' => $params['project_id'], + 'subpackage_budget_code' => data_unique_code('项目分包预算'), + 'remark' => $params['remark'] ?? '', + 'annex' => $params['annex'] ? json_encode($params['annex']) : null, + ]); + foreach ($detail as $item) { + if (isset($item['id']) && $item['id'] != '') { + ProjectSubpackageBudgetDetail::where('id', $item['id'])->update([ + 'project_id' => $params['project_id'], + 'subpackage_budget_id' => $params['id'], + 'work_type' => $item['work_type'], + 'work_content' => $item['work_content'], + 'project_features' => $item['project_features'] ?? '', + 'unit' => $item['unit'], + 'num' => $item['num'], + 'price' => $item['price'], + 'amount' => $item['num'] * $item['price'], + 'remark' => $item['remark'] ?? '', + ]); + } else { + ProjectSubpackageBudgetDetail::create([ + 'project_id' => $params['project_id'], + 'subpackage_budget_id' => $params['id'], + 'work_type' => $item['work_type'], + 'work_content' => $item['work_content'], + 'project_features' => $item['project_features'] ?? '', + 'unit' => $item['unit'], + 'num' => $item['num'], + 'price' => $item['price'], + 'amount' => $item['num'] * $item['price'], + 'remark' => $item['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 2024/01/10 15:19 + */ + public static function delete(array $params): bool + { + $detail = ProjectSubpackageBudgetDetail::where('subpackage_budget_id', 'in', $params['id'])->findOrEmpty(); + if (!$detail->isEmpty()) { + self::setError('此数据关联了预算明细内容,需删除预算明细内容'); + return false; + } + return ProjectSubpackageBudget::destroy($params['id']); + } + + + /** + * @notes 获取分包预算详情 + * @param $params + * @return array + * @author likeadmin + * @date 2024/01/10 15:19 + */ + public static function detail($params): array + { + $data = ProjectSubpackageBudget::field('id,org_id,dept_id,project_id,subpackage_budget_code,remark,annex,approve_id')->findOrEmpty($params['id']); + $org = Orgs::field('name')->where('id', $data['org_id'])->findOrEmpty(); + $dept = Dept::field('name')->where('id', $data['dept_id'])->findOrEmpty(); + $project = Project::field('name,project_code')->where('id', $data['project_id'])->findOrEmpty(); + $data['org_name'] = $org['name']; + $data['dept_name'] = $dept['name']; + $data['project_name'] = $project['name']; + $data['project_code'] = $project['project_code']; + $approve_data = FlowApprove::where('id', $data['approve_id'])->findOrEmpty(); + $data['approve_check_status'] = $approve_data['check_status']; + return $data->toArray(); + } + + public static function approve($params, $admin_id): bool + { + $data = ProjectSubpackageBudget::where('id', $params['id'])->findOrEmpty(); + $approve_data = FlowApprove::where('id', $data['approve_id'])->findOrEmpty(); + if (!empty($data['approve_id']) && $approve_data['check_status'] != 3) { + self::setError('当前内容存在审核信息,请勿重复提交'); + return false; + } + Db::startTrans(); + try { + $res = addApprove( + '分包预算', + $params['id'], + 'app\common\model\project\ProjectSubpackageBudget', + $params['path'], + $params['flow_id'], + $admin_id + ); + if ($res) { + ProjectSubpackageBudget::where('id', $params['id'])->update([ + 'approve_id' => $res, + ]); + } + Db::commit(); + return true; + } catch (\Exception $e) { + Db::rollback(); + self::setError($e->getMessage()); + return false; + } + } + } \ No newline at end of file diff --git a/app/adminapi/validate/contract/SubcontractingContractValidate.php b/app/adminapi/validate/contract/SubcontractingContractValidate.php index 3dbdbf3ad..820c9d250 100644 --- a/app/adminapi/validate/contract/SubcontractingContractValidate.php +++ b/app/adminapi/validate/contract/SubcontractingContractValidate.php @@ -203,6 +203,10 @@ if (!is_numeric($v['num']) || $v['num'] <= 0) { return '工作量必须是大于0的数字'; } + $subcontracting_budget_detail = ProjectSubpackageBudgetDetail::where('id', $v['subpackage_budget_detail_id'])->findOrEmpty(); + if ($v['num'] > $subcontracting_budget_detail['num']) { + return '工作量不能超过预算工作量'; + } } if (empty($v['price'])) { return '含税单价不能为空'; diff --git a/app/adminapi/validate/project/ProjectAttendanceDetailValidate.php b/app/adminapi/validate/project/ProjectAttendanceDetailValidate.php index c2cda8d3d..fcf7b83f2 100644 --- a/app/adminapi/validate/project/ProjectAttendanceDetailValidate.php +++ b/app/adminapi/validate/project/ProjectAttendanceDetailValidate.php @@ -37,8 +37,8 @@ 'project_id' => 'require|checkProject', 'person_id' => 'require|checkPerson', 'attendance_date' => 'require|dateFormat:Y-m-d', - 'work_start_time' => 'checkWorkStartTime', - 'work_end_time' => 'checkWorkEndTime', + 'work_start_time' => 'dateFormat:H:i:s', + 'work_end_time' => 'dateFormat:H:i:s', 'work_record_num' => 'require|float|gt:0', 'daily_salary' => 'require|float|gt:0', 'daily_living' => 'require|float|gt:0', @@ -136,27 +136,4 @@ return true; } - public function checkWorkStartTime($value): bool|string - { - if ($value != '') { - if (date('Y-m-d H:i', strtotime($value)) != $value) { - return '上班时间格式错误'; - } - } - return true; - } - - public function checkWorkEndTime($value, $rule, $data): bool|string - { - if ($value != '') { - if (date('Y-m-d H:i', strtotime($value)) != $value) { - return '下班时间格式错误'; - } - if (strtotime($value) - strtotime($data['work_start_time']) <= 0) { - return '下班时间不能小于上班时间'; - } - } - return true; - } - } \ No newline at end of file diff --git a/app/adminapi/validate/project/ProjectAttendanceRecordValidate.php b/app/adminapi/validate/project/ProjectAttendanceRecordValidate.php index 6677b885a..505aa1fe5 100644 --- a/app/adminapi/validate/project/ProjectAttendanceRecordValidate.php +++ b/app/adminapi/validate/project/ProjectAttendanceRecordValidate.php @@ -16,6 +16,7 @@ use app\common\model\project\Project; + use app\common\model\project\ProjectAttendanceDetail; use app\common\model\project\ProjectPersonnel; use app\common\validate\BaseValidate; @@ -112,6 +113,12 @@ return '考勤记录清单数据格式错误'; } foreach ($attendance_detail as $v) { + if (isset($v['id']) && $v['id'] != '') { + $data_detail = ProjectAttendanceDetail::where('id', $v['id'])->findOrEmpty(); + if ($data_detail->isEmpty()) { + return '考勤记录明细信息不存在'; + } + } if (empty($v['person_id'])) { return '请选择项目人员'; } else {