|
|
@@ -5,6 +5,7 @@ namespace App\Service;
|
|
|
use App\Model\CustomerSupply;
|
|
|
use App\Model\Dimension;
|
|
|
use App\Model\Employee;
|
|
|
+use App\Model\Organization;
|
|
|
use App\Model\Quantization;
|
|
|
use App\Model\QuantizationCreate;
|
|
|
use App\Model\QuantizationCreateDetails;
|
|
|
@@ -25,6 +26,8 @@ class QuantizationService extends Service
|
|
|
$model->title = $data['title'] ?? '';
|
|
|
$model->code = $data['code'] ?? '';
|
|
|
$model->is_use = $data['is_use'] ?? 0;
|
|
|
+ $model->industry = $data['industry'] ?? '';
|
|
|
+ $model->model_mark = $data['model_mark'] ?? '';
|
|
|
$model->save();
|
|
|
|
|
|
$time = time();
|
|
|
@@ -55,6 +58,8 @@ class QuantizationService extends Service
|
|
|
$model->code = $data['code'] ?? '';
|
|
|
$model->is_use = $data['is_use'] ?? 0;
|
|
|
$model->type = $data['type'] ?? 0;
|
|
|
+ $model->industry = $data['industry'] ?? '';
|
|
|
+ $model->model_mark = $data['model_mark'] ?? '';
|
|
|
$model->crt_id = $user['id'];
|
|
|
$model->save();
|
|
|
|
|
|
@@ -284,12 +289,17 @@ class QuantizationService extends Service
|
|
|
DB::beginTransaction();
|
|
|
|
|
|
$model = QuantizationCreate::where('id',$data['id'])->first();
|
|
|
- $model->customer_supply_id = $data['customer_supply_id'];
|
|
|
+ $model->data_id = $data['data_id'] ?? 0;
|
|
|
+ $model->data_title = $data['data_title'] ?? '';
|
|
|
$model->quantization_id = $data['quantization_id'];
|
|
|
$model->start_time = $data['start_time'] ?? 0;
|
|
|
$model->end_time = $data['end_time'] ?? 0;
|
|
|
$model->products = $data['products'] ?? '';
|
|
|
$model->score = $data['score'] ?? 0;
|
|
|
+ $model->address = $data['address'] ?? '';
|
|
|
+ $model->address_title = $data['address_title'] ?? '';
|
|
|
+ $model->man_mark = $data['man_mark'] ?? '';
|
|
|
+ $model->result_type = $data['result_type'] ?? 0;
|
|
|
$model->save();
|
|
|
|
|
|
$time = time();
|
|
|
@@ -316,13 +326,18 @@ class QuantizationService extends Service
|
|
|
DB::beginTransaction();
|
|
|
|
|
|
$model = new QuantizationCreate();
|
|
|
- $model->customer_supply_id = $data['customer_supply_id'];
|
|
|
+ $model->data_id = $data['data_id'] ?? 0;
|
|
|
+ $model->data_title = $data['data_title'] ?? '';
|
|
|
$model->quantization_id = $data['quantization_id'];
|
|
|
$model->start_time = $data['start_time'] ?? 0;
|
|
|
$model->end_time = $data['end_time'] ?? 0;
|
|
|
$model->products = $data['products'] ?? '';
|
|
|
$model->score = $data['score'] ?? 0;
|
|
|
$model->type = $data['type'] ?? 0;
|
|
|
+ $model->address = $data['address'] ?? '';
|
|
|
+ $model->address_title = $data['address_title'] ?? '';
|
|
|
+ $model->man_mark = $data['man_mark'] ?? '';
|
|
|
+ $model->result_type = $data['result_type'] ?? 0;
|
|
|
$model->crt_id = $user['id'];
|
|
|
$model->save();
|
|
|
|
|
|
@@ -434,12 +449,6 @@ class QuantizationService extends Service
|
|
|
->first();
|
|
|
if(empty($customer)) return [false,'量化信息不存在或已被删除'];
|
|
|
$customer = $customer->toArray();
|
|
|
-
|
|
|
- $emp_2 = (new CustomerSupplyService())->getEmployeeMap([$customer['customer_supply_id']],'detail');
|
|
|
- $e = $emp_2[$customer['customer_supply_id']] ?? [];
|
|
|
- $customer['organization_title'] = $e['organization_title'] ?? "";
|
|
|
- $customer['customer_supply_title'] = $e['title'] ?? "";
|
|
|
- $customer['customer_supply_code'] = $e['code'] ?? "";
|
|
|
$customer['quantization_title'] = Quantization::where('id', $customer['quantization_id'])->value('title');
|
|
|
|
|
|
$details = $this->getDetail1($customer['id']);
|
|
|
@@ -460,14 +469,19 @@ class QuantizationService extends Service
|
|
|
->orderby('id', 'desc');
|
|
|
|
|
|
if(! empty($data['type'])) $model->where('type', $data['type']);
|
|
|
+ if(! empty($data['result_type'])) $model->where('result_type', $data['result_type']);
|
|
|
if(! empty($data['id'])) $model->whereIn('id', $data['id']);
|
|
|
- if(! empty($data['customer_supply_title'])){
|
|
|
- list($status, $id) = (new CustomerSupplyService())->customerSupplyListForSearch(['title' => $data['customer_supply_title']], $user);
|
|
|
- $model->whereIn('customer_supply_id', $id);
|
|
|
- }
|
|
|
- if(! empty($data['customer_supply_code'])){
|
|
|
- list($status, $id) = (new CustomerSupplyService())->customerSupplyListForSearch(['code' => $data['customer_supply_code']], $user);
|
|
|
- $model->whereIn('customer_supply_id', $id);
|
|
|
+ if(! empty($data['data_title'])) $model->where('data_title', 'LIKE', '%'.$data['data_title'].'%');
|
|
|
+ if($data['type'] == QuantizationCreate::type_one || $data['type'] == QuantizationCreate::type_two){
|
|
|
+ if(! empty($data['data_code'])){
|
|
|
+ list($status, $id) = (new OrganizationService())->organizationListForSearch(['code' => $data['data_code']], $user);
|
|
|
+ $model->whereIn('data_id', $id);
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ if(! empty($data['data_code'])){
|
|
|
+ list($status, $id) = (new CustomerSupplyService())->customerSupplyListForSearch(['code' => $data['data_code']], $user);
|
|
|
+ $model->whereIn('data_id', $id);
|
|
|
+ }
|
|
|
}
|
|
|
if(! empty($data['crt_time'][0]) && ! empty($data['crt_time'][1])) {
|
|
|
$return = $this->changeDateToTimeStampAboutRange($data['crt_time']);
|
|
|
@@ -502,16 +516,33 @@ class QuantizationService extends Service
|
|
|
$q = $q->toArray();
|
|
|
if(! isset(QuantizationCreate::$type_name[$data['type']])) return [false, '量化档案类型错误'];
|
|
|
if($q['type'] != $data['type']) return [false, '引用档案类型与量化档案类型不一致'];
|
|
|
- if($data['type'] == QuantizationCreate::type_two){
|
|
|
+ if($data['type'] == QuantizationCreate::type_one){
|
|
|
+ if(empty($data['address']) && ! is_string($data['address'])) return [false, '地点(省市)编码不能为空'];
|
|
|
+ if(empty($data['address_title']) && ! is_string($data['address_title'])) return [false, '地点(省市)不能为空'];
|
|
|
+ }elseif($data['type'] == QuantizationCreate::type_two){
|
|
|
if(empty($data['start_time']) || empty($data['end_time'])) return [false, '周期不能为空'];
|
|
|
$data['start_time'] = $this->changeDateToDate($data['start_time']);
|
|
|
$data['end_time'] = $this->changeDateToDate($data['end_time']);
|
|
|
}
|
|
|
- if(empty($data['customer_supply_id'])) return [false, '人员id不能为空'];
|
|
|
- $bool = CustomerSupply::where('del_time',0)
|
|
|
- ->where('id',$data['customer_supply_id'])
|
|
|
- ->exists();
|
|
|
- if(! $bool) return [false, '人员不存在或已被删除'];
|
|
|
+
|
|
|
+ if($data['type'] == Quantization::type_one || $data['type'] == Quantization::type_two){
|
|
|
+ if(empty($data['data_id'])) return [false, '组织id不能为空'];
|
|
|
+ $title = Organization::where('del_time',0)
|
|
|
+ ->where('id',$data['data_id'])
|
|
|
+ ->value('title');
|
|
|
+ if(! $title) return [false, '组织不存在或已被删除'];
|
|
|
+ $data['data_title'] = $title;
|
|
|
+ }else{
|
|
|
+ if(! empty($data['data_id'])){
|
|
|
+ $title = CustomerSupply::where('del_time',0)
|
|
|
+ ->where('id',$data['data_id'])
|
|
|
+ ->value('title');
|
|
|
+ if(! $title) return [false, '人员不存在或已被删除'];
|
|
|
+ $data['data_title'] = $title;
|
|
|
+ }
|
|
|
+ if(empty($data['result_type'])) return [false,'人物类型不能为空'];
|
|
|
+ }
|
|
|
+
|
|
|
if(! isset($data['score'])) return [false, '分数不存在'];
|
|
|
$res = $this->checkNumber($data['score']);
|
|
|
if(! $res['valid']) return [false,'分数:' . $res['error']];
|
|
|
@@ -562,21 +593,20 @@ class QuantizationService extends Service
|
|
|
$startTime = $data['start_time'] ?? 0;
|
|
|
$endTime = $data['end_time'] ?? 0;
|
|
|
if ($is_add) {
|
|
|
-
|
|
|
if ($data['type'] == QuantizationCreate::type_one) {
|
|
|
// 能力量化:只允许唯一一份
|
|
|
- $bool = QuantizationCreate::where('customer_supply_id', $data['customer_supply_id'])
|
|
|
+ $bool = QuantizationCreate::where('data_id', $data['data_id'])
|
|
|
->where('type', QuantizationCreate::type_one)
|
|
|
->where('del_time', 0)
|
|
|
->exists();
|
|
|
|
|
|
if ($bool) {
|
|
|
- return [false, '该人员已创建能力量化档案,请勿重复创建'];
|
|
|
+ return [false, '该组织已创建能力量化档案,请勿重复创建'];
|
|
|
}
|
|
|
|
|
|
} else {
|
|
|
// 合作量化:检查时间区间重叠
|
|
|
- $bool = QuantizationCreate::where('customer_supply_id', $data['customer_supply_id'])
|
|
|
+ $bool = QuantizationCreate::where('data_id', $data['data_id'])
|
|
|
->where('type', QuantizationCreate::type_two) // 建议限定 type,防止误匹配
|
|
|
->where('del_time', 0)
|
|
|
->where(function($query) use ($startTime, $endTime) {
|
|
|
@@ -586,7 +616,7 @@ class QuantizationService extends Service
|
|
|
->exists();
|
|
|
|
|
|
if ($bool) {
|
|
|
- return [false, '该人员在该周期内已创建合作量化档案,请勿重复创建'];
|
|
|
+ return [false, '该组织在该周期内已创建合作量化档案,请勿重复创建'];
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -596,14 +626,14 @@ class QuantizationService extends Service
|
|
|
$id = $data['id'];
|
|
|
|
|
|
if ($data['type'] == QuantizationCreate::type_one) {
|
|
|
- $bool = QuantizationCreate::where('customer_supply_id', $data['customer_supply_id'])
|
|
|
+ $bool = QuantizationCreate::where('data_id', $data['data_id'])
|
|
|
->where('type', QuantizationCreate::type_one)
|
|
|
->where('id', '<>', $id)
|
|
|
->where('del_time', 0)
|
|
|
->exists();
|
|
|
- if ($bool) return [false, '该人员已创建能力量化档案,请勿重复创建'];
|
|
|
+ if ($bool) return [false, '该组织已创建能力量化档案,请勿重复创建'];
|
|
|
} else {
|
|
|
- $bool = QuantizationCreate::where('customer_supply_id', $data['customer_supply_id'])
|
|
|
+ $bool = QuantizationCreate::where('data_id', $data['data_id'])
|
|
|
->where('type', QuantizationCreate::type_two)
|
|
|
->where('del_time', 0)
|
|
|
->where(function($query) use ($startTime, $endTime) {
|
|
|
@@ -613,11 +643,11 @@ class QuantizationService extends Service
|
|
|
->where('id', '<>', $id)
|
|
|
->exists();
|
|
|
|
|
|
- if ($bool) return [false, '该人员在该周期内已创建合作量化档案,请勿重复创建'];
|
|
|
+ if ($bool) return [false, '该组织在该周期内已创建合作量化档案,请勿重复创建'];
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- return [true, $data];
|
|
|
+ return [true, ''];
|
|
|
}
|
|
|
|
|
|
function getDimensionIdByRate($map, $rate) {
|
|
|
@@ -630,17 +660,12 @@ class QuantizationService extends Service
|
|
|
if(empty($data['data'])) return $data;
|
|
|
|
|
|
$emp = (new EmployeeService())->getEmployeeMap(array_unique(array_column($data['data'],'crt_id')));
|
|
|
- $emp_2 = (new CustomerSupplyService())->getEmployeeMap(array_unique(array_column($data['data'],'customer_supply_id')),'detail');
|
|
|
foreach ($data['data'] as $key => $value){
|
|
|
$data['data'][$key]['crt_time'] = $value['crt_time'] ? date('Y-m-d H:i:s',$value['crt_time']) : '';
|
|
|
$data['data'][$key]['start_time'] = $value['start_time'] ? date('Y-m-d',$value['start_time']) : '';
|
|
|
$data['data'][$key]['end_time'] = $value['end_time'] ? date('Y-m-d',$value['end_time']) : '';
|
|
|
$data['data'][$key]['crt_name'] = $emp[$value['crt_id']] ?? '';
|
|
|
$data['data'][$key]['type_title'] = QuantizationCreate::$type_name[$value['type']] ?? '';
|
|
|
- $e = $emp_2[$value['customer_supply_id']] ?? [];
|
|
|
- $data['data'][$key]['organization_title'] = $e['organization_title'] ?? "";
|
|
|
- $data['data'][$key]['customer_supply_title'] = $e['title'] ?? "";
|
|
|
- $data['data'][$key]['customer_supply_code'] = $e['code'] ?? "";
|
|
|
$data['data'][$key]['result'] = $this->fillDataResult($value);
|
|
|
}
|
|
|
|
|
|
@@ -652,14 +677,15 @@ class QuantizationService extends Service
|
|
|
$score = isset($value['score']) ? floatval($value['score']) : 0;
|
|
|
$type = $value['type'] ?? null;
|
|
|
|
|
|
- if ($type == QuantizationCreate::type_one) {
|
|
|
- if ($score < 50) return '不合格';
|
|
|
- if ($score < 70) return '改善后评估';
|
|
|
- return '合格';
|
|
|
+ if ($type != QuantizationCreate::type_one && $type != QuantizationCreate::type_two) {
|
|
|
+ return '';
|
|
|
}
|
|
|
|
|
|
- // 其他类型
|
|
|
- return $score < 60 ? '不合格' : '合格';
|
|
|
+ if ($score >= 90) return '优秀';
|
|
|
+ if ($score >= 80) return '良好';
|
|
|
+ if ($score >= 60) return '合格';
|
|
|
+
|
|
|
+ return '不合格';
|
|
|
}
|
|
|
|
|
|
//量化创建-----------------------------------------------
|