This commit is contained in:
weiz 2024-04-05 16:08:26 +08:00
parent 427dfa55d2
commit 6ea7d4469b
11 changed files with 917 additions and 883 deletions

View File

@ -13,24 +13,24 @@
// +----------------------------------------------------------------------
namespace app\adminapi\controller\material;
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;
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
{
class MaterialPurchaseRequestController extends BaseAdminController
{
/**
@ -54,7 +54,7 @@ class MaterialPurchaseRequestController extends BaseAdminController
public function add()
{
$params = (new MaterialPurchaseRequestValidate())->post()->goCheck('add');
$result = MaterialPurchaseRequestLogic::add($params,$this->adminId);
$result = MaterialPurchaseRequestLogic::add($params, $this->adminId);
if (true === $result) {
return $this->success('添加成功', [], 1, 1);
}
@ -64,7 +64,7 @@ class MaterialPurchaseRequestController extends BaseAdminController
public function edit()
{
$params = (new MaterialPurchaseRequestValidate())->post()->goCheck('edit');
$result = MaterialPurchaseRequestLogic::edit($params,$this->adminId);
$result = MaterialPurchaseRequestLogic::edit($params, $this->adminId);
if (true === $result) {
return $this->success('编辑成功', [], 1, 1);
}
@ -72,7 +72,6 @@ class MaterialPurchaseRequestController extends BaseAdminController
}
/**
* @notes 获取材料采购申请详情
* @return \think\response\Json
@ -88,16 +87,16 @@ class MaterialPurchaseRequestController extends BaseAdminController
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());
$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);
$result = MaterialPurchaseRequestLogic::approve($params, $this->adminId);
if (true === $result) {
return $this->success('提交审核信息成功', [], 1, 1);
}
@ -105,4 +104,4 @@ class MaterialPurchaseRequestController extends BaseAdminController
}
}
}

View File

@ -13,22 +13,22 @@
// +----------------------------------------------------------------------
namespace app\adminapi\controller\project;
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;
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
{
class ProjectAttendanceRecordController extends BaseAdminController
{
/**
@ -86,8 +86,11 @@ class ProjectAttendanceRecordController extends BaseAdminController
public function delete()
{
$params = (new ProjectAttendanceRecordValidate())->post()->goCheck('delete');
$res = ProjectAttendanceRecordLogic::delete($params);
return $res ? $this->success('删除成功', [], 1, 1) : $this->fail(ProjectAttendanceRecordLogic::getError());
$result = ProjectAttendanceRecordLogic::delete($params);
if (true === $result) {
return $this->success('删除成功', [], 1, 1);
}
return $this->fail(ProjectAttendanceRecordLogic::getError());
}
@ -105,4 +108,4 @@ class ProjectAttendanceRecordController extends BaseAdminController
}
}
}

View File

@ -13,24 +13,24 @@
// +----------------------------------------------------------------------
namespace app\adminapi\controller\project;
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;
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
{
class ProjectMaterialBudgetController extends BaseAdminController
{
/**
@ -54,7 +54,7 @@ class ProjectMaterialBudgetController extends BaseAdminController
public function add()
{
$params = (new ProjectMaterialBudgetValidate())->post()->goCheck('add');
$result = ProjectMaterialBudgetLogic::add($params,$this->adminId);
$result = ProjectMaterialBudgetLogic::add($params, $this->adminId);
if (true === $result) {
return $this->success('添加成功', [], 1, 1);
}
@ -88,9 +88,12 @@ class ProjectMaterialBudgetController extends BaseAdminController
public function delete()
{
$params = (new ProjectMaterialBudgetValidate())->post()->goCheck('delete');
ProjectMaterialBudgetLogic::delete($params);
$result = ProjectMaterialBudgetLogic::delete($params);
if (true === $result) {
return $this->success('删除成功', [], 1, 1);
}
return $this->fail(ProjectMaterialBudgetLogic::getError());
}
/**
@ -108,16 +111,16 @@ class ProjectMaterialBudgetController extends BaseAdminController
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());
$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);
$result = ProjectMaterialBudgetLogic::approve($params, $this->adminId);
if (true === $result) {
return $this->success('提交审核信息成功', [], 1, 1);
}
@ -125,4 +128,4 @@ class ProjectMaterialBudgetController extends BaseAdminController
}
}
}

View File

@ -13,24 +13,24 @@
// +----------------------------------------------------------------------
namespace app\adminapi\controller\project;
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;
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
{
class ProjectSubpackageBudgetController extends BaseAdminController
{
/**
@ -54,7 +54,7 @@ class ProjectSubpackageBudgetController extends BaseAdminController
public function add()
{
$params = (new ProjectSubpackageBudgetValidate())->post()->goCheck('add');
$result = ProjectSubpackageBudgetLogic::add($params,$this->adminId);
$result = ProjectSubpackageBudgetLogic::add($params, $this->adminId);
if (true === $result) {
return $this->success('添加成功', [], 1, 1);
}
@ -88,9 +88,12 @@ class ProjectSubpackageBudgetController extends BaseAdminController
public function delete()
{
$params = (new ProjectSubpackageBudgetValidate())->post()->goCheck('delete');
ProjectSubpackageBudgetLogic::delete($params);
$result = ProjectSubpackageBudgetLogic::delete($params);
if (true === $result) {
return $this->success('删除成功', [], 1, 1);
}
return $this->fail(ProjectSubpackageBudgetLogic::getError());
}
/**
@ -108,16 +111,16 @@ class ProjectSubpackageBudgetController extends BaseAdminController
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());
$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);
$result = ProjectSubpackageBudgetLogic::approve($params, $this->adminId);
if (true === $result) {
return $this->success('提交审核信息成功', [], 1, 1);
}
@ -125,4 +128,4 @@ class ProjectSubpackageBudgetController extends BaseAdminController
}
}
}

View File

@ -12,23 +12,24 @@
// | author: likeadminTeam
// +----------------------------------------------------------------------
namespace app\adminapi\lists\project;
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;
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
{
class ProjectAttendanceDetailLists extends BaseAdminDataLists implements ListsSearchInterface
{
/**
@ -57,12 +58,14 @@ class ProjectAttendanceDetailLists extends BaseAdminDataLists implements ListsSe
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'])
->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){
$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();
->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'];
@ -85,4 +88,4 @@ class ProjectAttendanceDetailLists extends BaseAdminDataLists implements ListsSe
return ProjectAttendanceDetail::where($this->searchWhere)->count();
}
}
}

View File

@ -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']);
}

View File

@ -12,26 +12,26 @@
// | author: likeadminTeam
// +----------------------------------------------------------------------
namespace app\adminapi\logic\project;
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;
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
{
class ProjectMaterialBudgetLogic extends BaseLogic
{
/**
@ -41,7 +41,7 @@ class ProjectMaterialBudgetLogic extends BaseLogic
* @author likeadmin
* @date 2024/01/08 16:30
*/
public static function add(array $params,$admin_id): bool
public static function add(array $params, $admin_id): bool
{
$detail = $params['material_budget_detail'];//json_decode($params['material_budget_detail'],true);
Db::startTrans();
@ -52,10 +52,9 @@ class ProjectMaterialBudgetLogic extends BaseLogic
'project_id' => $params['project_id'],
'material_budget_code' => data_unique_code('项目材料预算'),
'remark' => $params['remark'] ?? '',
'annex' => $params['annex']? json_encode($params['annex']) : null,
'annex' => $params['annex'] ? json_encode($params['annex']) : null,
]);
foreach ($detail as $item)
{
foreach ($detail as $item) {
ProjectMaterialBudgetDetail::create([
'project_id' => $params['project_id'],
'material_budget_id' => $project_material_budget->id,
@ -94,12 +93,11 @@ class ProjectMaterialBudgetLogic extends BaseLogic
'dept_id' => $params['dept_id'],
'project_id' => $params['project_id'],
'remark' => $params['remark'] ?? '',
'annex' => $params['annex']? json_encode($params['annex']) : null,
'annex' => $params['annex'] ? json_encode($params['annex']) : null,
]);
foreach ($detail as $item)
{
if(isset($item['id']) && $item['id'] != ''){
ProjectMaterialBudgetDetail::where('id',$item['id'])->update([
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'],
@ -108,7 +106,7 @@ class ProjectMaterialBudgetLogic extends BaseLogic
'amount' => $item['price'] * $item['num'],
'remark' => $item['remark'] ?? '',
]);
}else{
} else {
ProjectMaterialBudgetDetail::create([
'project_id' => $params['project_id'],
'material_budget_id' => $params['id'],
@ -140,6 +138,11 @@ class ProjectMaterialBudgetLogic extends BaseLogic
*/
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']);
}
@ -154,22 +157,23 @@ class ProjectMaterialBudgetLogic extends BaseLogic
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();
$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();
$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){
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;
}
@ -183,8 +187,8 @@ class ProjectMaterialBudgetLogic extends BaseLogic
$params['flow_id'],
$admin_id
);
if($res){
ProjectMaterialBudget::where('id',$params['id'])->update([
if ($res) {
ProjectMaterialBudget::where('id', $params['id'])->update([
'approve_id' => $res,
]);
}
@ -196,4 +200,4 @@ class ProjectMaterialBudgetLogic extends BaseLogic
return false;
}
}
}
}

View File

@ -12,25 +12,25 @@
// | author: likeadminTeam
// +----------------------------------------------------------------------
namespace app\adminapi\logic\project;
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;
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
{
class ProjectSubpackageBudgetLogic extends BaseLogic
{
/**
@ -40,7 +40,7 @@ class ProjectSubpackageBudgetLogic extends BaseLogic
* @author likeadmin
* @date 2024/01/10 15:19
*/
public static function add(array $params,$admin_id): bool
public static function add(array $params, $admin_id): bool
{
$detail = $params['subpackage_budget_detail'];//json_decode($params['subpackage_budget_detail'],true);
Db::startTrans();
@ -51,10 +51,9 @@ class ProjectSubpackageBudgetLogic extends BaseLogic
'project_id' => $params['project_id'],
'subpackage_budget_code' => data_unique_code('项目分包预算'),
'remark' => $params['remark'] ?? '',
'annex' => $params['annex']? json_encode($params['annex']) : null,
'annex' => $params['annex'] ? json_encode($params['annex']) : null,
]);
foreach ($detail as $item)
{
foreach ($detail as $item) {
ProjectSubpackageBudgetDetail::create([
'project_id' => $params['project_id'],
'subpackage_budget_id' => $res->id,
@ -87,7 +86,7 @@ class ProjectSubpackageBudgetLogic extends BaseLogic
*/
public static function edit(array $params): bool
{
$detail =$params['subpackage_budget_detail'];//json_decode($params['subpackage_budget_detail'],true);
$detail = $params['subpackage_budget_detail'];//json_decode($params['subpackage_budget_detail'],true);
Db::startTrans();
try {
ProjectSubpackageBudget::where('id', $params['id'])->update([
@ -96,12 +95,11 @@ class ProjectSubpackageBudgetLogic extends BaseLogic
'project_id' => $params['project_id'],
'subpackage_budget_code' => data_unique_code('项目分包预算'),
'remark' => $params['remark'] ?? '',
'annex' => $params['annex']? json_encode($params['annex']) : null,
'annex' => $params['annex'] ? json_encode($params['annex']) : null,
]);
foreach ($detail as $item)
{
if(isset($item['id']) && $item['id'] != ''){
ProjectSubpackageBudgetDetail::where('id',$item['id'])->update([
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'],
@ -113,7 +111,7 @@ class ProjectSubpackageBudgetLogic extends BaseLogic
'amount' => $item['num'] * $item['price'],
'remark' => $item['remark'] ?? '',
]);
}else{
} else {
ProjectSubpackageBudgetDetail::create([
'project_id' => $params['project_id'],
'subpackage_budget_id' => $params['id'],
@ -147,6 +145,11 @@ class ProjectSubpackageBudgetLogic extends BaseLogic
*/
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']);
}
@ -161,22 +164,23 @@ class ProjectSubpackageBudgetLogic extends BaseLogic
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();
$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();
$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){
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;
}
@ -190,8 +194,8 @@ class ProjectSubpackageBudgetLogic extends BaseLogic
$params['flow_id'],
$admin_id
);
if($res){
ProjectSubpackageBudget::where('id',$params['id'])->update([
if ($res) {
ProjectSubpackageBudget::where('id', $params['id'])->update([
'approve_id' => $res,
]);
}
@ -203,4 +207,4 @@ class ProjectSubpackageBudgetLogic extends BaseLogic
return false;
}
}
}
}

View File

@ -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 '含税单价不能为空';

View File

@ -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;
}
}

View File

@ -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 {