Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
L
Laisi_AutoMES2
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
jiawei.su
Laisi_AutoMES2
Commits
6d235900
Commit
6d235900
authored
Jan 22, 2021
by
xin.yang
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
http://test.siger-data.com:9000/jiawei.su/Laisi_AutoMES2
parents
9f5b644a
b96d84c0
Hide whitespace changes
Inline
Side-by-side
Showing
17 changed files
with
485 additions
and
236 deletions
+485
-236
feedingBlanking.vue
Html/src/view/fml/operation_manage/feedingBlanking.vue
+71
-25
assemblyInfo.vue
Html/src/view/fms/associate/assemblyInfo.vue
+94
-6
associateProduct.vue
Html/src/view/fms/associate/associateProduct.vue
+204
-180
accountInfo.vue
Html/src/view/fms/config/accountInfo.vue
+7
-20
typeMaintenance.vue
Html/src/view/fms/config/typeMaintenance.vue
+1
-1
collection.vue
Html/src/view/qms/manual/collection.vue
+0
-0
storagemaintenance.vue
Html/src/view/wms/config/storagemaintenance.vue
+1
-1
storageInfoQuery.vue
Html/src/view/wms/whStatusQuery/storageInfoQuery.vue
+1
-1
AutomationOperateController.cs
...s/Siger.ApiACC/Controllers/AutomationOperateController.cs
+22
-1
UnixTimeHelper.cs
.../Common/Siger.Middlelayer.Share/Helpers/UnixTimeHelper.cs
+1
-0
ApiAccDbContext.cs
...tories/Siger.Middlelayer.AccRepository/ApiAccDbContext.cs
+2
-0
siger_automation_fixture_tools_monitor.cs
...sitory/Entities/siger_automation_fixture_tools_monitor.cs
+38
-0
siger_automation_task_list.cs
...ayer.AccRepository/Entities/siger_automation_task_list.cs
+1
-1
AutomationFixtureMonitor.cs
...er.AccRepository/Repositories/AutomationFixtureMonitor.cs
+15
-0
AutomationTaskListRepository.cs
...ccRepository/Repositories/AutomationTaskListRepository.cs
+10
-0
IAutomationFixtureMonitor.cs
...itory/Repositories/Interface/IAutomationFixtureMonitor.cs
+11
-0
IAutomationTaskListRepository.cs
...y/Repositories/Interface/IAutomationTaskListRepository.cs
+6
-0
No files found.
Html/src/view/fml/operation_manage/feedingBlanking.vue
View file @
6d235900
...
...
@@ -5,7 +5,7 @@
<div
class=
"choose"
>
<p
class=
"selectTitle"
>
1.请选择生产线
<
span
class=
"red"
>
*
</span
>
<
!--
<span
class=
"red"
>
*
</span>
--
>
</p>
<div
class=
"row"
>
<p
...
...
@@ -19,17 +19,14 @@
</p>
</div>
<div
class=
"choose"
>
<p
class=
"selectTitle"
>
2.上下料工位
<span
class=
"red"
>
*
</span>
</p>
<p
class=
"selectTitle"
>
2.上下料工位
</p>
<div
class=
"row"
>
<div
:key=
"index"
class=
"options2"
v-for=
"(item, index) in stationList"
@
click=
"change(index)"
:class=
"
{ active:
a
== index }"
@
click=
"change
2
(index)"
:class=
"
{ active:
b
== index }"
>
<p>
{{
item
.
title
}}
</p>
<p>
{{
item
.
status
==
1
?
"待上料"
:
"运行中"
}}
</p>
...
...
@@ -37,18 +34,19 @@
</div>
</div>
<div
class=
"choose"
>
<p
class=
"selectTitle"
>
3.操作
<span
class=
"red"
>
*
</span>
</p>
<p
class=
"selectTitle"
>
3.操作
</p>
<Tabs
type=
"card"
>
<TabPane
label=
"上料"
:disabled=
"attr1"
>
<div
class=
"filter"
>
<label
style=
"font-size: 16px"
>
上料信息:
</label
>
<Input
type=
"text"
class=
"searchInput"
style=
"width: 300px"
/>
<Input
type=
"text"
class=
"searchInput"
style=
"width: 300px"
@
keyup
.
enter=
"getWorkOrderInfo()"
/>
</div>
<div
class=
"row"
>
<p
class=
"flex"
>
...
...
@@ -149,8 +147,16 @@
</p>
</div>
<div>
<Button
type=
"primary"
>
准备上料
</Button>
<Button
type=
"primary"
>
安装完成
</Button>
<Button
type=
"primary"
@
click=
"feedReady()"
>
准备下料
</Button
>
<Button
type=
"primary"
@
click=
"installOver()"
>
拆卸完成
</Button
>
</div>
</div>
</div></TabPane
...
...
@@ -199,6 +205,7 @@ export default {
productionLine
:
[],
stationList
:
[],
a
:
-
1
,
b
:
-
1
,
attr1
:
false
,
//上料、下料、上下料
attr2
:
false
,
//上料、下料、上下料
modal
:
false
,
...
...
@@ -209,26 +216,26 @@ export default {
render
:
(
h
,
params
)
=>
{
return
h
(
"span"
,
params
.
index
+
(
this
.
page
-
1
)
*
this
.
pagesize
+
1
params
.
index
+
1
);
},
width
:
70
,
},
{
title
:
"仓库"
,
key
:
"wa
r
ehouse"
,
key
:
"wa
v
ehouse"
,
},
{
title
:
"储位编号"
,
key
:
"
storage_sn
"
,
key
:
"
locationcode
"
,
},
{
title
:
"工装编号"
,
key
:
"
install_sn
"
,
key
:
"
code
"
,
},
{
title
:
"工件编号"
,
key
:
"
workpiece_
sn"
,
key
:
"
material
sn"
,
},
],
data1
:
[],
...
...
@@ -239,22 +246,22 @@ export default {
render
:
(
h
,
params
)
=>
{
return
h
(
"span"
,
params
.
index
+
(
this
.
page
-
1
)
*
this
.
pagesize
+
1
params
.
index
+
1
);
},
width
:
70
,
},
{
title
:
"储位编号"
,
key
:
"
storage_sn
"
,
key
:
"
locationcode
"
,
},
{
title
:
"工装编号"
,
key
:
"
install_sn
"
,
key
:
"
code
"
,
},
{
title
:
"工件编号"
,
key
:
"
workpiece_
sn"
,
key
:
"
material
sn"
,
},
],
data2
:
[],
...
...
@@ -262,6 +269,7 @@ export default {
},
created
()
{
this
.
getProLine
();
this
.
getStorages
();
},
mounted
()
{
// this.getStations()
...
...
@@ -303,11 +311,22 @@ export default {
this
.
a
=
i
;
this
.
getStations
(
this
.
productionLine
[
i
].
id
);
},
change2
(
index
)
{
this
.
b
=
index
;
let
status
=
this
.
stationList
[
index
].
status
;
if
(
status
==
1
)
{
this
.
attr2
=
true
;
}
},
//获取储位
getStorages
()
{
this
.
request
(
"
"
,
""
,
"
"
)
this
.
request
(
"
/acc/AutomationLocation/GetLocationList"
,
""
,
"get
"
)
.
then
((
res
)
=>
{
console
.
log
(
res
.
data
.
data
);
if
(
res
.
data
.
ret
==
1
)
{
this
.
data1
=
res
.
data
.
data
;
this
.
data2
=
res
.
data
.
data
;
}
})
.
catch
((
err
)
=>
{
...
...
@@ -325,6 +344,33 @@ export default {
console
.
log
(
err
);
});
},
feedReady
()
{
// 准备上料
let
data
=
{
section
:
13
,
code
:
"234324"
,
};
this
.
request
(
"/acc/AutomationOperate/Loading"
,
data
,
"post"
).
thne
((
res
)
=>
{
if
(
res
.
data
.
ret
==
1
)
{
}
});
},
installOver
()
{
// 安装完成
let
data
=
{
section
:
13
};
this
.
request
(
""
,
data
,
"post"
).
thne
(
(
res
)
=>
{
if
(
res
.
data
.
ret
==
1
)
{
}
}
);
},
request
(
url
,
data
,
type
)
{
if
(
type
==
"get"
)
{
return
this
.
axios
...
...
Html/src/view/fms/associate/assemblyInfo.vue
View file @
6d235900
...
...
@@ -15,7 +15,17 @@
</Select>
</div>
<div
class=
"filter"
>
<label>
夹具类型:
</label>
<label>
工装编号:
</label>
<Select
label-in-value
clearable
filterable
class=
"searchSelect"
>
</Select>
</div>
<div
class=
"filter"
>
<label>
状态:
</label>
<Select
label-in-value
clearable
...
...
@@ -112,8 +122,9 @@
export
default
{
data
()
{
return
{
columns1
:
[
columns1
:[
{
type
:
"index2"
,
title
:
this
.
$t
(
"1008"
),
key
:
"xuhao"
,
render
:
(
h
,
params
)
=>
{
...
...
@@ -122,13 +133,90 @@ export default {
params
.
index
+
(
this
.
page
-
1
)
*
this
.
pagesize
+
1
);
},
width
:
70
,
},
{
title
:
this
.
$t
(
"100089"
),
key
:
"productcode"
,
minWidth
:
150
,
title
:
'工装类型'
,
key
:
'category'
},
{
title
:
'管理类型'
,
key
:
'managetype'
,
render
:(
h
,
params
)
=>
{
let
str
=
''
;
if
(
params
.
row
.
managetype
===
1
){
str
=
'单件'
;
}
else
if
(
params
.
row
.
managetype
===
2
){
str
=
'批次'
;
}
return
h
(
'span'
,
str
);
}
},
{
title
:
'工装料号'
,
key
:
'partnumber'
},
{
title
:
'工装名称'
,
key
:
'name'
},
{
title
:
'工装编号'
,
key
:
'code'
},
{
title
:
'规格型号'
,
key
:
'specification'
},
{
title
:
'数量'
,
key
:
'number'
},
{
title
:
'状态'
,
key
:
'status'
,
render
:(
h
,
params
)
=>
{
let
str
=
''
;
if
(
params
.
row
.
status
===
1
){
str
=
'可用'
;
}
else
{
str
=
'停用'
;
}
return
h
(
'span'
,
str
);
}
},
{
title
:
'备注'
,
key
:
'remark'
},
{
title
:
'附件'
,
key
:
'filename'
,
render
:(
h
,
params
)
=>
{
return
h
(
'span'
,{
style
:{
color
:
'#2b85e4'
,
cursor
:
'pointer'
},
on
:{
click
:()
=>
{
let
name
=
params
.
row
.
filename
;
let
url
=
params
.
row
.
fileurl
;
if
(
url
){
this
.
downFile
(
url
,
name
);
}
}
}
},
params
.
row
.
filename
);
}
},
{
title
:
'维护人'
,
key
:
'updator'
},
{
title
:
'维护时间'
,
key
:
'updatetime'
}
],
data1
:
[],
total
:
0
,
...
...
Html/src/view/fms/associate/associateProduct.vue
View file @
6d235900
...
...
@@ -7,20 +7,31 @@
</div>
<div
class=
"filter"
>
<label>
工装名称:
</label>
<Input
type=
"text"
class=
"searchInput"
v-model=
"frockname"
/>
<Select
v-model=
"frockid"
label-in-value
clearable
filterable
filter-by-label
class=
"searchSelect"
>
<Option
v-for=
"(item,index) in frockList"
:value=
"item.id"
:key=
"index"
:label=
"item.name+'#'+item.code"
>
{{
item
.
name
+
'#'
+
item
.
code
}}
</Option>
</Select>
</div>
<div
class=
"filter"
>
<label>
状态:
</label>
<Select
v-model=
"status"
clearable
class=
"searchSelect"
>
<Option
:value=
"1"
>
可用
</Option>
<Option
:value=
"0"
>
停用
</Option>
<label>
产品名称:
</label>
<Select
v-model=
"productid"
label-in-value
clearable
filterable
filter-by-label
class=
"searchSelect"
>
<Option
v-for=
"(item,index) in productList"
:value=
"item.id"
:key=
"index"
:label=
"item.name+'#'+item.code+'#'+item.drawingcode"
>
{{
item
.
name
+
'#'
+
item
.
code
+
'#'
+
item
.
drawingcode
}}
</Option>
</Select>
</div>
<div
class=
"searchBtn"
>
<Button
type=
"primary"
class=
"twoWord"
icon=
"ios-search"
@
click=
"tosearch()"
>
{{
$t
(
1001
)
}}
</Button>
<Button
type=
"success"
class=
"twoWord"
icon=
"md-add-circle"
@
click=
"add()"
>
{{
$t
(
'1002'
)
}}
</Button>
<Button
type=
"warning"
class=
"twoWord"
icon=
"ios-create-outline"
@
click=
"edit()"
>
{{
$t
(
'1003'
)
}}
</Button>
<Button
type=
"error"
class=
"twoWord intervalRight"
icon=
"md-close-circle"
@
click=
"dele()"
>
{{
$t
(
1004
)
}}
</Button>
<Button
type=
"primary"
class=
"fourWord"
icon=
"md-download"
@
click=
"loadexcel()"
>
{{
$t
(
'1005'
)
}}
</Button>
<Upload
style=
"display:inline-block"
...
...
@@ -32,7 +43,7 @@
:on-format-error=
"handleFormatError"
:on-success=
"handleSuccess"
:on-error=
"handleError"
:format=
"['xlsx']"
:format=
"['xlsx'
,'xls'
]"
>
<Button
type=
"primary"
...
...
@@ -77,42 +88,30 @@
<div>
正在上传...
</div>
</Spin>
<div
class=
"filter"
>
<label>
<i>
*
</i>
工装类型:
</label>
<label>
工装类型:
</label>
<Cascader
class=
"searchSelect"
:data=
"frockTypeTree"
v-model=
"parentType"
change-on-select
@
on-change=
"changeFrockType1"
></Cascader>
</div>
<div
class=
"filter"
>
<label><i>
*
</i>
管理类型:
</label>
<Select
v-model=
"addmtype"
class=
"searchSelect"
>
<Option
:value=
"1"
>
单件
</Option>
<Option
:value=
"2"
>
批次
</Option>
</Select>
</div>
<div
class=
"filter"
>
<label><i>
*
</i>
工装名称:
</label>
<Input
type=
"text"
class=
"searchInput"
v-model=
"addfrockname"
/>
</div>
<div
class=
"filter"
>
<label><i>
*
</i>
工装料号:
</label>
<Input
type=
"text"
class=
"searchInput"
v-model=
"addfrockno"
/>
</div>
<div
class=
"filter"
>
<label><i>
*
</i>
工装编号:
</label>
<Input
type=
"text"
class=
"searchInput"
v-model=
"addfrockcode"
/>
</div>
<div
class=
"filter"
>
<label><i>
*
</i>
规格型号:
</label>
<Input
type=
"text"
class=
"searchInput"
v-model=
"addfrockspec"
/>
</div>
<div
class=
"filter"
>
<label><i>
*
</i>
数量:
</label>
<InputNumber
type=
"text"
class=
"searchInput"
:min=
"1"
:formatter=
"value => `$
{parseInt(value)}`" v-model="addnum" />
<Select
v-model=
"addfrockid"
label-in-value
clearable
filterable
filter-by-label
class=
"searchSelect"
>
<Option
v-for=
"(item,index) in addfrockList"
:value=
"item.id"
:key=
"index"
:label=
"item.name+'#'+item.code"
>
{{
item
.
name
+
'#'
+
item
.
code
}}
</Option>
</Select>
</div>
<div
class=
"filter"
>
<label><i>
*
</i>
状态:
</label>
<RadioGroup
v-model=
"addstatus"
>
<Radio
label=
"1"
><span>
可用
</span></Radio>
<Radio
label=
"0"
><span>
停用
</span></Radio>
</RadioGroup>
<label><i>
*
</i>
产品名称:
</label>
<Select
v-model=
"addproductid"
label-in-value
clearable
filterable
filter-by-label
class=
"searchSelect"
>
<Option
v-for=
"(item,index) in productList"
:value=
"item.id"
:key=
"index"
:label=
"item.name+'#'+item.code+'#'+item.drawingcode"
>
{{
item
.
name
+
'#'
+
item
.
code
+
'#'
+
item
.
drawingcode
}}
</Option>
</Select>
</div>
<div
class=
"filter"
>
<label>
备注:
</label>
...
...
@@ -124,9 +123,9 @@
<Upload
ref=
"upload"
:show-upload-list=
"false"
:on-success=
"handleSuccess"
:on-success=
"handleSuccess
1
"
:before-upload=
"handleBeforeUpload"
:on-error=
"handleError"
:on-error=
"handleError
1
"
type=
"drag"
:headers=
"headers"
:action=
"UploadAction"
>
...
...
@@ -162,9 +161,10 @@ export default {
frockTypeTree
:[],
//树形结构
frockType
:[],
//工装类型
frockTypeid
:
''
,
frockcode
:
''
,
//工装编号
frockname
:
''
,
//工装名称
status
:
''
,
//状态
frockList
:[],
//工装列表
frockid
:
''
,
//工装id
productList
:[],
//产品列表
productid
:
''
,
//产品id
//列表
total
:
0
,
...
...
@@ -185,20 +185,7 @@ export default {
},
{
title
:
'工装类型'
,
key
:
'category'
},
{
title
:
'管理类型'
,
key
:
'managetype'
,
render
:(
h
,
params
)
=>
{
let
str
=
''
;
if
(
params
.
row
.
managetype
===
1
){
str
=
'单件'
;
}
else
if
(
params
.
row
.
managetype
===
2
){
str
=
'批次'
;
}
return
h
(
'span'
,
str
);
}
key
:
'categoryname'
},
{
title
:
'工装料号'
,
...
...
@@ -206,32 +193,19 @@ export default {
},
{
title
:
'工装名称'
,
key
:
'name'
},
{
title
:
'工装编号'
,
key
:
'code'
key
:
'fixturetool'
},
{
title
:
'规格型号'
,
key
:
'spec
i
fication'
key
:
'specfication'
},
{
title
:
'
数量
'
,
key
:
'
number
'
title
:
'
产品编号
'
,
key
:
'
productcode
'
},
{
title
:
'状态'
,
key
:
'status'
,
render
:(
h
,
params
)
=>
{
let
str
=
''
;
if
(
params
.
row
.
status
===
1
){
str
=
'可用'
;
}
else
{
str
=
'停用'
;
}
return
h
(
'span'
,
str
);
}
title
:
'产品名称'
,
key
:
'productname'
},
{
title
:
'备注'
,
...
...
@@ -272,16 +246,11 @@ export default {
detailobj
:{},
addmodal
:
false
,
type
:
0
,
//1添加 2编辑
parentType
:[],
//
父级
类型
parentType
:[],
//
工装
类型
parentTypeid
:
''
,
frockTypename
:
''
,
//工装类型名称
addmtype
:
1
,
//管理类型
addfrockname
:
''
,
//工装名称
addfrockno
:
''
,
//工装料号
addfrockcode
:
''
,
//工装编号
addnum
:
0
,
addstatus
:
'1'
,
//状态 1可用 0停用
addfrockspec
:
''
,
//规格型号
addfrockList
:[],
addfrockid
:
''
,
//工装id
addproductid
:
''
,
//产品
addremark
:
''
,
//备注
filename
:
''
,
//文件名称
fileurl
:
''
,
//文件路径
...
...
@@ -297,6 +266,8 @@ export default {
},
created
(){
this
.
initFrockType
();
//工装类型
this
.
getFrocks
();
//工装
this
.
iniproducts
();
//产品
this
.
tosearch
();
this
.
tableColumns1
=
this
.
$time
.
initTableTitle
(
this
.
tableColumns1
);
},
...
...
@@ -333,6 +304,7 @@ export default {
this
.
frockTypeid
=
""
;
if
(
value
!=
undefined
&&
value
.
length
){
this
.
frockTypeid
=
value
[
value
.
length
-
1
];
this
.
getFrocksChange
(
1
);
}
},
changeFrockType1
(
value
){
...
...
@@ -341,21 +313,85 @@ export default {
if
(
value
!=
undefined
&&
value
.
length
){
this
.
parentTypeid
=
value
[
value
.
length
-
1
];
this
.
parentType
=
value
;
this
.
getFrocksChange
(
2
);
}
},
//获取工装
列表
//获取工装
下拉框
getFrocks
(){
// this.axios.request({
// url: "/fms/accountInfo/frockList",
// method: "get",
// })
// .then((res) => {
// this.frockList = [];
// let data = res.data.data;
// if (res.data.ret == 1&&Array.isArray(data)&&data.length) {
// this.frockList = data;
// }
// });
let
params
=
{
category
:
''
,
//工装类型id
code
:
''
,
name
:
''
,
state
:
1
,
//0停用 1可用
page
:
1
,
pagesize
:
1000000
,
toexcel
:
0
//0查询 1导出
}
this
.
axios
.
request
({
url
:
"/acc/FixtureTools/GetPageList"
,
params
,
method
:
"get"
,
})
.
then
((
res
)
=>
{
this
.
frockList
=
[];
this
.
addfrockList
=
[];
let
data
=
res
.
data
.
data
;
if
(
res
.
data
.
ret
==
1
&&
Array
.
isArray
(
data
)
&&
data
.
length
)
{
this
.
frockList
=
res
.
data
.
data
;
this
.
addfrockList
=
res
.
data
.
data
;
}
});
},
getFrocksChange
(
num
){
this
.
addfrockid
=
''
;
let
params
=
{
category
:
num
==
1
?
this
.
frockTypeid
:
this
.
parentTypeid
,
//工装类型id
code
:
''
,
name
:
''
,
state
:
1
,
//0停用 1可用
page
:
1
,
pagesize
:
1000000
,
toexcel
:
0
//0查询 1导出
}
this
.
axios
.
request
({
url
:
"/acc/FixtureTools/GetPageList"
,
params
,
method
:
"get"
,
})
.
then
((
res
)
=>
{
if
(
num
==
1
){
this
.
frockList
=
[];
}
else
{
this
.
addfrockList
=
[];
}
let
data
=
res
.
data
.
data
;
if
(
res
.
data
.
ret
==
1
&&
Array
.
isArray
(
data
)
&&
data
.
length
)
{
if
(
num
==
1
){
this
.
frockList
=
res
.
data
.
data
;
}
else
{
this
.
addfrockList
=
res
.
data
.
data
;
}
}
});
},
//查询产品
iniproducts
()
{
var
params
=
{
name
:
''
,
count
:
1000000
}
this
.
axios
.
request
({
url
:
'/config/ProjectProduct/GetProductsByCode'
,
params
,
method
:
'get'
})
.
then
(
res
=>
{
this
.
productList
=
[];
let
data
=
res
.
data
.
data
;
if
(
res
.
data
.
ret
===
1
&&
Array
.
isArray
(
data
)
&&
data
.
length
){
this
.
productList
=
res
.
data
.
data
}
})
},
tosearch
(){
this
.
page
=
1
;
...
...
@@ -364,17 +400,16 @@ export default {
},
search
(
toexcel
){
let
params
=
{
category
:
this
.
frockType
,
//工装类型id
code
:
this
.
frockcode
,
name
:
this
.
frockname
,
state
:
this
.
status
,
//0停用 1可用
category
:
this
.
frockTypeid
,
//工装类别ID
tool
:
this
.
frockid
,
//工装信息ID
product
:
this
.
productid
,
//产品ID
page
:
this
.
page
,
pagesize
:
this
.
pagesize
,
toexcel
:
toexcel
//0查询 1导出
}
this
.
detailobj
=
{};
this
.
axios
.
request
({
url
:
"/acc/FixtureTools/GetPageList"
,
url
:
"/acc/FixtureTools
Product
/GetPageList"
,
params
,
method
:
"get"
,
})
...
...
@@ -382,7 +417,7 @@ export default {
if
(
toexcel
===
1
){
if
(
res
.
data
.
ret
===
1
)
{
window
.
location
.
href
=
axios
.
publicPath
+
""
+
res
.
data
.
data
;
this
.
axios
.
publicPath
+
""
+
res
.
data
.
data
;
}
else
{
this
.
$Message
.
error
(
this
.
$t
(
res
.
data
.
msg
));
}
...
...
@@ -402,14 +437,8 @@ export default {
this
.
type
=
1
;
this
.
parentType
=
[];
//工装类型 清空
this
.
parentTypeid
=
''
;
this
.
addmtype
=
1
;
//管理类型
this
.
addfrockname
=
''
;
//工装名称
this
.
addfrockno
=
''
;
//工装料号
this
.
addfrockcode
=
''
;
//工装编号
this
.
addnum
=
1
;
this
.
addfrockspec
=
''
;
this
.
addstatus
=
'1'
;
//状态 1可用 0停用
this
.
addfrockid
=
''
;
//工装id
this
.
addproductid
=
''
;
//产品
this
.
addremark
=
''
;
//备注
this
.
filename
=
''
;
//文件名称
this
.
fileurl
=
''
;
//文件路径
...
...
@@ -421,68 +450,41 @@ export default {
return
false
;
}
this
.
type
=
2
;
this
.
parentType
=
[];
//工装类型 清空
this
.
parentTypeid
=
this
.
detailobj
.
categoryid
;
this
.
parentType
=
this
.
detailobj
.
categoryids
;
this
.
addmtype
=
this
.
detailobj
.
managetype
;
//管理类型
this
.
addfrockname
=
this
.
detailobj
.
name
;
//工装名称
this
.
addfrockno
=
this
.
detailobj
.
partnumber
;
//工装料号
this
.
addfrockcode
=
this
.
detailobj
.
code
;
//工装编号
this
.
addnum
=
this
.
detailobj
.
number
;
this
.
addfrockspec
=
this
.
detailobj
.
specification
;
this
.
addstatus
=
this
.
detailobj
.
status
+
''
;
//状态 1可用 0停用
this
.
addfrockid
=
this
.
detailobj
.
fixturetoolid
;
//工装id
this
.
addproductid
=
this
.
detailobj
.
productid
;
//产品
this
.
addremark
=
this
.
detailobj
.
remark
;
//备注
this
.
filename
=
this
.
detailobj
.
filename
;
//文件名称
this
.
fileurl
=
this
.
detailobj
.
fileurl
;
//文件路径
this
.
addmodal
=
true
;
},
addPost
(){
if
(
!
this
.
parentTypeid
){
this
.
$Message
.
error
(
"请选择工装类型"
);
return
false
;
}
if
(
!
this
.
addfrockname
){
if
(
!
this
.
addfrockid
){
this
.
$Message
.
error
(
"请输入工装名称"
);
return
false
;
}
if
(
!
this
.
addfrockno
){
this
.
$Message
.
error
(
"请输入工装料号"
);
return
false
;
}
if
(
!
this
.
addfrockcode
){
this
.
$Message
.
error
(
"请输入工装编号"
);
return
false
;
}
if
(
!
this
.
addfrockspec
){
this
.
$Message
.
error
(
"请输入规格型号"
);
if
(
!
this
.
addproductid
){
this
.
$Message
.
error
(
"请输入产品名称"
);
return
false
;
}
if
(
!
this
.
addnum
){
this
.
$Message
.
error
(
"请输入工装数量"
);
return
false
;
}
let
url
=
''
;
let
id
=
''
;
if
(
this
.
type
===
1
){
url
=
'/acc/FixtureTools/Add'
;
url
=
'/acc/FixtureTools
Product
/Add'
;
id
=
0
;
}
else
{
url
=
'/acc/FixtureTools/Update'
;
url
=
'/acc/FixtureTools
Product
/Update'
;
id
=
this
.
detailobj
.
id
;
}
let
data
=
{
id
:
id
,
categoryid
:
this
.
parentTypeid
,
//工装类型id
managetype
:
this
.
addmtype
,
partnumber
:
this
.
addfrockno
,
//料号
code
:
this
.
addfrockcode
,
//编号
name
:
this
.
addfrockname
,
//名称
specifition
:
this
.
addfrockspec
,
//规格型号
number
:
this
.
addnum
,
//数量
fixturetoolid
:
this
.
addfrockid
,
//工装id
productid
:
this
.
addproductid
,
remark
:
this
.
addremark
,
//备注
status
:
this
.
addstatus
,
//附件
fileurl
:
this
.
fileurl
,
filename
:
this
.
filename
}
...
...
@@ -515,7 +517,7 @@ export default {
return
false
;
}
},
handleSuccess
(
res
,
file
)
{
handleSuccess
1
(
res
,
file
)
{
this
.
spinShow
=
false
;
if
(
res
.
ret
==
1
)
{
this
.
$Message
.
success
(
this
.
$t
(
"100378"
));
...
...
@@ -525,7 +527,8 @@ export default {
this
.
$Message
.
error
(
this
.
$t
(
res
.
msg
+
''
));
}
},
handleError
(){
handleError1
(){
this
.
spinShow
=
false
;
this
.
$Message
.
error
(
this
.
$t
(
"600512"
)
+
"!"
);
},
delfile
(){
...
...
@@ -536,44 +539,65 @@ export default {
//下载文件
downFile
(
url
,
fileName
){
let
params
=
{
file_url
:
url
,
url
:
url
,
name
:
fileName
};
this
.
axios
.
request
({
url
:
"/config/Download/DownloadFile"
,
url
:
"/config/Download/DownloadFile
ByUrl
"
,
params
,
method
:
"get"
,
responseType
:
"blob"
})
.
then
((
res
)
=>
{
if
(
res
.
data
.
ret
===
1
)
{
var
info
=
res
.
data
.
data
;
var
content
=
info
.
content
;
// 创建隐藏的可下载链接
var
eleLink
=
document
.
createElement
(
"a"
);
eleLink
.
download
=
fileName
;
eleLink
.
style
.
display
=
"none"
;
// 字符内容转变成blob地址
var
blob
=
new
Blob
([
content
]);
eleLink
.
href
=
URL
.
createObjectURL
(
blob
);
// 触发点击
document
.
body
.
appendChild
(
eleLink
);
eleLink
.
click
();
// 然后移除
document
.
body
.
removeChild
(
eleLink
);
}
else
{
this
.
$Message
.
error
(
this
.
$t
(
res
.
data
.
msg
));
if
(
res
.
status
==
200
)
{
let
url
;
let
link
=
document
.
createElement
(
"a"
);
url
=
window
.
URL
.
createObjectURL
(
res
.
data
);
link
.
style
.
display
=
"none"
;
link
.
href
=
url
;
link
.
setAttribute
(
"download"
,
fileName
);
document
.
body
.
appendChild
(
link
);
link
.
click
();
}
})
// console.log(fileName)
// console.log(data)
// let url = window.URL.createObjectURL(new Blob([data]));
// let link = document.createElement("a");
// link.style.display = "none";
// link.href = url;
// link.setAttribute("download", fileName);
// document.body.appendChild(link);
// link.click();
}).
catch
(
error
=>
{
this
.
$Message
.
error
(
'请求错误'
)
});
},
//删除
dele
(){
if
(
this
.
detailobj
.
id
===
undefined
||
this
.
detailobj
.
id
===
null
)
{
this
.
$Message
.
error
(
this
.
$t
(
"1017"
));
return
false
;
}
else
{
var
params
=
{
id
:
this
.
detailobj
.
id
,
};
this
.
$Modal
.
confirm
({
title
:
this
.
$t
(
"1018"
),
content
:
""
,
width
:
"290px"
,
closable
:
true
,
okText
:
this
.
$t
(
"1004"
),
onOk
:
()
=>
{
this
.
axios
.
request
({
url
:
"/acc/FixtureToolsProduct/Delete"
,
params
,
method
:
"get"
,
})
.
then
((
res
)
=>
{
if
(
res
.
data
.
ret
===
1
)
{
this
.
$Message
.
success
(
this
.
$t
(
"1058"
));
this
.
search
(
0
);
}
else
{
this
.
$Message
.
error
(
this
.
$t
(
res
.
data
.
msg
));
}
});
},
});
}
},
//导出模板
loadexcel
()
{
...
...
Html/src/view/fms/config/accountInfo.vue
View file @
6d235900
...
...
@@ -35,7 +35,7 @@
:on-format-error=
"handleFormatError"
:on-success=
"handleSuccess"
:on-error=
"handleError"
:format=
"['xlsx']"
:format=
"['xlsx'
,'xls'
]"
>
<Button
type=
"primary"
...
...
@@ -275,7 +275,7 @@ export default {
detailobj
:{},
addmodal
:
false
,
type
:
0
,
//1添加 2编辑
parentType
:[],
//
父级
类型
parentType
:[],
//
工装
类型
parentTypeid
:
''
,
frockTypename
:
''
,
//工装类型名称
addmtype
:
1
,
//管理类型
...
...
@@ -346,20 +346,6 @@ export default {
this
.
parentType
=
value
;
}
},
//获取工装列表
getFrocks
(){
// this.axios.request({
// url: "/fms/accountInfo/frockList",
// method: "get",
// })
// .then((res) => {
// this.frockList = [];
// let data = res.data.data;
// if (res.data.ret == 1&&Array.isArray(data)&&data.length) {
// this.frockList = data;
// }
// });
},
tosearch
(){
this
.
page
=
1
;
this
.
pagesize
=
10
;
...
...
@@ -367,7 +353,7 @@ export default {
},
search
(
toexcel
){
let
params
=
{
category
:
this
.
frockType
,
//工装类型id
category
:
this
.
frockType
id
,
//工装类型id
code
:
this
.
frockcode
,
name
:
this
.
frockname
,
state
:
this
.
status
,
//0停用 1可用
...
...
@@ -385,7 +371,7 @@ export default {
if
(
toexcel
===
1
){
if
(
res
.
data
.
ret
===
1
)
{
window
.
location
.
href
=
axios
.
publicPath
+
""
+
res
.
data
.
data
;
this
.
axios
.
publicPath
+
""
+
res
.
data
.
data
;
}
else
{
this
.
$Message
.
error
(
this
.
$t
(
res
.
data
.
msg
));
}
...
...
@@ -518,7 +504,7 @@ export default {
return
false
;
}
},
handleSuccess
(
res
,
file
)
{
handleSuccess
1
(
res
,
file
)
{
this
.
spinShow
=
false
;
if
(
res
.
ret
==
1
)
{
this
.
$Message
.
success
(
this
.
$t
(
"100378"
));
...
...
@@ -528,7 +514,8 @@ export default {
this
.
$Message
.
error
(
this
.
$t
(
res
.
msg
+
''
));
}
},
handleError
(){
handleError1
(){
this
.
spinShow
=
false
;
this
.
$Message
.
error
(
this
.
$t
(
"600512"
)
+
"!"
);
},
delfile
(){
...
...
Html/src/view/fms/config/typeMaintenance.vue
View file @
6d235900
...
...
@@ -21,7 +21,7 @@
:on-format-error=
"handleFormatError"
:on-success=
"handleSuccess"
:on-error=
"handleError"
:format=
"['xlsx']"
:format=
"['xlsx'
,'xls'
]"
>
<Button
type=
"primary"
...
...
Html/src/view/qms/manual/collection.vue
View file @
6d235900
This source diff could not be displayed because it is too large. You can
view the blob
instead.
Html/src/view/wms/config/storagemaintenance.vue
View file @
6d235900
...
...
@@ -28,7 +28,7 @@
:on-format-error=
"handleFormatError"
:on-success=
"handleSuccess"
:on-error=
"handleError"
:format=
"['xlsx']"
:format=
"['xlsx'
,'xls'
]"
>
<Button
type=
"primary"
...
...
Html/src/view/wms/whStatusQuery/storageInfoQuery.vue
View file @
6d235900
...
...
@@ -33,7 +33,7 @@
:on-format-error=
"handleFormatError"
:on-success=
"handleSuccess"
:on-error=
"handleError"
:format=
"['xlsx']"
:format=
"['xlsx'
,'xls'
]"
>
<Button
type=
"primary"
...
...
Server/Apis/Siger.ApiACC/Controllers/AutomationOperateController.cs
View file @
6d235900
...
...
@@ -28,8 +28,11 @@ namespace Siger.ApiACC.Controllers
private
readonly
IAutomationMachineStatus
_automationMachineStatus
;
private
readonly
ISigerProjectMachineAttributionRepository
_sigerProjectMachineAttribution
;
private
readonly
IAutomationTaskListRepository
_automationTaskList
;
private
readonly
IProductPlanDetails
_planDetails
;
private
readonly
IProductPlanRepository
_productPlan
;
public
AutomationOperateController
(
IUnitOfWork
unitOfWork
,
ISigerProjectLevelSectionRepository
sigerProjectLevelSection
,
ISigerDict
sigerDict
,
IAutomationMachineStatus
automationMachineStatus
,
ISigerProjectMachineAttributionRepository
sigerProjectMachineAttribution
,
IAutomationTaskListRepository
automationTaskList
)
public
AutomationOperateController
(
IUnitOfWork
unitOfWork
,
ISigerProjectLevelSectionRepository
sigerProjectLevelSection
,
ISigerDict
sigerDict
,
IAutomationMachineStatus
automationMachineStatus
,
ISigerProjectMachineAttributionRepository
sigerProjectMachineAttribution
,
IAutomationTaskListRepository
automationTaskList
,
IProductPlanDetails
planDetails
,
IProductPlanRepository
productPlan
)
{
_unitOfWork
=
unitOfWork
;
_sigerProjectLevelSection
=
sigerProjectLevelSection
;
...
...
@@ -37,6 +40,8 @@ namespace Siger.ApiACC.Controllers
_automationMachineStatus
=
automationMachineStatus
;
_sigerProjectMachineAttribution
=
sigerProjectMachineAttribution
;
_automationTaskList
=
automationTaskList
;
_planDetails
=
planDetails
;
_productPlan
=
productPlan
;
}
/// <summary>
...
...
@@ -163,7 +168,20 @@ namespace Siger.ApiACC.Controllers
{
throw
new
BadRequestException
(
AccEnum
.
TaskProcessing
);
}
var
plandts
=
_planDetails
.
Get
(
f
=>
f
.
projectId
==
ProjectId
&&
f
.
OrderNumber
==
loading
.
code
);
if
(
plandts
==
null
)
{
throw
new
BadRequestException
(
CncEnum
.
PlanHasExist
);
}
var
plan
=
_productPlan
.
Get
(
f
=>
f
.
id
==
plandts
.
PlanId
);
if
(
plan
==
null
)
{
throw
new
BadRequestException
(
CncEnum
.
PlanHasExist
);
}
var
taskNo
=
_automationTaskList
.
CrateTaskNumber
(
Automation
.
TaskTrigerType
.
Manual
);
var
sn
=
_automationTaskList
.
CreateRandonSn
(
plan
.
product_code
);
_automationTaskList
.
Insert
(
new
siger_automation_task_list
{
...
...
@@ -180,6 +198,9 @@ namespace Siger.ApiACC.Controllers
completetime
=
DateTime
.
MinValue
,
trigger
=
Automation
.
TaskTrigerType
.
Manual
,
projectId
=
ProjectId
,
productid
=
plan
.
product_id
,
sn
=
sn
,
ordercode
=
plandts
.
OrderNumber
,
remark
=
"手动任务"
,
});
...
...
Server/Common/Siger.Middlelayer.Share/Helpers/UnixTimeHelper.cs
View file @
6d235900
...
...
@@ -15,6 +15,7 @@ namespace Siger.Middlelayer.Common.Helpers
public
const
string
DateTimeFormatYmd
=
"yyyyMMdd"
;
public
const
string
TimeFormat
=
"HH:mm:ss"
;
public
const
string
DateTimeFormatYYmmdd
=
"yyMMdd"
;
/// <summary>
/// unix time to date-->yyyyMMdd
...
...
Server/Infrastructure/Repositories/Siger.Middlelayer.AccRepository/ApiAccDbContext.cs
View file @
6d235900
...
...
@@ -165,5 +165,7 @@ namespace Siger.Middlelayer.AccRepository
public
DbSet
<
siger_automation_machine_status
>
siger_automation_machine_status
{
get
;
set
;
}
public
DbSet
<
siger_automation_produce_history
>
siger_automation_produce_history
{
get
;
set
;
}
public
DbSet
<
siger_automation_fixture_tools_monitor
>
siger_automation_fixture_tools_moniter
{
get
;
set
;
}
}
}
Server/Infrastructure/Repositories/Siger.Middlelayer.AccRepository/Entities/siger_automation_fixture_tools_monitor.cs
0 → 100644
View file @
6d235900
using
System
;
using
System.Collections.Generic
;
using
System.Text
;
namespace
Siger.Middlelayer.AccRepository.Entities
{
public
class
siger_automation_fixture_tools_monitor
:
AccEntityBase
{
/// <summary>
/// 工装ID
/// </summary>
public
int
fixtureId
{
get
;
set
;
}
/// <summary>
/// 当前工站ID
/// </summary>
public
int
section
{
get
;
set
;
}
/// <summary>
/// 当前Sn
/// </summary>
public
string
sn
{
get
;
set
;
}
/// <summary>
/// 工序ID
/// </summary>
public
int
route
{
get
;
set
;
}
/// <summary>
/// 工序描述
/// </summary>
public
string
routedesc
{
get
;
set
;
}
/// <summary>
/// 创建时间
/// </summary>
public
DateTime
createtime
{
get
;
set
;
}
/// <summary>
/// 更新时间
/// </summary>
public
DateTime
updatetime
{
get
;
set
;
}
}
}
Server/Infrastructure/Repositories/Siger.Middlelayer.AccRepository/Entities/siger_automation_task_list.cs
View file @
6d235900
...
...
@@ -26,7 +26,7 @@ namespace Siger.Middlelayer.AccRepository.Entities
/// <summary>
/// 工件ID
/// </summary>
public
int
materialid
{
get
;
set
;
}
public
string
sn
{
get
;
set
;
}
/// <summary>
/// 工单号
/// </summary>
...
...
Server/Infrastructure/Repositories/Siger.Middlelayer.AccRepository/Repositories/AutomationFixtureMonitor.cs
0 → 100644
View file @
6d235900
using
Siger.Middlelayer.AccRepository.Entities
;
using
Siger.Middlelayer.AccRepository.Repositories.Interface
;
using
System
;
using
System.Collections.Generic
;
using
System.Text
;
namespace
Siger.Middlelayer.AccRepository.Repositories
{
internal
class
AutomationFixtureMonitor
:
AccRepositoryBase
<
siger_automation_fixture_tools_monitor
>,
IAutomationFixtureMonitor
{
public
AutomationFixtureMonitor
(
ApiAccDbContext
context
)
:
base
(
context
)
{
}
}
}
Server/Infrastructure/Repositories/Siger.Middlelayer.AccRepository/Repositories/AutomationTaskListRepository.cs
View file @
6d235900
...
...
@@ -2,6 +2,7 @@
using
System.Linq
;
using
System.Linq.Expressions
;
using
Microsoft.EntityFrameworkCore
;
using
OfficeOpenXml.FormulaParsing.Excel.Functions.DateTime
;
using
Siger.Middlelayer.AccRepository.Entities
;
using
Siger.Middlelayer.AccRepository.Repositories.Interface
;
using
Siger.Middlelayer.Common.Helpers
;
...
...
@@ -45,5 +46,14 @@ namespace Siger.Middlelayer.AccRepository.Repositories
return
$"M
{
radon
}
T
{
lable
}
"
;
}
}
public
string
CreateRandonSn
(
string
productCode
)
{
var
date
=
DateTime
.
Now
;
var
serinum
=
date
.
DayOfYear
+
date
.
Hour
+
date
.
Minute
+
date
.
Second
+
date
.
Millisecond
;
var
randon
=
new
Random
().
Next
(
1000
,
9999
);
return
$"
{
productCode
}{
date
.
ToString
(
UnixTimeHelper
.
DateTimeFormatYmd
)}{
serinum
}{
randon
}
"
;
}
}
}
Server/Infrastructure/Repositories/Siger.Middlelayer.AccRepository/Repositories/Interface/IAutomationFixtureMonitor.cs
0 → 100644
View file @
6d235900
using
Siger.Middlelayer.AccRepository.Entities
;
using
System
;
using
System.Collections.Generic
;
using
System.Text
;
namespace
Siger.Middlelayer.AccRepository.Repositories.Interface
{
public
interface
IAutomationFixtureMonitor
:
IAccRepositoryBase
<
siger_automation_fixture_tools_monitor
>
{
}
}
Server/Infrastructure/Repositories/Siger.Middlelayer.AccRepository/Repositories/Interface/IAutomationTaskListRepository.cs
View file @
6d235900
...
...
@@ -16,5 +16,11 @@ namespace Siger.Middlelayer.AccRepository.Repositories.Interface
/// <param name="section"></param>
/// <returns></returns>
bool
CanTask
(
int
projectId
,
int
section
);
/// <summary>
/// 创建随机工件号码 SN
/// </summary>
/// <returns></returns>
string
CreateRandonSn
(
string
productCode
);
}
}
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