Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
杨树贤
/
liexin_supplier
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
d7ce6acf
authored
May 30, 2023
by
杨树贤
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
罗盘完成
parent
e05f4b37
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
174 additions
and
25 deletions
app/Http/Controllers/Filter/SupplierFilter.php
app/Http/Services/SkuService.php
app/Http/Services/SupplierStatisticsService.php
config/fixed.php
resources/views/script/SupplierListScript.blade.php
resources/views/web/supplier/SupplierListFilter.blade.php
app/Http/Controllers/Filter/SupplierFilter.php
View file @
d7ce6acf
...
...
@@ -303,20 +303,20 @@ class SupplierFilter
$q
->
whereRaw
(
"system_tags REGEXP '客户指定供应商'"
);
});
break
;
//附件里面缺少品质协议的
//附件里面缺少品质协议的
,而且是现货类型供应商
case
"no_quality_assurance_agreement"
:
$query
->
leftjoin
(
'supplier_attachment
'
,
'supplier_channel.supplier_id'
,
'='
,
'supplier_attachment
.supplier_id'
)
->
selectRaw
(
'lie_supplier_channel.*,
lie_supplier_attachment.quality_assurance_agreement,lie_supplier_attachment
.supplier_id as supplier_attachment_supplier_id'
)
->
where
(
function
(
$q
)
{
$q
->
where
(
'supplier_attachment
.quality_assurance_agreement'
,
''
)
->
orWhereNull
(
'supplier_attachment.supplier_id'
);
});
$query
->
whereNotIn
(
'status'
,
[
SupplierChannelModel
::
STATUS_DISABLE
,
SupplierChannelModel
::
STATUS_BLOCK
]);
//而且还是现货商类型的供应商
$query
->
where
(
'supplier_group'
,
2
);
// $query->leftjoin('supplier_attachments
', 'supplier_channel.supplier_id', '=',
// 'supplier_attachments
.supplier_id')
//
->selectRaw('lie_supplier_channel.*,
// lie_supplier_attachments.quality_assurance_agreement,lie_supplier_attachments
.supplier_id as supplier_attachment_supplier_id')
//
->where(function ($q) {
// $q->where('supplier_attachments
.quality_assurance_agreement', '')
//
->orWhereNull('supplier_attachment.supplier_id');
//
});
//
$query->whereNotIn('status',
//
[SupplierChannelModel::STATUS_DISABLE, SupplierChannelModel::STATUS_BLOCK]);
//
//而且还是现货商类型的供应商
//
$query->where('supplier_group', 2);
break
;
//联系人待完善
case
"contact_no_complete"
:
...
...
@@ -355,6 +355,45 @@ class SupplierFilter
$query
->
where
(
'channel_uid'
,
'!='
,
''
)
->
where
(
'is_type'
,
0
)
->
whereRaw
(
DB
::
raw
(
"(channel_uid NOT REGEXP '
$likeSqlRaw
')"
));
break
;
case
"uploaded_sku"
:
$query
->
where
(
'uploaded_sku'
,
1
);
break
;
case
"not_yunxin"
:
$query
->
where
(
'stockup_type'
,
'NOT LIKE'
,
'%5%'
);
break
;
case
"not_yunxin_and_has_sku"
:
$query
->
where
(
'stockup_type'
,
'NOT LIKE'
,
'%5%'
)
->
where
(
'sku_num'
,
'>'
,
0
);
break
;
case
"not_yunxin_expired"
:
case
"not_yunxin_and_has_no_sku"
:
$query
->
where
(
'stockup_type'
,
'NOT LIKE'
,
'%5%'
)
->
where
(
'sku_num'
,
0
);
break
;
case
"yunxin"
:
$query
->
where
(
'stockup_type'
,
'LIKE'
,
'%5%'
);
break
;
case
"yunxin_and_has_sku"
:
$query
->
where
(
'stockup_type'
,
'LIKE'
,
'%5%'
)
->
where
(
'sku_num'
,
'>'
,
0
);
break
;
case
"yunxin_expired"
:
case
"yunxin_and_has_no_sku"
:
$query
->
where
(
'stockup_type'
,
'LIKE'
,
'%5%'
)
->
where
(
'sku_num'
,
0
);
break
;
case
"yunxin_expired_at_days"
:
$query
->
where
(
'stockup_type'
,
'LIKE'
,
'%5%'
)
->
where
(
'sku_expired_in_days'
,
'!='
,
0
);
break
;
case
"not_yunxin_expired_at_days"
:
$query
->
where
(
'stockup_type'
,
'NOT LIKE'
,
'%5%'
)
->
where
(
'sku_expired_in_days'
,
'!='
,
0
);
break
;
case
"no_quality_assurance_agreement_all"
:
$query
->
whereDoesntHave
(
'attachment'
,
function
(
$query
)
{
$query
->
where
(
'field_name'
,
'quality_assurance_agreement'
);
})
->
where
(
'uploaded_sku'
,
'>'
,
0
);
break
;
case
"no_cooperation_agreement"
:
$query
->
whereDoesntHave
(
'attachment'
,
function
(
$query
)
{
$query
->
where
(
'field_name'
,
'cooperation_agreement'
);
})
->
where
(
'uploaded_sku'
,
'>'
,
0
);
break
;
}
return
$query
;
}
...
...
app/Http/Services/SkuService.php
View file @
d7ce6acf
...
...
@@ -32,6 +32,7 @@ class SkuService
$url
=
env
(
'ES_SKU_URL'
,
''
);
$map
[
'show_status'
]
=
1
;
$return
=
curl
(
$url
,
$map
,
1
);
$data
=
json_decode
(
$return
,
true
);
$list
=
[];
if
(
isset
(
$data
[
'error_code'
])
&&
$data
[
'error_code'
]
==
0
)
{
...
...
app/Http/Services/SupplierStatisticsService.php
View file @
d7ce6acf
...
...
@@ -58,6 +58,8 @@ class SupplierStatisticsService
$payTypeTerm
=
$this
->
getStatisticsCount
(
'pay_type_term'
);
//账期供应商
$levelA
=
$this
->
getStatisticsCount
(
'level_a'
);
//缺少合作协议(线上)
//缺少品质协议(线上)
$result
=
[
'total'
=>
$total
,
'need_review'
=>
$needReview
,
...
...
@@ -79,7 +81,32 @@ class SupplierStatisticsService
'history_abnormal'
=>
$historyAbnormal
,
'pay_type_term'
=>
$payTypeTerm
,
'level_a'
=>
$levelA
,
//所有采购员离职
'all_channel_user_resigned'
=>
null
,
//历史平台合作供应商
'uploaded_sku'
=>
null
,
// 非云芯供应商
'not_yunxin'
=>
null
,
//已上架(非云芯)供应商
'not_yunxin_and_has_sku'
=>
null
,
//已下架(非云芯)供应商
'not_yunxin_and_has_no_sku'
=>
null
,
//云芯供应商
'yunxin'
=>
null
,
//已上架(云芯)供应商
'yunxin_and_has_sku'
=>
null
,
//已下架(云芯)供应商
'yunxin_and_has_no_sku'
=>
null
,
//3天内到期(云芯)供应商
'yunxin_expired_at_days'
=>
null
,
//3天内到期(非云芯)供应商
'not_yunxin_expired_at_days'
=>
null
,
//已过期(云芯)供应商
'yunxin_expired'
=>
null
,
//已过期(非云芯)供应商
'not_yunxin_expired'
=>
null
,
//缺少合作协议(线上)
'no_cooperation_agreement'
=>
null
,
];
$result
=
array_map
(
function
(
$value
)
{
if
(
$value
>
999
)
{
...
...
config/fixed.php
View file @
d7ce6acf
...
...
@@ -240,6 +240,18 @@ return [
'level_a'
=>
'战略供应商'
,
'pay_type_term'
=>
'账期供应商'
,
'all_channel_user_resigned'
=>
'采购员全离职'
,
'uploaded_sku'
=>
'历史平台合作供应商'
,
'not_yunxin'
=>
'非云芯供应商'
,
'not_yunxin_and_has_sku'
=>
'已上架(非云芯)供应商'
,
'not_yunxin_and_has_no_sku'
=>
'已下架(非云芯)供应商'
,
'yunxin'
=>
'云芯供应商'
,
'yunxin_and_has_sku'
=>
'已上架(云芯)供应商'
,
'yunxin_and_has_no_sku'
=>
'已下架(云芯)供应商'
,
'yunxin_expired_at_days'
=>
'3天内到期(云芯)供应商'
,
'not_yunxin_expired_at_days'
=>
'3天内到期(非云芯)供应商'
,
'yunxin_expired'
=>
'已过期(云芯)供应商'
,
'not_yunxin_expired'
=>
'已过期(非云芯)供应商'
,
'no_cooperation_agreement'
=>
'缺少合作协议(线上)'
,
],
//Sku列表的罗盘对应菜单id
'SkuListCompassMenuMap'
=>
[
...
...
resources/views/script/SupplierListScript.blade.php
View file @
d7ce6acf
...
...
@@ -3,7 +3,7 @@
let
$
=
layui
.
jquery
;
let
Split
=
layui
.
Split
;
// 水平分割,需要分割的元素(id)、默认大小(百分比)、最小值(单位px)
Split
([
'#s1'
,
'#s2'
,
'#s3'
,
'#s4'
,
'#s5'
,
'#s6'
,
'#s7'
],
{
sizes
:
[
9
,
12
,
12
,
12
,
12
,
12
,
31
],
minSize
:
70
});
Split
([
'#s1'
,
'#s2'
,
'#s3'
,
'#s4'
,
'#s5'
,
'#s6'
,
'#s7'
,
'#s8'
],
{
sizes
:
[
9
,
12
,
12
,
12
,
12
,
12
,
12
,
19
],
minSize
:
70
});
let
table
=
layui
.
table
;
let
form
=
layui
.
form
;
let
index
=
layui
.
index
;
...
...
resources/views/web/supplier/SupplierListFilter.blade.php
View file @
d7ce6acf
...
...
@@ -6,7 +6,7 @@
<div
class=
"layui-fluid"
id=
"type_filter"
>
<div
class=
"layui-card"
>
<div
class=
"layui-card-body"
style=
"padding: 0;"
>
<div
class=
"split-group"
style=
"height: 1
3
0px;"
>
<div
class=
"split-group"
style=
"height: 1
7
0px;"
>
<div
class=
"split-item"
id=
"s1"
>
<div
class=
"layui-row"
>
<a
class=
"main_filter layui-badge layui-bg-green"
id=
"total"
></a>
...
...
@@ -57,14 +57,16 @@
@endif
@if(checkPerm('SupplierInvalidChannelUidList'))
<div
class=
"layui-row"
>
<a
title=
"非禁止交易状态联系人绑定的采购员姓名不在组织架构中(采购员离职)的供应商"
class=
"main_filter"
<a
title=
"非禁止交易状态联系人绑定的采购员姓名不在组织架构中(采购员离职)的供应商"
class=
"main_filter"
id=
"invalid_channel_uid"
>
</a>
</div>
@endif
@if(checkPerm('SupplierInvalidPurchaseUidList'))
<div
class=
"layui-row"
>
<a
title=
"非禁止交易状态联系人绑定的渠道开发员姓名不在组织架构中(渠道开发员离职)的供应商"
class=
"main_filter"
<a
title=
"非禁止交易状态联系人绑定的渠道开发员姓名不在组织架构中(渠道开发员离职)的供应商"
class=
"main_filter"
id=
"invalid_purchase_uid"
>
</a>
</div>
...
...
@@ -78,7 +80,8 @@
<div
class=
"split-item"
id=
"s4"
style=
"text-align: center"
>
@if(checkPerm('SupplierToFollowUpList'))
<div
class=
"layui-row"
>
<a
title=
"非禁止交易状态的供应商重新分配渠道员,且必填信息不完整;或者禁用状态的供应商重新分配渠道员"
class=
"main_filter"
<a
title=
"非禁止交易状态的供应商重新分配渠道员,且必填信息不完整;或者禁用状态的供应商重新分配渠道员"
class=
"main_filter"
id=
"to_follow_up"
>
</a>
</div>
...
...
@@ -90,7 +93,8 @@
</div>
@endif
<div
class=
"layui-row"
>
<a
title=
"公司性质为现货商性质的供应商没有上传品质协议"
class=
"main_filter"
id=
"no_quality_assurance_agreement"
>
<a
title=
"公司性质为现货商性质的供应商没有上传品质协议"
class=
"main_filter"
id=
"no_quality_assurance_agreement"
>
</a>
</div>
<div
class=
"layui-row"
>
...
...
@@ -129,21 +133,87 @@
<a
class=
"main_filter"
title=
"账期供应商"
id=
"pay_type_term"
>
</a>
</div>
<div
class=
"layui-row"
>
<a
class=
"main_filter"
title=
"缺少合作协议(线上)"
id=
"no_cooperation_agreement"
>
缺少合作协议(线上)
</a>
</div>
<div
class=
"layui-row"
>
<a
class=
"main_filter"
title=
"缺少品质协议(线上)"
id=
"no_quality_assurance_agreement_all"
>
缺少品质协议(线上)
</a>
</div>
</div>
<div
class=
"split-item"
id=
"s7"
style=
"text-align: center"
>
<div
class=
"layui-row"
>
<a
class=
"main_filter"
title=
"历史平台合作供应商"
id=
"uploaded_sku"
>
历史平台合作供应商
</a>
</div>
<div
class=
"layui-row"
>
<a
class=
"main_filter"
title=
"非云芯供应商"
id=
"not_yunxin"
>
非云芯供应商
</a>
</div>
<div
class=
"layui-row"
>
<a
class=
"main_filter"
title=
"已上架(非云芯)供应商"
id=
"not_yunxin_and_has_sku"
>
已上架(非云芯)供应商
</a>
</div>
<div
class=
"layui-row"
>
<a
class=
"main_filter"
title=
"已下架(非云芯)供应商"
id=
"not_yunxin_and_has_no_sku"
>
已下架(非云芯)供应商
</a>
</div>
<div
class=
"layui-row"
>
<a
class=
"main_filter"
title=
"云芯供应商"
id=
"yunxin"
>
云芯供应商
</a>
</div>
<div
class=
"layui-row"
>
<a
class=
"main_filter"
title=
"已上架(云芯)供应商"
id=
"yunxin_and_has_sku"
>
已上架(云芯)供应商
</a>
</div>
<div
class=
"layui-row"
>
<a
class=
"main_filter"
title=
"已下架(云芯)供应商"
id=
"yunxin_and_has_no_sku"
>
已下架(云芯)供应商
</a>
</div>
</div>
<div
class=
"split-item"
id=
"s8"
style=
"text-align: center"
>
<div
class=
"layui-row"
>
<a
class=
"main_filter"
title=
"3天内到期(云芯)供应商"
id=
"yunxin_expired_at_days"
>
3天内到期(云芯)供应商
</a>
</div>
<div
class=
"layui-row"
>
<a
class=
"main_filter"
title=
"3天内到期(非云芯)供应商"
id=
"not_yunxin_expired_at_days"
>
3天内到期(非云芯)供应商
</a>
</div>
<div
class=
"layui-row"
>
<a
class=
"main_filter"
title=
"已过期(云芯)供应商"
id=
"yunxin_expired"
>
已过期(云芯)供应商
</a>
</div>
<div
class=
"layui-row"
>
<a
class=
"main_filter"
title=
"已过期(非云芯)供应商"
id=
"not_yunxin_expired"
>
已过期(非云芯)供应商
</a>
</div>
</div>
</div>
</div>
</div>
</div>
<div
class=
"layui-collapse"
>
@if(checkPerm('ViewFilter'))
<!--通用的筛选-->
@if(checkPerm('ViewFilter'))
<!--通用的筛选-->
<form
class=
"layui-form"
style=
"margin-top: 15px"
>
<?php
$routerName
=
explode
(
'/'
,
request
()
->
path
())[
1
];
?>
<?php
$routerName
=
explode
(
'/'
,
request
()
->
path
())[
1
];
?>
<div
class=
"layui-inline"
>
@inject('multiTransformableSelectPresenter','App\Presenters\Filter\MultiTransformableSelectPresenter')
{!! $multiTransformableSelectPresenter->render(['supplier_group'=>'供应商性质','company_nature'=>'公司实际性质'],
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment