This commit is contained in:
weiz 2024-04-22 16:06:31 +08:00
parent cdbc08e784
commit 97097d8f88
4 changed files with 242 additions and 222 deletions

View File

@ -18,6 +18,7 @@
use app\adminapi\lists\BaseAdminDataLists; use app\adminapi\lists\BaseAdminDataLists;
use app\common\lists\ListsExcelInterface; use app\common\lists\ListsExcelInterface;
use app\common\lists\ListsSearchInterface; use app\common\lists\ListsSearchInterface;
use app\common\model\auth\Admin;
use app\common\model\project_process_management\ApplyWithSeal; use app\common\model\project_process_management\ApplyWithSeal;
@ -59,7 +60,13 @@
return ApplyWithSeal::with(['projectInfo', 'dept'])->where($this->searchWhere) return ApplyWithSeal::with(['projectInfo', 'dept'])->where($this->searchWhere)
->limit($this->limitOffset, $this->limitLength) ->limit($this->limitOffset, $this->limitLength)
->order(['id' => 'desc']) ->order(['id' => 'desc'])
->select() ->select()->each(function ($data) {
$admin = Admin::where('id', 'in', [$data['stampman'], $data['applicant'], $data['sjborrower'], $data['returnee']])->column('name', 'id');
$data['stampman_name'] = $admin[$data['stampman']] ?? '';
$data['applicant_name'] = $admin[$data['applicant']] ?? '';
$data['sjborrower_name'] = $admin[$data['sjborrower']] ?? '';
$data['returnee_name'] = $admin[$data['returnee']] ?? '';
})
->toArray(); ->toArray();
} }

View File

