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\common\lists\ListsSearchInterface;
use app\common\model\project\Project;
use app\common\model\project\ProjectAttendanceDetail;
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
{
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)
->order(['id' => 'desc'])
->select()->each(function ($item) {

View File

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

View File

@ -132,6 +132,7 @@
$project = Project::field('name,project_code')->where('id', $data['project_id'])->findOrEmpty();
$data['project_name'] = $project['name'];
$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');
return $data->toArray();

View File

@ -37,7 +37,7 @@
'project_id' => 'require|checkProject',
'attendance_date' => 'require|dateFormat:Y-m-d',
'attendance_detail' => 'require|checkAttendanceDetail',
'file' => 'checkFile',
'annex' => 'checkAnnex',
];
protected $message = [
@ -105,16 +105,6 @@
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
{
$attendance_detail = $value;//json_decode($value,true);

View File

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

View File

@ -28,6 +28,7 @@ use think\model\concern\SoftDelete;
class ProjectSalaryPayment extends BaseModel
{
use SoftDelete;
protected $name = 'project_salary_payment';
protected $deleteTime = 'delete_time';
@ -41,7 +42,7 @@ class ProjectSalaryPayment extends BaseModel
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');
return !empty($data['payment_type']) ? $dictData[$data['payment_type']] : '';