This commit is contained in:
weiz 2024-03-21 17:39:01 +08:00
parent cf798307a0
commit 913d9be8b1
2 changed files with 273 additions and 272 deletions

View File

@ -11,118 +11,118 @@
// +---------------------------------------------------------------------- // +----------------------------------------------------------------------
// | author: likeadminTeam // | author: likeadminTeam
// +---------------------------------------------------------------------- // +----------------------------------------------------------------------
namespace app\adminapi\controller\contract;
use app\adminapi\controller\BaseAdminController;
use app\adminapi\lists\contract\SubcontractingContractNegotiationLists;
use app\adminapi\logic\contract\SubcontractingContractNegotiationLogic;
use app\adminapi\validate\contract\SubcontractingContractNegotiationValidate;
use app\common\model\oa\Flow;
use app\common\model\oa\FlowType;
/**
* SubcontractingContractNegotiation控制器
* Class SubcontractingContractNegotiationController
* @package app\adminapi\controller\contract
*/
class SubcontractingContractNegotiationController extends BaseAdminController
{
/**
* @notes 获取列表
* @return \think\response\Json
* @author likeadmin
* @date 2023/12/12 17:21
*/
public function lists()
{
return $this->dataLists(new SubcontractingContractNegotiationLists());
}
/**
* @notes 添加
* @return \think\response\Json
* @author likeadmin
* @date 2023/12/12 17:21
*/
public function add()
{
$params = (new SubcontractingContractNegotiationValidate())->post()->goCheck('add');
$result = SubcontractingContractNegotiationLogic::add($params,$this->adminId);
if (true === $result) {
return $this->success('添加成功', [], 1, 1);
}
return $this->fail(SubcontractingContractNegotiationLogic::getError());
}
/**
* @notes 编辑
* @return \think\response\Json
* @author likeadmin
* @date 2023/12/12 17:21
*/
public function edit()
{
$params = (new SubcontractingContractNegotiationValidate())->post()->goCheck('edit');
$result = SubcontractingContractNegotiationLogic::edit($params);
if (true === $result) {
return $this->success('编辑成功', [], 1, 1);
}
return $this->fail(SubcontractingContractNegotiationLogic::getError());
}
/**
* @notes 删除
* @return \think\response\Json
* @author likeadmin
* @date 2023/12/12 17:21
*/
public function delete()
{
$params = (new SubcontractingContractNegotiationValidate())->post()->goCheck('delete');
SubcontractingContractNegotiationLogic::delete($params);
return $this->success('删除成功', [], 1, 1);
}
/**
* @notes 获取详情
* @return \think\response\Json
* @author likeadmin
* @date 2023/12/12 17:21
*/
public function detail()
{
$params = (new SubcontractingContractNegotiationValidate())->goCheck('detail');
$result = SubcontractingContractNegotiationLogic::detail($params);
return $this->data($result);
}
public function flows(): \think\response\Json
{
$flow_type = FlowType::where('type',2)->where('name','fbhtqs')->findOrEmpty();
$data = Flow::field('id,name')->where('flow_cate',$flow_type['id'])->where('status',2)->select();
return $this->success('请求成功',$data->toArray());
}
//添加审批 namespace app\adminapi\controller\contract;
public function approve(): \think\response\Json
use app\adminapi\controller\BaseAdminController;
use app\adminapi\lists\contract\SubcontractingContractNegotiationLists;
use app\adminapi\logic\contract\SubcontractingContractNegotiationLogic;
use app\adminapi\validate\contract\SubcontractingContractNegotiationValidate;
use app\common\model\oa\Flow;
use app\common\model\oa\FlowType;
/**
* SubcontractingContractNegotiation控制器
* Class SubcontractingContractNegotiationController
* @package app\adminapi\controller\contract
*/
class SubcontractingContractNegotiationController extends BaseAdminController
{ {
$params = (new SubcontractingContractNegotiationValidate())->post()->goCheck('approve');
$result = SubcontractingContractNegotiationLogic::approve($params,$this->adminId);
if (true === $result) { /**
return $this->success('提交审核信息成功', [], 1, 1); * @notes 获取列表
* @return \think\response\Json
* @author likeadmin
* @date 2023/12/12 17:21
*/
public function lists()
{
return $this->dataLists(new SubcontractingContractNegotiationLists());
} }
return $this->fail(SubcontractingContractNegotiationLogic::getError());
}
/**
* @notes 添加
} * @return \think\response\Json
* @author likeadmin
* @date 2023/12/12 17:21
*/
public function add()
{
$params = (new SubcontractingContractNegotiationValidate())->post()->goCheck('add');
$result = SubcontractingContractNegotiationLogic::add($params);
if (true === $result) {
return $this->success('添加成功', [], 1, 1);
}
return $this->fail(SubcontractingContractNegotiationLogic::getError());
}
/**
* @notes 编辑
* @return \think\response\Json
* @author likeadmin
* @date 2023/12/12 17:21
*/
public function edit()
{
$params = (new SubcontractingContractNegotiationValidate())->post()->goCheck('edit');
$result = SubcontractingContractNegotiationLogic::edit($params);
if (true === $result) {
return $this->success('编辑成功', [], 1, 1);
}
return $this->fail(SubcontractingContractNegotiationLogic::getError());
}
/**
* @notes 删除
* @return \think\response\Json
* @author likeadmin
* @date 2023/12/12 17:21
*/
public function delete()
{
$params = (new SubcontractingContractNegotiationValidate())->post()->goCheck('delete');
SubcontractingContractNegotiationLogic::delete($params);
return $this->success('删除成功', [], 1, 1);
}
/**
* @notes 获取详情
* @return \think\response\Json
* @author likeadmin
* @date 2023/12/12 17:21
*/
public function detail()
{
$params = (new SubcontractingContractNegotiationValidate())->goCheck('detail');
$result = SubcontractingContractNegotiationLogic::detail($params);
return $this->data($result);
}
public function flows(): \think\response\Json
{
$flow_type = FlowType::where('type', 2)->where('name', 'fbhtqs')->findOrEmpty();
$data = Flow::field('id,name')->where('flow_cate', $flow_type['id'])->where('status', 2)->select();
return $this->success('请求成功', $data->toArray());
}
//添加审批
public function approve(): \think\response\Json
{
$params = (new SubcontractingContractNegotiationValidate())->post()->goCheck('approve');
$result = SubcontractingContractNegotiationLogic::approve($params, $this->adminId);
if (true === $result) {
return $this->success('提交审核信息成功', [], 1, 1);
}
return $this->fail(SubcontractingContractNegotiationLogic::getError());
}
}

View File

@ -11,168 +11,169 @@
// +---------------------------------------------------------------------- // +----------------------------------------------------------------------
// | author: likeadminTeam // | author: likeadminTeam
// +---------------------------------------------------------------------- // +----------------------------------------------------------------------
namespace app\adminapi\logic\contract;
use app\common\model\contract\SubcontractingContract;
use app\common\model\contract\SubcontractingContractNegotiation;
use app\common\logic\BaseLogic;
use app\common\model\oa\FlowApprove;
use app\common\model\project\Project;
use app\common\model\supplier\Supplier;
use think\facade\Db;
/**
* SubcontractingContractNegotiation逻辑
* Class SubcontractingContractNegotiationLogic
* @package app\adminapi\logic\contract
*/
class SubcontractingContractNegotiationLogic extends BaseLogic
{
/**
* @notes 添加
* @param array $params
* @return bool
* @author likeadmin
* @date 2023/12/12 17:21
*/
public static function add(array $params,$admin_id): bool
{
$subcontracting_contract = SubcontractingContract::field('project_id')->where('id',$params['subcontracting_contract_id'])->findOrEmpty();
Db::startTrans();
try {
SubcontractingContractNegotiation::create([
'project_id' => $subcontracting_contract['project_id'],
'subcontracting_contract_id' => $params['subcontracting_contract_id'],
'sign_date' => strtotime($params['sign_date']),
'negotiation_name' => $params['negotiation_name'],
'negotiation_no' => data_unique_code('QS-FBHT'),
'negotiation_amount' => $params['negotiation_amount'],
'negotiation_type' => $params['negotiation_type'],
'warranty_amount' => $params['warranty_amount'] ?? 0,
'warranty_expire_date' => !empty($params['warranty_expire_date']) ? strtotime($params['warranty_expire_date']) : 0,
'negotiation_content' => $params['negotiation_content'] ?? '',
'negotiation_detail' => $params['negotiation_detail'] ?? '',
'negotiation_quotation' => $params['negotiation_quotation'] ? json_encode($params['negotiation_quotation']) : null,
'negotiation_basis' => $params['negotiation_basis'] ? json_encode($params['negotiation_basis']) : null,
]);
Db::commit();
return true;
} catch (\Exception $e) {
Db::rollback();
self::setError($e->getMessage());
return false;
}
}
/**
* @notes 编辑
* @param array $params
* @return bool
* @author likeadmin
* @date 2023/12/12 17:21
*/
public static function edit(array $params): bool
{
$subcontracting_contract = SubcontractingContract::field('project_id')->where('id',$params['subcontracting_contract_id'])->findOrEmpty();
Db::startTrans();
try {
SubcontractingContractNegotiation::where('id', $params['id'])->update([
'project_id' => $subcontracting_contract['project_id'],
'subcontracting_contract_id' => $params['subcontracting_contract_id'],
'sign_date' => strtotime($params['sign_date']),
'negotiation_name' => $params['negotiation_name'],
'negotiation_amount' => $params['negotiation_amount'],
'negotiation_type' => $params['negotiation_type'],
'warranty_amount' => $params['warranty_amount'] ?? 0,
'warranty_expire_date' => !empty($params['warranty_expire_date']) ? strtotime($params['warranty_expire_date']) : 0,
'negotiation_content' => $params['negotiation_content'] ?? '',
'negotiation_detail' => $params['negotiation_detail'] ?? '',
'negotiation_quotation' => $params['negotiation_quotation'] ? json_encode($params['negotiation_quotation']) : null,
'negotiation_basis' => $params['negotiation_basis'] ? json_encode($params['negotiation_basis']) : null,
'update_time' => time(),
]);
Db::commit();
return true;
} catch (\Exception $e) {
Db::rollback();
self::setError($e->getMessage());
return false;
}
}
/**
* @notes 删除
* @param array $params
* @return bool
* @author likeadmin
* @date 2023/12/12 17:21
*/
public static function delete(array $params): bool
{
return SubcontractingContractNegotiation::destroy($params['id']);
}
/**
* @notes 获取详情
* @param $params
* @return array
* @author likeadmin
* @date 2023/12/12 17:21
*/
public static function detail($params): array
{
$data = SubcontractingContractNegotiation::field('id,project_id,subcontracting_contract_id,negotiation_name,negotiation_no,negotiation_amount,negotiation_type,sign_date,warranty_amount,warranty_expire_date,negotiation_content,negotiation_detail,negotiation_quotation,negotiation_basis,approve_id')
->findOrEmpty($params['id']);
$subcontracting_contract = SubcontractingContract::field('supplier_id,contract_no,contract_name')->where('id',$data['subcontracting_contract_id'])->findOrEmpty();
$project = Project::field('name,project_code')->where('id',$data['project_id'])->findOrEmpty();
$supplier = Supplier::field('supplier_name,supplier_code')->where('id',$subcontracting_contract['supplier_id'])->findOrEmpty();
$data['contract_name'] = $subcontracting_contract['contract_name'];
$data['contract_no'] = $subcontracting_contract['contract_no'];
$data['supplier_name'] = $supplier['supplier_name'];
$data['supplier_code'] = $supplier['supplier_code'];
$data['project_code'] = $project['project_code'];
$data['project_name'] = $project['name'];
$data['negotiation_type_text'] = $data->negotiation_type_text;
$approve_data = FlowApprove::where('id',$data['approve_id'])->findOrEmpty();
$data['approve_check_status'] = $approve_data['check_status'];
return $data->toArray();
}
public static function approve($params,$admin_id): bool{ namespace app\adminapi\logic\contract;
$data = SubcontractingContractNegotiation::where('id',$params['id'])->findOrEmpty();
$approve_data = FlowApprove::where('id',$data['approve_id'])->findOrEmpty();
if(!empty($data['approve_id']) && $approve_data['check_status'] != 3){ use app\common\logic\BaseLogic;
self::setError('当前内容存在审核信息,请勿重复提交'); use app\common\model\contract\SubcontractingContract;
return false; use app\common\model\contract\SubcontractingContractNegotiation;
} use app\common\model\oa\FlowApprove;
Db::startTrans(); use app\common\model\project\Project;
try { use app\common\model\supplier\Supplier;
$res = addApprove( use think\facade\Db;
'分包合同洽商',
$params['id'],
'app\common\model\contract\SubcontractingContractNegotiation', /**
$params['path'], * SubcontractingContractNegotiation逻辑
$params['flow_id'], * Class SubcontractingContractNegotiationLogic
$admin_id * @package app\adminapi\logic\contract
); */
if($res){ class SubcontractingContractNegotiationLogic extends BaseLogic
SubcontractingContractNegotiation::where('id',$params['id'])->update([ {
'approve_id' => $res,
/**
* @notes 添加
* @param array $params
* @return bool
* @author likeadmin
* @date 2023/12/12 17:21
*/
public static function add(array $params): bool
{
$subcontracting_contract = SubcontractingContract::field('project_id')->where('id', $params['subcontracting_contract_id'])->findOrEmpty();
Db::startTrans();
try {
SubcontractingContractNegotiation::create([
'project_id' => $subcontracting_contract['project_id'],
'subcontracting_contract_id' => $params['subcontracting_contract_id'],
'sign_date' => strtotime($params['sign_date']),
'negotiation_name' => $params['negotiation_name'],
'negotiation_no' => data_unique_code('QS-FBHT'),
'negotiation_amount' => $params['negotiation_amount'],
'negotiation_type' => $params['negotiation_type'],
'warranty_amount' => $params['warranty_amount'] ?? 0,
'warranty_expire_date' => !empty($params['warranty_expire_date']) ? strtotime($params['warranty_expire_date']) : 0,
'negotiation_content' => $params['negotiation_content'] ?? '',
'negotiation_detail' => $params['negotiation_detail'] ?? '',
'negotiation_quotation' => $params['negotiation_quotation'] ? json_encode($params['negotiation_quotation']) : null,
'negotiation_basis' => $params['negotiation_basis'] ? json_encode($params['negotiation_basis']) : null,
]); ]);
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;
} }
}
}
/**
* @notes 编辑
* @param array $params
* @return bool
* @author likeadmin
* @date 2023/12/12 17:21
*/
public static function edit(array $params): bool
{
$subcontracting_contract = SubcontractingContract::field('project_id')->where('id', $params['subcontracting_contract_id'])->findOrEmpty();
Db::startTrans();
try {
SubcontractingContractNegotiation::where('id', $params['id'])->update([
'project_id' => $subcontracting_contract['project_id'],
'subcontracting_contract_id' => $params['subcontracting_contract_id'],
'sign_date' => strtotime($params['sign_date']),
'negotiation_name' => $params['negotiation_name'],
'negotiation_amount' => $params['negotiation_amount'],
'negotiation_type' => $params['negotiation_type'],
'warranty_amount' => $params['warranty_amount'] ?? 0,
'warranty_expire_date' => !empty($params['warranty_expire_date']) ? strtotime($params['warranty_expire_date']) : 0,
'negotiation_content' => $params['negotiation_content'] ?? '',
'negotiation_detail' => $params['negotiation_detail'] ?? '',
'negotiation_quotation' => $params['negotiation_quotation'] ? json_encode($params['negotiation_quotation']) : null,
'negotiation_basis' => $params['negotiation_basis'] ? json_encode($params['negotiation_basis']) : null,
'update_time' => time(),
]);
Db::commit();
return true;
} catch (\Exception $e) {
Db::rollback();
self::setError($e->getMessage());
return false;
}
}
/**
* @notes 删除
* @param array $params
* @return bool
* @author likeadmin
* @date 2023/12/12 17:21
*/
public static function delete(array $params): bool
{
return SubcontractingContractNegotiation::destroy($params['id']);
}
/**
* @notes 获取详情
* @param $params
* @return array
* @author likeadmin
* @date 2023/12/12 17:21
*/
public static function detail($params): array
{
$data = SubcontractingContractNegotiation::field('id,project_id,subcontracting_contract_id,negotiation_name,negotiation_no,negotiation_amount,negotiation_type,sign_date,warranty_amount,warranty_expire_date,negotiation_content,negotiation_detail,negotiation_quotation,negotiation_basis,approve_id')
->findOrEmpty($params['id']);
$subcontracting_contract = SubcontractingContract::field('supplier_id,contract_no,contract_name')->where('id', $data['subcontracting_contract_id'])->findOrEmpty();
$project = Project::field('name,project_code')->where('id', $data['project_id'])->findOrEmpty();
$supplier = Supplier::field('supplier_name,supplier_code')->where('id', $subcontracting_contract['supplier_id'])->findOrEmpty();
$data['contract_name'] = $subcontracting_contract['contract_name'];
$data['contract_no'] = $subcontracting_contract['contract_no'];
$data['supplier_name'] = $supplier['supplier_name'];
$data['supplier_code'] = $supplier['supplier_code'];
$data['project_code'] = $project['project_code'];
$data['project_name'] = $project['name'];
$data['negotiation_type_text'] = $data->negotiation_type_text;
$approve_data = FlowApprove::where('id', $data['approve_id'])->findOrEmpty();
$data['approve_check_status'] = $approve_data['check_status'];
return $data->toArray();
}
public static function approve($params, $admin_id): bool
{
$data = SubcontractingContractNegotiation::where('id', $params['id'])->findOrEmpty();
$approve_data = FlowApprove::where('id', $data['approve_id'])->findOrEmpty();
if (!empty($data['approve_id']) && $approve_data['check_status'] != 3) {
self::setError('当前内容存在审核信息,请勿重复提交');
return false;
}
Db::startTrans();
try {
$res = addApprove(
'分包合同洽商',
$params['id'],
'app\common\model\contract\SubcontractingContractNegotiation',
$params['path'],
$params['flow_id'],
$admin_id
);
if ($res) {
SubcontractingContractNegotiation::where('id', $params['id'])->update([
'approve_id' => $res,
]);
}
Db::commit();
return true;
} catch (\Exception $e) {
Db::rollback();
self::setError($e->getMessage());
return false;
}
}
}