This commit is contained in:
weiz 2024-03-25 10:14:04 +08:00
parent ab2a6931bb
commit 4aa0d392ef
3 changed files with 235 additions and 212 deletions

View File

@ -13,33 +13,40 @@
// +----------------------------------------------------------------------
namespace app\adminapi\controller\project;
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;
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
{
/**
* 工资明细控制器
* 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());
}
/**
* @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);
}
}

View File

@ -13,74 +13,85 @@
// +----------------------------------------------------------------------
namespace app\adminapi\controller\project;
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;
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
{
/**
* 工资付款控制器
* 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);
/**
* @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 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);
}
}
/**
* @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);
}
}

View File

@ -12,123 +12,128 @@
// | author: likeadminTeam
// +----------------------------------------------------------------------
namespace app\adminapi\logic\project;
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;
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
{
/**
* @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;
}
}
public static function edit(array $params): bool
/**
* 工资付款逻辑
* 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;
}
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();
}
}
/**
* @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();
}
}