This commit is contained in:
weiz 2024-03-25 16:16:12 +08:00
parent 364c491a98
commit 09df951406
6 changed files with 281 additions and 291 deletions

View File

@ -16,10 +16,10 @@ namespace app\adminapi\lists\project;
use app\adminapi\lists\BaseAdminDataLists; use app\adminapi\lists\BaseAdminDataLists;
use app\common\lists\ListsSearchInterface;
use app\common\model\project\Project; use app\common\model\project\Project;
use app\common\model\project\ProjectAttendanceDetail; use app\common\model\project\ProjectAttendanceDetail;
use app\common\model\project\ProjectAttendanceRecord; use app\common\model\project\ProjectAttendanceRecord;
use app\common\lists\ListsSearchInterface;
/** /**
@ -57,7 +57,7 @@ class ProjectAttendanceRecordLists extends BaseAdminDataLists implements ListsSe
public function lists(): array public function lists(): array
{ {
return ProjectAttendanceRecord::where($this->searchWhere) return ProjectAttendanceRecord::where($this->searchWhere)
->field(['id','attendance_code','project_id', 'attendance_date','remark', 'file']) ->field(['id', 'attendance_code', 'project_id', 'attendance_date', 'remark'])
->limit($this->limitOffset, $this->limitLength) ->limit($this->limitOffset, $this->limitLength)
->order(['id' => 'desc']) ->order(['id' => 'desc'])
->select()->each(function ($item) { ->select()->each(function ($item) {

View File

@ -14,10 +14,10 @@
namespace app\adminapi\logic\project; namespace app\adminapi\logic\project;
use app\common\logic\BaseLogic;
use app\common\model\project\Project; use app\common\model\project\Project;
use app\common\model\project\ProjectAttendanceDetail; use app\common\model\project\ProjectAttendanceDetail;
use app\common\model\project\ProjectAttendanceRecord; use app\common\model\project\ProjectAttendanceRecord;
use app\common\logic\BaseLogic;
use app\common\model\project\ProjectPersonnel; use app\common\model\project\ProjectPersonnel;
use think\facade\Db; use think\facade\Db;
@ -42,16 +42,15 @@ class ProjectAttendanceRecordLogic extends BaseLogic
{ {
Db::startTrans(); Db::startTrans();
try { try {
$attendance_detail = $params['attendance_detail'];//json_decode($params['attendance_detail'],true);
$attendance_code = data_unique_code('项目考勤记录'); $attendance_code = data_unique_code('项目考勤记录');
$ProjectAttendanceRecordRes = ProjectAttendanceRecord::create([ $ProjectAttendanceRecordRes = ProjectAttendanceRecord::create([
'project_id' => $params['project_id'], 'project_id' => $params['project_id'],
'attendance_code' => $attendance_code, 'attendance_code' => $attendance_code,
'attendance_date' => strtotime($params['attendance_date']), 'attendance_date' => strtotime($params['attendance_date']),
'remark' => $params['remark'], 'remark' => $params['remark'],
'file' => $params['file']? json_encode($params['file']) : null, 'annex' => $params['annex'] ? json_encode($params['annex']) : null,
]); ]);
foreach($attendance_detail as $v){ foreach ($params['attendance_detail'] as $v) {
ProjectAttendanceDetail::create([ ProjectAttendanceDetail::create([
'attendance_code' => $attendance_code, 'attendance_code' => $attendance_code,
'attendance_id' => $ProjectAttendanceRecordRes->id, 'attendance_id' => $ProjectAttendanceRecordRes->id,
@ -91,8 +90,10 @@ class ProjectAttendanceRecordLogic extends BaseLogic
Db::startTrans(); Db::startTrans();
try { try {
ProjectAttendanceRecord::where('id', $params['id'])->update([ ProjectAttendanceRecord::where('id', $params['id'])->update([
'project_id' => $params['project_id'],
'attendance_date' => strtotime($params['attendance_date']), 'attendance_date' => strtotime($params['attendance_date']),
'remark' => $params['remark'], 'remark' => $params['remark'],
'annex' => $params['annex'] ? json_encode($params['annex']) : null,
]); ]);
Db::commit(); Db::commit();
return true; return true;
@ -137,7 +138,7 @@ class ProjectAttendanceRecordLogic extends BaseLogic
*/ */
public static function detail($params): array public static function detail($params): array
{ {
$data = ProjectAttendanceRecord::field(['id','attendance_code','project_id', 'attendance_date','remark', 'file'])->findOrEmpty($params['id'])->toArray(); $data = ProjectAttendanceRecord::field(['id', 'attendance_code', 'project_id', 'attendance_date', 'remark', 'annex'])->findOrEmpty($params['id'])->toArray();
$project = Project::field('name,project_code')->where('id', $data['project_id'])->findOrEmpty(); $project = Project::field('name,project_code')->where('id', $data['project_id'])->findOrEmpty();
$data['project_name'] = $project['name']; $data['project_name'] = $project['name'];
$data['project_code'] = $project['project_code']; $data['project_code'] = $project['project_code'];

View File

@ -132,6 +132,7 @@
$project = Project::field('name,project_code')->where('id', $data['project_id'])->findOrEmpty(); $project = Project::field('name,project_code')->where('id', $data['project_id'])->findOrEmpty();
$data['project_name'] = $project['name']; $data['project_name'] = $project['name'];
$data['project_code'] = $project['project_code']; $data['project_code'] = $project['project_code'];
$data['payment_type_text'] = $data->payment_type_text;
//总工资付款 //总工资付款
$data['total_amount'] = ProjectSalaryDetail::where('salary_payment_id', $data['id'])->sum('apply_amount'); $data['total_amount'] = ProjectSalaryDetail::where('salary_payment_id', $data['id'])->sum('apply_amount');
return $data->toArray(); return $data->toArray();

View File

@ -37,7 +37,7 @@
'project_id' => 'require|checkProject', 'project_id' => 'require|checkProject',
'attendance_date' => 'require|dateFormat:Y-m-d', 'attendance_date' => 'require|dateFormat:Y-m-d',
'attendance_detail' => 'require|checkAttendanceDetail', 'attendance_detail' => 'require|checkAttendanceDetail',
'file' => 'checkFile', 'annex' => 'checkAnnex',
]; ];
protected $message = [ protected $message = [
@ -105,16 +105,6 @@
return true; return true;
} }
public function checkFile($value): bool|string
{
if (!empty($value) && $value != '') {
if (!is_array($value)) {
return '附件必须是json数组';
}
}
return true;
}
public function checkAttendanceDetail($value, $rule, $data): bool|string public function checkAttendanceDetail($value, $rule, $data): bool|string
{ {
$attendance_detail = $value;//json_decode($value,true); $attendance_detail = $value;//json_decode($value,true);

View File

@ -27,13 +27,10 @@ use think\model\concern\SoftDelete;
class ProjectAttendanceRecord extends BaseModel class ProjectAttendanceRecord extends BaseModel
{ {
use SoftDelete; use SoftDelete;
protected $name = 'project_attendance_record'; protected $name = 'project_attendance_record';
protected $deleteTime = 'delete_time'; protected $deleteTime = 'delete_time';
public function getFileAttr($value)
{
return !empty($value) ? json_decode($value,true) : '';
}
public function getAttendanceDateAttr($value): string public function getAttendanceDateAttr($value): string
{ {
return !empty($value) ? date('Y-m-d', $value) : ''; return !empty($value) ? date('Y-m-d', $value) : '';

View File

@ -28,6 +28,7 @@ use think\model\concern\SoftDelete;
class ProjectSalaryPayment extends BaseModel class ProjectSalaryPayment extends BaseModel
{ {
use SoftDelete; use SoftDelete;
protected $name = 'project_salary_payment'; protected $name = 'project_salary_payment';
protected $deleteTime = 'delete_time'; protected $deleteTime = 'delete_time';
@ -41,7 +42,7 @@ class ProjectSalaryPayment extends BaseModel
return !empty($value) ? date('Y-m-d', $value) : ''; return !empty($value) ? date('Y-m-d', $value) : '';
} }
public function getPaymentTypeAttr($value,$data): string public function getPaymentTypeTextAttr($value, $data): string
{ {
$dictData = DictData::where('type_value', 'salary_payment_type')->column('name', 'value'); $dictData = DictData::where('type_value', 'salary_payment_type')->column('name', 'value');
return !empty($data['payment_type']) ? $dictData[$data['payment_type']] : ''; return !empty($data['payment_type']) ? $dictData[$data['payment_type']] : '';