@ -11,100 +11,104 @@
// +---------------------------------------------------------------------- // +----------------------------------------------------------------------
// | author: likeadminTeam // | author: likeadminTeam
// +---------------------------------------------------------------------- // +----------------------------------------------------------------------
namespace app\adminapi\lists\project_process_management; namespace app\adminapi\lists\project_process_management;
use app\adminapi\lists\BaseAdminDataLists; use app\adminapi\lists\BaseAdminDataLists;
use app\common\lists\ListsExcelInterface; use app\common\lists\ListsExcelInterface;
use app\common\model\project_process_management\JianliProjectProgressReport; use app\common\lists\ListsSearchInterface;
use app\common\lists\ListsSearchInterface; use app\common\model\auth\Admin;
use app\common\model\project_process_management\JianliProjectProgressReport;
/**
* JianliProjectProgressReport列表 /**
* Class JianliProjectProgressReportLists * JianliProjectProgressReport列表
* @package app\adminapi\listsproject_process_management * Class JianliProjectProgressReportLists
*/ * @package app\adminapi\listsproject_process_management
class JianliProjectProgressReportLists extends BaseAdminDataLists implements ListsSearchInterface,ListsExcelInterface */
{ class JianliProjectProgressReportLists extends BaseAdminDataLists implements ListsSearchInterface, ListsExcelInterface
{
/**
* @notes 设置搜索条件 /**
* @return \string[][] * @notes 设置搜索条件
* @author likeadmin * @return \string[][]
* @date 2024/02/23 11:47 * @author likeadmin
*/ * @date 2024/02/23 11:47
public function setSearch(): array */
{ public function setSearch(): array
return [ {
'=' => ['project_id'], return [
'%like%' => ['num','wt_unit','djr'] '=' => ['project_id'],
]; '%like%' => ['num', 'wt_unit', 'djr']
} ];
}
/**
* @notes 获取列表 /**
* @return array * @notes 获取列表
* @throws \think\db\exception\DataNotFoundException * @return array
* @throws \think\db\exception\DbException * @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\ModelNotFoundException * @throws \think\db\exception\DbException
* @author likeadmin * @throws \think\db\exception\ModelNotFoundException
* @date 2024/02/23 11:47 * @author likeadmin
*/ * @date 2024/02/23 11:47
public function lists(): array */
{ public function lists(): array
return JianliProjectProgressReport::with(['projectInfo'])->where($this->searchWhere) {
->limit($this->limitOffset, $this->limitLength) return JianliProjectProgressReport::with(['projectInfo'])->where($this->searchWhere)
->order(['id' => 'desc']) ->limit($this->limitOffset, $this->limitLength)
->select() ->order(['id' => 'desc'])
->toArray(); ->select()->each(function ($data) {
} $djr = Admin::field('name')->where('id', $data['djr'])->findOrEmpty();
$data['djr_name'] = $djr?->name;
})
/** ->toArray();
* @notes 获取数量 }
* @return int
* @author likeadmin
* @date 2024/02/23 11:47 /**
*/ * @notes 获取数量
public function count(): int * @return int
{ * @author likeadmin
return JianliProjectProgressReport::where($this->searchWhere)->count(); * @date 2024/02/23 11:47
} */
public function count(): int
public function setFileName(): string {
{ return JianliProjectProgressReport::where($this->searchWhere)->count();
return '项目进度汇报'; }
}
public function setFileName(): string
/** {
* @notes 导出字段 return '项目进度汇报';
* @return string[] }
* @author 段誉
* @date 2022/11/24 16:17 /**
*/ * @notes 导出字段
public function setExcelFields(): array * @return string[]
{ * @author 段誉
return [ * @date 2022/11/24 16:17
'id' => 'id', */
'num' => '单据编号', public function setExcelFields(): array
'project_id' => '项目id', {
'bm_master' => '部门负责人', return [
'wt_unit' => '委托单位', 'id' => 'id',
'xm_master' => '项目负责人', 'num' => '单据编号',
'start_date' => '实际开始日期', 'project_id' => '项目id',
'end_date' => '实际结束日期', 'bm_master' => '部门负责人',
'duration' => '工期(天)', 'wt_unit' => '委托单位',
'working_hours' => '工时', 'xm_master' => '项目负责人',
'done_progress' => '累计已完成进度(%', 'start_date' => '实际开始日期',
'bjd_progress' => '本阶段完成进度(%)', 'end_date' => '实际结束日期',
'djr' => '登记人', 'duration' => '工期(天)',
'apptime' => '登记时间', 'working_hours' => '工时',
'jdms' => '形象进度描述' 'done_progress' => '累计已完成进度(%',
]; 'bjd_progress' => '本阶段完成进度(%)',
} 'djr' => '登记人',
'apptime' => '登记时间',
} 'jdms' => '形象进度描述'
];
}
}

View File

@ -16,6 +16,7 @@
use app\common\logic\BaseLogic; use app\common\logic\BaseLogic;
use app\common\model\auth\Admin;
use app\common\model\dept\Dept; use app\common\model\dept\Dept;
use app\common\model\project_process_management\ApplyWithSeal; use app\common\model\project_process_management\ApplyWithSeal;
use think\facade\Db; use think\facade\Db;
@ -146,6 +147,11 @@
{ {
$data = ApplyWithSeal::with(['projectInfo'])->findOrEmpty($params['id']); $data = ApplyWithSeal::with(['projectInfo'])->findOrEmpty($params['id']);
$dept = Dept::field('name')->where('id', $data['depar'])->findOrEmpty(); $dept = Dept::field('name')->where('id', $data['depar'])->findOrEmpty();
$admin = Admin::where('id', 'in', [$data['stampman'], $data['applicant'], $data['sjborrower'], $data['returnee']])->column('name', 'id');
$data['stampman_name'] = $admin[$data['stampman']] ?? '';
$data['applicant_name'] = $admin[$data['applicant']] ?? '';
$data['sjborrower_name'] = $admin[$data['sjborrower']] ?? '';
$data['returnee_name'] = $admin[$data['returnee']] ?? '';
$data['dept_name'] = $dept['name']; $data['dept_name'] = $dept['name'];
$data['types_text'] = $data->types_text; $data['types_text'] = $data->types_text;
$data['ridingseam_text'] = $data->ridingseam_text; $data['ridingseam_text'] = $data->ridingseam_text;

View File

@ -11,127 +11,130 @@
// +---------------------------------------------------------------------- // +----------------------------------------------------------------------
// | author: likeadminTeam // | author: likeadminTeam
// +---------------------------------------------------------------------- // +----------------------------------------------------------------------
namespace app\adminapi\logic\project_process_management; namespace app\adminapi\logic\project_process_management;
use app\common\model\project_process_management\JianliProjectProgressReport; use app\common\logic\BaseLogic;
use app\common\logic\BaseLogic; use app\common\model\auth\Admin;
use think\facade\Db; use app\common\model\project_process_management\JianliProjectProgressReport;
use think\facade\Db;
/**
* JianliProjectProgressReport逻辑 /**
* Class JianliProjectProgressReportLogic * JianliProjectProgressReport逻辑
* @package app\adminapi\logic\project_process_management * Class JianliProjectProgressReportLogic
*/ * @package app\adminapi\logic\project_process_management
class JianliProjectProgressReportLogic extends BaseLogic */
{ class JianliProjectProgressReportLogic extends BaseLogic
{
/**
* @notes 添加 /**
* @param array $params * @notes 添加
* @return bool * @param array $params
* @author likeadmin * @return bool
* @date 2024/02/23 11:47 * @author likeadmin
*/ * @date 2024/02/23 11:47
public static function add(array $params): bool */
{ public static function add(array $params): bool
Db::startTrans(); {
try { Db::startTrans();
JianliProjectProgressReport::create([ try {
'dataid' => generate_sn(JianliProjectProgressReport::class, 'dataid'), JianliProjectProgressReport::create([
'num' => generate_sn(JianliProjectProgressReport::class, 'num'), 'dataid' => generate_sn(JianliProjectProgressReport::class, 'dataid'),
'project_id' => $params['project_id'], 'num' => generate_sn(JianliProjectProgressReport::class, 'num'),
'bm_master' => $params['bm_master'], 'project_id' => $params['project_id'],
'wt_unit' => $params['wt_unit'], 'bm_master' => $params['bm_master'],
'xm_master' => $params['xm_master'], 'wt_unit' => $params['wt_unit'],
'start_date' => !empty($params['start_date']) ? strtotime($params['start_date']) : 0, 'xm_master' => $params['xm_master'],
'end_date' => !empty($params['end_date']) ? strtotime($params['end_date']) : 0, 'start_date' => !empty($params['start_date']) ? strtotime($params['start_date']) : 0,
'duration' => $params['duration'], 'end_date' => !empty($params['end_date']) ? strtotime($params['end_date']) : 0,
'working_hours' => $params['working_hours'], 'duration' => $params['duration'],
'done_progress' => $params['done_progress'], 'working_hours' => $params['working_hours'],
'bjd_progress' => $params['bjd_progress'], 'done_progress' => $params['done_progress'],
'djr' => $params['djr'], 'bjd_progress' => $params['bjd_progress'],
'apptime' => $params['apptime'], 'djr' => $params['djr'],
'jdms' => $params['jdms'], 'apptime' => $params['apptime'],
'annex' => $params['annex'] ? json_encode($params['annex']) : null, 'jdms' => $params['jdms'],
'fd_23' => $params['fd_23'], 'annex' => $params['annex'] ? json_encode($params['annex']) : null,
]); 'fd_23' => $params['fd_23'],
]);
Db::commit();
return true; Db::commit();
} catch (\Exception $e) { return true;
Db::rollback(); } catch (\Exception $e) {
self::setError($e->getMessage()); Db::rollback();
return false; self::setError($e->getMessage());
} return false;
} }
}
/**
* @notes 编辑 /**
* @param array $params * @notes 编辑
* @return bool * @param array $params
* @author likeadmin * @return bool
* @date 2024/02/23 11:47 * @author likeadmin
*/ * @date 2024/02/23 11:47
public static function edit(array $params): bool */
{ public static function edit(array $params): bool
Db::startTrans(); {
try { Db::startTrans();
JianliProjectProgressReport::where('id', $params['id'])->update([ try {
'project_id' => $params['project_id'], JianliProjectProgressReport::where('id', $params['id'])->update([
'bm_master' => $params['bm_master'], 'project_id' => $params['project_id'],
'wt_unit' => $params['wt_unit'], 'bm_master' => $params['bm_master'],
'xm_master' => $params['xm_master'], 'wt_unit' => $params['wt_unit'],
'start_date' => !empty($params['start_date']) ? strtotime($params['start_date']) : 0, 'xm_master' => $params['xm_master'],
'end_date' => !empty($params['end_date']) ? strtotime($params['end_date']) : 0, 'start_date' => !empty($params['start_date']) ? strtotime($params['start_date']) : 0,
'duration' => $params['duration'], 'end_date' => !empty($params['end_date']) ? strtotime($params['end_date']) : 0,
'working_hours' => $params['working_hours'], 'duration' => $params['duration'],
'done_progress' => $params['done_progress'], 'working_hours' => $params['working_hours'],
'bjd_progress' => $params['bjd_progress'], 'done_progress' => $params['done_progress'],
'djr' => $params['djr'], 'bjd_progress' => $params['bjd_progress'],
'apptime' => $params['apptime'], 'djr' => $params['djr'],
'jdms' => $params['jdms'], 'apptime' => $params['apptime'],
'annex' => $params['annex'] ? json_encode($params['annex']) : null, 'jdms' => $params['jdms'],
'fd_23' => $params['fd_23'], 'annex' => $params['annex'] ? json_encode($params['annex']) : null,
]); 'fd_23' => $params['fd_23'],
]);
Db::commit();
return true; Db::commit();
} catch (\Exception $e) { return true;
Db::rollback(); } catch (\Exception $e) {
self::setError($e->getMessage()); Db::rollback();
return false; self::setError($e->getMessage());
} return false;
} }
}
/**
* @notes 删除 /**
* @param array $params * @notes 删除
* @return bool * @param array $params
* @author likeadmin * @return bool
* @date 2024/02/23 11:47 * @author likeadmin
*/ * @date 2024/02/23 11:47
public static function delete(array $params): bool */
{ public static function delete(array $params): bool
return JianliProjectProgressReport::destroy($params['id']); {
} return JianliProjectProgressReport::destroy($params['id']);
}
/**
* @notes 获取详情 /**
* @param $params * @notes 获取详情
* @return array * @param $params
* @author likeadmin * @return array
* @date 2024/02/23 11:47 * @author likeadmin
*/ * @date 2024/02/23 11:47
public static function detail($params): array */
{ public static function detail($params): array
$data = JianliProjectProgressReport::with(['projectInfo'])->findOrEmpty($params['id'])->toArray(); {
return $data; $data = JianliProjectProgressReport::with(['projectInfo'])->findOrEmpty($params['id']);
} $djr = Admin::field('name')->where('id', $data['djr'])->findOrEmpty();
} $data['djr_name'] = $djr?->name;
return $data->toArray();
}
}