Merge pull request 'update' (#118) from zhangwei into dev
Reviewed-on: #118
This commit is contained in:
commit
59427c2bbf
@ -52,7 +52,7 @@ class BidDocumentExaminationDetailController extends BaseAdminController
|
||||
public function add()
|
||||
{
|
||||
$params = (new BidDocumentExaminationDetailValidate())->post()->goCheck('add');
|
||||
$result = BidDocumentExaminationDetailLogic::add($params);
|
||||
$result = BidDocumentExaminationDetailLogic::add($params,$this->adminId);
|
||||
if (true === $result) {
|
||||
return $this->success('添加成功', [], 1, 1);
|
||||
}
|
||||
@ -69,7 +69,7 @@ class BidDocumentExaminationDetailController extends BaseAdminController
|
||||
public function edit()
|
||||
{
|
||||
$params = (new BidDocumentExaminationDetailValidate())->post()->goCheck('edit');
|
||||
$result = BidDocumentExaminationDetailLogic::edit($params);
|
||||
$result = BidDocumentExaminationDetailLogic::edit($params,$this->adminId);
|
||||
if (true === $result) {
|
||||
return $this->success('编辑成功', [], 1, 1);
|
||||
}
|
||||
|
@ -16,8 +16,12 @@ namespace app\adminapi\lists\bid;
|
||||
|
||||
|
||||
use app\adminapi\lists\BaseAdminDataLists;
|
||||
use app\common\model\bid\BidDocumentExamination;
|
||||
use app\common\model\bid\BidDocumentExaminationDetail;
|
||||
use app\common\lists\ListsSearchInterface;
|
||||
use app\common\model\custom\Custom;
|
||||
use app\common\model\material\Material;
|
||||
use app\common\model\project\Project;
|
||||
|
||||
|
||||
/**
|
||||
@ -38,7 +42,7 @@ class BidDocumentExaminationDetailLists extends BaseAdminDataLists implements Li
|
||||
public function setSearch(): array
|
||||
{
|
||||
return [
|
||||
'=' => ['bid_document_examination_id', 'product_id'],
|
||||
'=' => ['bid_document_examination_id'],
|
||||
];
|
||||
}
|
||||
|
||||
@ -54,11 +58,33 @@ class BidDocumentExaminationDetailLists extends BaseAdminDataLists implements Li
|
||||
*/
|
||||
public function lists(): array
|
||||
{
|
||||
return BidDocumentExaminationDetail::where($this->searchWhere)
|
||||
->field(['id', 'bid_document_examination_id', 'product_id', 'product_num', 'cost_unit_price', 'amount', 'rate', 'unit_price', 'total_amount', 'create_user'])
|
||||
$params = $this->request->get(['bid_document_examination_code','product_name']);
|
||||
$where = [];
|
||||
if(isset($params['bid_document_examination_code']) && $params['bid_document_examination_code'] != ''){
|
||||
$bid_document_examination_ids = BidDocumentExamination::where('code','like','%'.$params['bid_document_examination_code'].'%')->column('id');
|
||||
$where[] = ['bid_document_examination_id','in',$bid_document_examination_ids];
|
||||
}
|
||||
if(isset($params['product_name']) && $params['product_name'] != ''){
|
||||
$product_ids = Material::where('name','like','%'.$params['product_name'].'%')->column('id');
|
||||
$where[] = ['product_id','in',$product_ids];
|
||||
}
|
||||
return BidDocumentExaminationDetail::where($this->searchWhere)->where($where)
|
||||
->field('id,bid_document_examination_id,product_id,num,points,cost_price,cost_amount,sale_price,sale_amount')
|
||||
->limit($this->limitOffset, $this->limitLength)
|
||||
->order(['id' => 'desc'])
|
||||
->select()
|
||||
->select()->each(function($item){
|
||||
$bid_document_examination = BidDocumentExamination::field('project_id,code')->where('id',$item['bid_document_examination_id'])->findOrEmpty();
|
||||
$project = Project::field('name,project_code,custom_id')->where('id',$bid_document_examination['project_id'])->findOrEmpty();
|
||||
$custom = Custom::field('name')->where('id',$project['custom_id'])->findOrEmpty();
|
||||
$product = Material::field('name,specs,unit')->where('id',$item['product_id'])->findOrEmpty();
|
||||
$item['bid_document_examination_code'] = $bid_document_examination['code'];
|
||||
$item['project_name'] = $project['name'];
|
||||
$item['project_code'] = $project['project_code'];
|
||||
$item['custom_name'] = $custom['name'];
|
||||
$item['product_name'] = $product['name'];
|
||||
$item['product_specs'] = $product['specs'];
|
||||
$item['product_unit'] = $product['unit'];
|
||||
})
|
||||
->toArray();
|
||||
}
|
||||
|
||||
@ -71,7 +97,17 @@ class BidDocumentExaminationDetailLists extends BaseAdminDataLists implements Li
|
||||
*/
|
||||
public function count(): int
|
||||
{
|
||||
return BidDocumentExaminationDetail::where($this->searchWhere)->count();
|
||||
$params = $this->request->get(['bid_document_examination_code','product_name']);
|
||||
$where = [];
|
||||
if(isset($params['bid_document_examination_code']) && $params['bid_document_examination_code'] != ''){
|
||||
$bid_document_examination_ids = BidDocumentExamination::where('code','like','%'.$params['bid_document_examination_code'].'%')->column('id');
|
||||
$where[] = ['bid_document_examination_id','in',$bid_document_examination_ids];
|
||||
}
|
||||
if(isset($params['product_name']) && $params['product_name'] != ''){
|
||||
$product_ids = Material::where('name','like','%'.$params['product_name'].'%')->column('id');
|
||||
$where[] = ['product_id','in',$product_ids];
|
||||
}
|
||||
return BidDocumentExaminationDetail::where($this->searchWhere)->where($where)->count();
|
||||
}
|
||||
|
||||
}
|
@ -15,8 +15,13 @@
|
||||
namespace app\adminapi\logic\bid;
|
||||
|
||||
|
||||
use app\common\model\auth\Admin;
|
||||
use app\common\model\bid\BidDocumentExamination;
|
||||
use app\common\model\bid\BidDocumentExaminationDetail;
|
||||
use app\common\logic\BaseLogic;
|
||||
use app\common\model\custom\Custom;
|
||||
use app\common\model\material\Material;
|
||||
use app\common\model\project\Project;
|
||||
use think\facade\Db;
|
||||
|
||||
|
||||
@ -36,22 +41,22 @@ class BidDocumentExaminationDetailLogic extends BaseLogic
|
||||
* @author likeadmin
|
||||
* @date 2023/12/02 09:59
|
||||
*/
|
||||
public static function add(array $params): bool
|
||||
public static function add(array $params,$admin_id): bool
|
||||
{
|
||||
Db::startTrans();
|
||||
try {
|
||||
BidDocumentExaminationDetail::create([
|
||||
'bid_document_examination_id' => $params['bid_document_examination_id'],
|
||||
'product_id' => $params['product_id'],
|
||||
'product_num' => $params['product_num'],
|
||||
'cost_unit_price' => $params['cost_unit_price'],
|
||||
'amount' => $params['amount'],
|
||||
'rate' => $params['rate'],
|
||||
'unit_price' => $params['unit_price'],
|
||||
'total_amount' => $params['total_amount'],
|
||||
'create_user' => $params['create_user']
|
||||
'num' => $params['num'],
|
||||
'points' => $params['points'],
|
||||
'cost_price' => $params['cost_price'],
|
||||
'cost_amount' => $params['cost_price'] * $params['num'],
|
||||
'sale_price' => $params['sale_price'],
|
||||
'sale_amount' => $params['sale_price'] * $params['num'],
|
||||
'add_user' => $admin_id,
|
||||
'update_user' => $admin_id,
|
||||
]);
|
||||
|
||||
Db::commit();
|
||||
return true;
|
||||
} catch (\Exception $e) {
|
||||
@ -69,22 +74,22 @@ class BidDocumentExaminationDetailLogic extends BaseLogic
|
||||
* @author likeadmin
|
||||
* @date 2023/12/02 09:59
|
||||
*/
|
||||
public static function edit(array $params): bool
|
||||
public static function edit(array $params,$admin_id): bool
|
||||
{
|
||||
Db::startTrans();
|
||||
try {
|
||||
BidDocumentExaminationDetail::where('id', $params['id'])->update([
|
||||
'bid_document_examination_id' => $params['bid_document_examination_id'],
|
||||
'product_id' => $params['product_id'],
|
||||
'product_num' => $params['product_num'],
|
||||
'cost_unit_price' => $params['cost_unit_price'],
|
||||
'amount' => $params['amount'],
|
||||
'rate' => $params['rate'],
|
||||
'unit_price' => $params['unit_price'],
|
||||
'total_amount' => $params['total_amount'],
|
||||
'create_user' => $params['create_user']
|
||||
'bid_document_examination_id' => $params['bid_document_examination_id'],
|
||||
'product_id' => $params['product_id'],
|
||||
'num' => $params['num'],
|
||||
'points' => $params['points'],
|
||||
'cost_price' => $params['cost_price'],
|
||||
'cost_amount' => $params['cost_price'] * $params['num'],
|
||||
'sale_price' => $params['sale_price'],
|
||||
'sale_amount' => $params['sale_price'] * $params['num'],
|
||||
'update_user' => $admin_id,
|
||||
'update_time' => time(),
|
||||
]);
|
||||
|
||||
Db::commit();
|
||||
return true;
|
||||
} catch (\Exception $e) {
|
||||
@ -117,6 +122,21 @@ class BidDocumentExaminationDetailLogic extends BaseLogic
|
||||
*/
|
||||
public static function detail($params): array
|
||||
{
|
||||
return BidDocumentExaminationDetail::findOrEmpty($params['id'])->toArray();
|
||||
$data = BidDocumentExaminationDetail::field('id,bid_document_examination_id,product_id,num,points,cost_price,cost_amount,sale_price,sale_amount,add_user,update_user,create_time,update_time')->findOrEmpty($params['id']);
|
||||
$bid_document_examination = BidDocumentExamination::field('project_id,code')->where('id',$data['bid_document_examination_id'])->findOrEmpty();
|
||||
$project = Project::field('name,project_code,custom_id')->where('id',$bid_document_examination['project_id'])->findOrEmpty();
|
||||
$custom = Custom::field('name')->where('id',$project['custom_id'])->findOrEmpty();
|
||||
$product = Material::field('name,specs,unit')->where('id',$data['product_id'])->findOrEmpty();
|
||||
$admin = Admin::where('id','in',[$data['add_user'],$data['update_user']])->column('name','id');
|
||||
$data['bid_document_examination_code'] = $bid_document_examination['code'];
|
||||
$data['project_name'] = $project['name'];
|
||||
$data['project_code'] = $project['project_code'];
|
||||
$data['custom_name'] = $custom['name'];
|
||||
$data['product_name'] = $product['name'];
|
||||
$data['product_specs'] = $product['specs'];
|
||||
$data['product_unit'] = $product['unit'];
|
||||
$data['add_user_name'] = $admin[$data['add_user']];
|
||||
$data['update_user_name'] = $admin[$data['update_user']];
|
||||
return $data->toArray();
|
||||
}
|
||||
}
|
@ -15,6 +15,8 @@
|
||||
namespace app\adminapi\validate\bid;
|
||||
|
||||
|
||||
use app\common\model\bid\BidDocumentExamination;
|
||||
use app\common\model\material\Material;
|
||||
use app\common\validate\BaseValidate;
|
||||
|
||||
|
||||
@ -32,15 +34,30 @@ class BidDocumentExaminationDetailValidate extends BaseValidate
|
||||
*/
|
||||
protected $rule = [
|
||||
'id' => 'require',
|
||||
'bid_document_examination_id' => 'require|checkBidDocumentExamination',
|
||||
'product_id' => 'require|checkProduct',
|
||||
'num' => 'require|integer|egt:0',
|
||||
'points' => 'require|integer|egt:0',
|
||||
'cost_price' => 'require|float|egt:0',
|
||||
'sale_price' => 'require|float|egt:0',
|
||||
];
|
||||
|
||||
|
||||
/**
|
||||
* 参数描述
|
||||
* @var string[]
|
||||
*/
|
||||
protected $field = [
|
||||
'id' => 'id',
|
||||
protected $message = [
|
||||
'id.require' => '缺少必要参数',
|
||||
'bid_document_examination_id.require' => '请选择审查内容',
|
||||
'product_id.require' => '请选择产品',
|
||||
'num.require' => '请填写产品数量',
|
||||
'num.integer' => '产品数量值必须是整数',
|
||||
'num.egt' => '产品数量值必须大于等于0',
|
||||
'points.require' => '请填写点数',
|
||||
'points.integer' => '点数值必须是整数',
|
||||
'points.egt' => '点数值必须大于等于0',
|
||||
'cost_price.require' => '请填写成本单价',
|
||||
'cost_price.float' => '成本单价值必须是数字',
|
||||
'cost_price.egt' => '成本单价值必须大于等于0',
|
||||
'sale_price.require' => '请填写报价单价',
|
||||
'sale_price.float' => '报价单价值必须是数字',
|
||||
'sale_price.egt' => '报价单价值必须大于等于0',
|
||||
];
|
||||
|
||||
|
||||
@ -63,9 +80,7 @@ class BidDocumentExaminationDetailValidate extends BaseValidate
|
||||
* @date 2023/12/02 09:59
|
||||
*/
|
||||
public function sceneEdit()
|
||||
{
|
||||
return $this->only(['id']);
|
||||
}
|
||||
{}
|
||||
|
||||
|
||||
/**
|
||||
@ -90,5 +105,23 @@ class BidDocumentExaminationDetailValidate extends BaseValidate
|
||||
{
|
||||
return $this->only(['id']);
|
||||
}
|
||||
|
||||
public function checkBidDocumentExamination($value): bool|string
|
||||
{
|
||||
$data = BidDocumentExamination::where('id',$value)->findOrEmpty();
|
||||
if($data->isEmpty()){
|
||||
return '标书审查内容不存在';
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public function checkProduct($value): bool|string
|
||||
{
|
||||
$data = Material::where('id',$value)->findOrEmpty();
|
||||
if($data->isEmpty()){
|
||||
return '产品信息不存在';
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user