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
31d4ae2f
Commit
31d4ae2f
authored
Jan 27, 2021
by
yiyu.li
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
http://test.siger-data.com:9000/jiawei.su/Laisi_AutoMES2
parents
03004e87
657f60cf
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
102 additions
and
13 deletions
+102
-13
en-US.js
Html/src/locale/lang/en-US.js
+3
-0
zh-CN.js
Html/src/locale/lang/zh-CN.js
+3
-0
storagemaintenance.vue
Html/src/view/wms/config/storagemaintenance.vue
+21
-0
AutomationLocationController.cs
.../Siger.ApiACC/Controllers/AutomationLocationController.cs
+16
-2
FixtureToolsAssemblyController.cs
...iger.ApiACC/Controllers/FixtureToolsAssemblyController.cs
+4
-0
LocationController.cs
Server/Apis/Siger.ApiWMS/Controllers/LocationController.cs
+37
-3
WaveHouseController.cs
Server/Apis/Siger.ApiWMS/Controllers/WaveHouseController.cs
+5
-0
RequestEnum.cs
Server/Common/Siger.Middlelayer.Share/Enum/RequestEnum.cs
+9
-0
AutomationLocationRepository.cs
...ccRepository/Repositories/AutomationLocationRepository.cs
+3
-3
IAutomationLocationRepository.cs
...y/Repositories/Interface/IAutomationLocationRepository.cs
+1
-1
RequestAddBeatAllocation.cs
...lelayer.CncRepository/Request/RequestAddBeatAllocation.cs
+0
-4
No files found.
Html/src/locale/lang/en-US.js
View file @
31d4ae2f
...
@@ -721,6 +721,9 @@ export default {
...
@@ -721,6 +721,9 @@ export default {
'9000496'
:
'ID重复'
,
'9000496'
:
'ID重复'
,
'9000497'
:
'父级和子级不能相同'
,
'9000497'
:
'父级和子级不能相同'
,
'9000498'
:
'该类型绑定了工装,不能删除'
,
'9000498'
:
'该类型绑定了工装,不能删除'
,
'9000499'
:
'储位层级错误'
,
'9000500'
:
'该类别绑定了储位,不能删除'
,
'9000501'
:
'该仓库绑定了储位,不能删除'
,
'9100000'
:
'Departments cannot be empty'
,
'9100000'
:
'Departments cannot be empty'
,
'9100001'
:
'Position cannot be empty'
,
'9100001'
:
'Position cannot be empty'
,
...
...
Html/src/locale/lang/zh-CN.js
View file @
31d4ae2f
...
@@ -748,6 +748,9 @@ export default {
...
@@ -748,6 +748,9 @@ export default {
'9000496'
:
'ID重复'
,
'9000496'
:
'ID重复'
,
'9000497'
:
'父级和子级不能相同'
,
'9000497'
:
'父级和子级不能相同'
,
'9000498'
:
'该类型绑定了工装,不能删除'
,
'9000498'
:
'该类型绑定了工装,不能删除'
,
'9000499'
:
'储位层级错误'
,
'9000500'
:
'该类别绑定了储位,不能删除'
,
'9000501'
:
'该仓库绑定了储位,不能删除'
,
'9100000'
:
'部门不能为空'
,
'9100000'
:
'部门不能为空'
,
...
...
Html/src/view/wms/config/storagemaintenance.vue
View file @
31d4ae2f
...
@@ -292,6 +292,27 @@ export default {
...
@@ -292,6 +292,27 @@ export default {
},
},
//添加提交
//添加提交
addPost
(){
addPost
(){
if
(
!
this
.
stid
){
this
.
$Message
.
error
(
"请填写ID"
);
return
false
;
}
if
(
!
this
.
whid1
){
this
.
$Message
.
error
(
"请选择仓库"
);
return
false
;
}
if
(
!
this
.
sTypes
||
this
.
sTypes
.
length
===
0
){
this
.
$Message
.
error
(
"请填写储位层级"
);
return
false
;
}
else
{
for
(
var
i
=
0
;
i
<
this
.
sTypes
.
length
;
i
++
){
if
(
!
this
.
sTypes
[
i
].
val
){
this
.
$Message
.
error
(
"请填写"
+
this
.
sTypes
[
i
].
name
);
return
false
;
}
}
}
let
code
=
0
;
let
code
=
0
;
if
(
!
this
.
stid
){
if
(
!
this
.
stid
){
code
=
1
;
code
=
1
;
...
...
Server/Apis/Siger.ApiACC/Controllers/AutomationLocationController.cs
View file @
31d4ae2f
...
@@ -48,9 +48,16 @@ namespace Siger.ApiACC.Controllers
...
@@ -48,9 +48,16 @@ namespace Siger.ApiACC.Controllers
[
HttpGet
]
[
HttpGet
]
public
IActionResult
GetPageList
(
string
wavehouseid
,
string
locationid
,
int
page
,
int
pagesize
,
string
toexcel
)
public
IActionResult
GetPageList
(
string
wavehouseid
,
string
locationid
,
int
page
,
int
pagesize
,
string
toexcel
)
{
{
var
data
=
_autoLocationRepository
.
GetPagedList
(
wavehouseid
.
ToInt
(),
locationid
.
ToInt
(),
ProjectId
,
page
,
pagesize
,
toexcel
);
var
list
=
new
List
<
ResponseAutomationLocation
>();
var
locations
=
_autoLocationRepository
.
GetLocationList
(
ProjectId
);
var
locations
=
_autoLocationRepository
.
GetLocationList
(
ProjectId
);
var
locationids
=
new
List
<
int
>();
if
(
locationid
.
ToInt
()
>
0
)
{
var
searchLocations
=
GetSonLocations
(
locationid
.
ToInt
(),
locations
);
locationids
=
searchLocations
.
Select
(
q
=>
q
.
id
).
ToList
();
locationids
.
Add
(
locationid
.
ToInt
());
}
var
data
=
_autoLocationRepository
.
GetPagedList
(
wavehouseid
.
ToInt
(),
locationids
,
ProjectId
,
page
,
pagesize
,
toexcel
);
var
list
=
new
List
<
ResponseAutomationLocation
>();
var
categorys
=
_toolsCategoryRepository
.
GetList
(
q
=>
q
.
projectId
==
ProjectId
&&
q
.
status
==
(
int
)
RowState
.
Valid
).
ToList
();
var
categorys
=
_toolsCategoryRepository
.
GetList
(
q
=>
q
.
projectId
==
ProjectId
&&
q
.
status
==
(
int
)
RowState
.
Valid
).
ToList
();
foreach
(
var
item
in
data
.
Data
)
foreach
(
var
item
in
data
.
Data
)
{
{
...
@@ -182,6 +189,13 @@ namespace Siger.ApiACC.Controllers
...
@@ -182,6 +189,13 @@ namespace Siger.ApiACC.Controllers
return
query
.
ToList
().
Concat
(
query
.
ToList
().
SelectMany
(
t
=>
GetParentLocations
(
t
.
parentid
,
types
)));
return
query
.
ToList
().
Concat
(
query
.
ToList
().
SelectMany
(
t
=>
GetParentLocations
(
t
.
parentid
,
types
)));
}
}
private
IEnumerable
<
siger_wms_storage_location
>
GetSonLocations
(
int
id
,
IEnumerable
<
siger_wms_storage_location
>
types
)
{
var
query
=
from
c
in
types
where
c
.
parentid
==
id
select
c
;
return
query
.
ToList
().
Concat
(
query
.
ToList
().
SelectMany
(
t
=>
GetSonLocations
(
t
.
id
,
types
)));
}
[
HttpPost
]
[
HttpPost
]
public
IActionResult
Add
([
FromBody
]
RequestAddAutomationLocation
req
)
public
IActionResult
Add
([
FromBody
]
RequestAddAutomationLocation
req
)
{
{
...
...
Server/Apis/Siger.ApiACC/Controllers/FixtureToolsAssemblyController.cs
View file @
31d4ae2f
...
@@ -69,6 +69,10 @@ namespace Siger.ApiACC.Controllers
...
@@ -69,6 +69,10 @@ namespace Siger.ApiACC.Controllers
var
models
=
new
List
<
ResponseAumationFixtureToolsAssembly
>();
var
models
=
new
List
<
ResponseAumationFixtureToolsAssembly
>();
var
details
=
_toolsAssemblyRepository
.
GetDetailList
(
item
.
fixtureguid
,
category
.
ToInt
(),
code
,
name
,
state
,
ProjectId
);
var
details
=
_toolsAssemblyRepository
.
GetDetailList
(
item
.
fixtureguid
,
category
.
ToInt
(),
code
,
name
,
state
,
ProjectId
);
if
(!
details
.
Any
())
{
details
=
_toolsAssemblyRepository
.
GetDetailList
(
item
.
fixtureguid
,
0
,
""
,
""
,
""
,
ProjectId
);
//这里是为了符合测试的逻辑,当父级找到,子级找不到时,也把子级全部显示出来
}
foreach
(
var
model
in
details
)
foreach
(
var
model
in
details
)
{
{
var
cates1
=
GetParentCategoryList
(
model
.
cate_guid
,
categorys
);
var
cates1
=
GetParentCategoryList
(
model
.
cate_guid
,
categorys
);
...
...
Server/Apis/Siger.ApiWMS/Controllers/LocationController.cs
View file @
31d4ae2f
...
@@ -21,6 +21,7 @@ using Siger.Middlelayer.WmsRepository.Repositories.Interface;
...
@@ -21,6 +21,7 @@ using Siger.Middlelayer.WmsRepository.Repositories.Interface;
using
Siger.Middlelayer.WmsRepository.Request
;
using
Siger.Middlelayer.WmsRepository.Request
;
using
Siger.Middlelayer.WmsRepository.Response
;
using
Siger.Middlelayer.WmsRepository.Response
;
using
Siger.Middlelayer.Common.Extensions
;
using
Siger.Middlelayer.Common.Extensions
;
using
Siger.Middlelayer.Log
;
namespace
Siger.ApiWMS.Controllers
namespace
Siger.ApiWMS.Controllers
{
{
...
@@ -237,6 +238,10 @@ namespace Siger.ApiWMS.Controllers
...
@@ -237,6 +238,10 @@ namespace Siger.ApiWMS.Controllers
throw
new
BadRequestException
(
CommonEnum
.
LayerNotClean
);
throw
new
BadRequestException
(
CommonEnum
.
LayerNotClean
);
}
}
//存在此列表记录
//存在此列表记录
if
(
location
.
GetList
(
q
=>
q
.
projectid
==
ProjectId
&&
q
.
status
==
(
int
)
RowState
.
Valid
&&
q
.
typeid
==
req
.
id
).
Any
())
{
throw
new
BadRequestException
(
RequestEnum
.
CategoryBindLocationData
);
}
entity
.
status
=
(
int
)
RowState
.
Invalid
;
entity
.
status
=
(
int
)
RowState
.
Invalid
;
entity
.
update_time
=
DateTime
.
Now
;
entity
.
update_time
=
DateTime
.
Now
;
...
@@ -396,7 +401,7 @@ namespace Siger.ApiWMS.Controllers
...
@@ -396,7 +401,7 @@ namespace Siger.ApiWMS.Controllers
locationData
=
locationAllData
.
Where
(
f
=>
typeids
.
Contains
(
f
.
typeid
)).
Skip
((
page
-
1
)
*
pageSize
).
Take
(
pageSize
).
ToList
();
locationData
=
locationAllData
.
Where
(
f
=>
typeids
.
Contains
(
f
.
typeid
)).
Skip
((
page
-
1
)
*
pageSize
).
Take
(
pageSize
).
ToList
();
}
}
Dictionary
<
int
,
string
>
waveHouseDic
=
new
Dictionary
<
int
,
string
>();
Dictionary
<
int
,
string
>
waveHouseDic
=
new
Dictionary
<
int
,
string
>();
storage
.
GetList
(
f
=>
f
.
status
==
(
int
)
RowState
.
Valid
&&
f
.
projectid
==
ProjectId
).
Select
(
f
=>
new
{
f
.
id
,
f
.
name
}).
ToList
().
ForEach
(
f
=>
storage
.
GetList
(
f
=>
f
.
projectid
==
ProjectId
).
Select
(
f
=>
new
{
f
.
id
,
f
.
name
}).
ToList
().
ForEach
(
f
=>
{
{
waveHouseDic
.
Add
(
f
.
id
,
f
.
name
);
waveHouseDic
.
Add
(
f
.
id
,
f
.
name
);
});
});
...
@@ -413,7 +418,7 @@ namespace Siger.ApiWMS.Controllers
...
@@ -413,7 +418,7 @@ namespace Siger.ApiWMS.Controllers
{
{
id
=
item
.
id
,
id
=
item
.
id
,
pid
=
item
.
parentid
,
pid
=
item
.
parentid
,
storageName
=
waveHouseDic
[
item
.
storageid
]
,
storageName
=
waveHouseDic
.
ContainsKey
(
item
.
storageid
)
?
waveHouseDic
[
item
.
storageid
]
:
""
,
serialNumber
=
item
.
serial_number
,
serialNumber
=
item
.
serial_number
,
state
=
item
.
status
,
state
=
item
.
status
,
field
=
new
List
<
FiledName
>(),
field
=
new
List
<
FiledName
>(),
...
@@ -458,8 +463,9 @@ namespace Siger.ApiWMS.Controllers
...
@@ -458,8 +463,9 @@ namespace Siger.ApiWMS.Controllers
}
}
result
.
Add
(
tmp
);
result
.
Add
(
tmp
);
}
}
catch
(
Exception
)
catch
(
Exception
e
)
{
{
Logger
.
WriteLineError
(
e
.
Message
);
}
}
}
}
...
@@ -927,6 +933,20 @@ namespace Siger.ApiWMS.Controllers
...
@@ -927,6 +933,20 @@ namespace Siger.ApiWMS.Controllers
throw
new
BadRequestException
(
RequestEnum
.
LocationTypeNotFound
);
throw
new
BadRequestException
(
RequestEnum
.
LocationTypeNotFound
);
}
}
var
sonLocationTypes
=
GetSonTypes
(
0
,
locationTypes
).
ToList
();
var
sonLocationTypes
=
GetSonTypes
(
0
,
locationTypes
).
ToList
();
if
(
req
.
storeArr
.
Count
!=
sonLocationTypes
.
Count
)
{
throw
new
BadRequestException
(
RequestEnum
.
LocationLevelError
);
}
foreach
(
var
store
in
req
.
storeArr
)
{
if
(
string
.
IsNullOrEmpty
(
store
.
val
))
{
throw
new
BadRequestException
(
RequestEnum
.
ParameterMiss
);
}
}
var
locationTypeId
=
sonLocationTypes
.
LastOrDefault
()?.
id
??
0
;
var
locationTypeId
=
sonLocationTypes
.
LastOrDefault
()?.
id
??
0
;
var
waveHouse
=
storage
.
Get
(
q
=>
q
.
projectid
==
ProjectId
&&
q
.
status
==
(
int
)
RowState
.
Valid
&&
q
.
id
==
req
.
warehouseid
);
var
waveHouse
=
storage
.
Get
(
q
=>
q
.
projectid
==
ProjectId
&&
q
.
status
==
(
int
)
RowState
.
Valid
&&
q
.
id
==
req
.
warehouseid
);
if
(
waveHouse
==
null
)
if
(
waveHouse
==
null
)
...
@@ -1060,6 +1080,20 @@ namespace Siger.ApiWMS.Controllers
...
@@ -1060,6 +1080,20 @@ namespace Siger.ApiWMS.Controllers
throw
new
BadRequestException
(
RequestEnum
.
LocationTypeNotFound
);
throw
new
BadRequestException
(
RequestEnum
.
LocationTypeNotFound
);
}
}
var
sonLocationTypes
=
GetSonTypes
(
0
,
locationTypes
).
ToList
();
var
sonLocationTypes
=
GetSonTypes
(
0
,
locationTypes
).
ToList
();
if
(
req
.
storeArr
.
Count
!=
sonLocationTypes
.
Count
)
{
throw
new
BadRequestException
(
RequestEnum
.
LocationLevelError
);
}
foreach
(
var
store
in
req
.
storeArr
)
{
if
(
string
.
IsNullOrEmpty
(
store
.
val
))
{
throw
new
BadRequestException
(
RequestEnum
.
ParameterMiss
);
}
}
var
locationTypeId
=
sonLocationTypes
.
LastOrDefault
()?.
id
??
0
;
var
locationTypeId
=
sonLocationTypes
.
LastOrDefault
()?.
id
??
0
;
var
waveHouse
=
storage
.
Get
(
q
=>
q
.
projectid
==
ProjectId
&&
q
.
status
==
(
int
)
RowState
.
Valid
&&
q
.
id
==
req
.
warehouseid
);
var
waveHouse
=
storage
.
Get
(
q
=>
q
.
projectid
==
ProjectId
&&
q
.
status
==
(
int
)
RowState
.
Valid
&&
q
.
id
==
req
.
warehouseid
);
if
(
waveHouse
==
null
)
if
(
waveHouse
==
null
)
...
...
Server/Apis/Siger.ApiWMS/Controllers/WaveHouseController.cs
View file @
31d4ae2f
...
@@ -188,6 +188,11 @@ namespace Siger.ApiWMS.Controllers
...
@@ -188,6 +188,11 @@ namespace Siger.ApiWMS.Controllers
if
(
entity
==
null
)
if
(
entity
==
null
)
throw
new
BadRequestException
(
CommonEnum
.
NoData
);
throw
new
BadRequestException
(
CommonEnum
.
NoData
);
if
(
location
.
GetList
(
q
=>
q
.
projectid
==
ProjectId
&&
q
.
status
==
(
int
)
RowState
.
Valid
&&
q
.
storageid
==
req
.
id
).
Any
())
{
throw
new
BadRequestException
(
RequestEnum
.
WavehouseBindLocationData
);
}
entity
.
status
=
(
int
)
RowState
.
Valid
;
entity
.
status
=
(
int
)
RowState
.
Valid
;
storage
.
Update
(
entity
);
storage
.
Update
(
entity
);
if
(
_unitOfWork
.
Commit
()
>
0
)
if
(
_unitOfWork
.
Commit
()
>
0
)
...
...
Server/Common/Siger.Middlelayer.Share/Enum/RequestEnum.cs
View file @
31d4ae2f
...
@@ -1479,5 +1479,14 @@ namespace Siger.Middlelayer.Common
...
@@ -1479,5 +1479,14 @@ namespace Siger.Middlelayer.Common
[
Description
(
"该类型绑定了工装,不能删除"
)]
[
Description
(
"该类型绑定了工装,不能删除"
)]
CategoryBindFixtureToolData
,
CategoryBindFixtureToolData
,
[
Description
(
"储位层级错误"
)]
LocationLevelError
,
[
Description
(
"该类别绑定了储位,不能删除"
)]
CategoryBindLocationData
,
[
Description
(
"该仓库绑定了储位,不能删除"
)]
WavehouseBindLocationData
,
}
}
}
}
Server/Infrastructure/Repositories/Siger.Middlelayer.AccRepository/Repositories/AutomationLocationRepository.cs
View file @
31d4ae2f
...
@@ -24,7 +24,7 @@ namespace Siger.Middlelayer.AccRepository.Repositories
...
@@ -24,7 +24,7 @@ namespace Siger.Middlelayer.AccRepository.Repositories
_context
=
context
;
_context
=
context
;
}
}
public
IPagedCollectionResult
<
ResponseAutomationLocation
>
GetPagedList
(
int
wavehouseid
,
int
locationid
,
int
projectid
,
int
page
,
int
pagesize
,
string
toexcel
)
public
IPagedCollectionResult
<
ResponseAutomationLocation
>
GetPagedList
(
int
wavehouseid
,
IEnumerable
<
int
>
locationid
,
int
projectid
,
int
page
,
int
pagesize
,
string
toexcel
)
{
{
var
query
=
from
q
in
_context
.
siger_automation_location
var
query
=
from
q
in
_context
.
siger_automation_location
join
t
in
_context
.
siger_automation_fixture_tools
on
q
.
fixturetools
equals
t
.
guid
join
t
in
_context
.
siger_automation_fixture_tools
on
q
.
fixturetools
equals
t
.
guid
...
@@ -67,9 +67,9 @@ namespace Siger.Middlelayer.AccRepository.Repositories
...
@@ -67,9 +67,9 @@ namespace Siger.Middlelayer.AccRepository.Repositories
wavehouseidExpression
=
q
=>
q
.
wavehouseid
==
wavehouseid
;
wavehouseidExpression
=
q
=>
q
.
wavehouseid
==
wavehouseid
;
}
}
Expression
<
Func
<
ResponseAutomationLocation
,
bool
>>
locationidExpression
=
f
=>
true
;
Expression
<
Func
<
ResponseAutomationLocation
,
bool
>>
locationidExpression
=
f
=>
true
;
if
(
locationid
>
0
)
if
(
locationid
.
Any
()
)
{
{
locationidExpression
=
q
=>
q
.
locationid
==
locationid
;
locationidExpression
=
q
=>
locationid
.
Contains
(
q
.
locationid
)
;
}
}
var
expression
=
wavehouseidExpression
.
And
(
locationidExpression
);
var
expression
=
wavehouseidExpression
.
And
(
locationidExpression
);
if
(
toexcel
.
ToInt
()
==
1
)
if
(
toexcel
.
ToInt
()
==
1
)
...
...
Server/Infrastructure/Repositories/Siger.Middlelayer.AccRepository/Repositories/Interface/IAutomationLocationRepository.cs
View file @
31d4ae2f
...
@@ -9,7 +9,7 @@ namespace Siger.Middlelayer.AccRepository.Repositories.Interface
...
@@ -9,7 +9,7 @@ namespace Siger.Middlelayer.AccRepository.Repositories.Interface
{
{
public
interface
IAutomationLocationRepository
:
IAccRepositoryBase
<
siger_automation_location
>
public
interface
IAutomationLocationRepository
:
IAccRepositoryBase
<
siger_automation_location
>
{
{
IPagedCollectionResult
<
ResponseAutomationLocation
>
GetPagedList
(
int
wavehouseid
,
int
locationid
,
int
projectid
,
int
page
,
int
pagesize
,
string
toexcel
);
IPagedCollectionResult
<
ResponseAutomationLocation
>
GetPagedList
(
int
wavehouseid
,
IEnumerable
<
int
>
locationid
,
int
projectid
,
int
page
,
int
pagesize
,
string
toexcel
);
siger_wms_storage_location
GetLocation
(
int
id
,
int
projectid
);
siger_wms_storage_location
GetLocation
(
int
id
,
int
projectid
);
...
...
Server/Infrastructure/Repositories/Siger.Middlelayer.CncRepository/Request/RequestAddBeatAllocation.cs
View file @
31d4ae2f
...
@@ -32,10 +32,8 @@ namespace Siger.Middlelayer.CncRepository.Request
...
@@ -32,10 +32,8 @@ namespace Siger.Middlelayer.CncRepository.Request
public
int
yieldratio
{
get
;
set
;
}
public
int
yieldratio
{
get
;
set
;
}
[
Required
(
ErrorMessage
=
"StartTimeNotNull"
)]
public
string
start_time
{
get
;
set
;
}
public
string
start_time
{
get
;
set
;
}
[
Required
(
ErrorMessage
=
"EndTimeNotNull"
)]
public
string
end_time
{
get
;
set
;
}
public
string
end_time
{
get
;
set
;
}
}
}
...
@@ -63,10 +61,8 @@ namespace Siger.Middlelayer.CncRepository.Request
...
@@ -63,10 +61,8 @@ namespace Siger.Middlelayer.CncRepository.Request
public
int
yieldratio
{
get
;
set
;
}
public
int
yieldratio
{
get
;
set
;
}
[
Required
(
ErrorMessage
=
"StartTimeNotNull"
)]
public
string
start_time
{
get
;
set
;
}
public
string
start_time
{
get
;
set
;
}
[
Required
(
ErrorMessage
=
"EndTimeNotNull"
)]
public
string
end_time
{
get
;
set
;
}
public
string
end_time
{
get
;
set
;
}
}
}
}
}
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