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
b5cdac1d
Commit
b5cdac1d
authored
Jan 22, 2021
by
xin.yang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
some update
parent
81afe7d9
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
23 changed files
with
137 additions
and
935 deletions
+137
-935
ManualCollectionController.cs
...is/Siger.ApiQMS/Controllers/ManualCollectionController.cs
+0
-0
SendTestCollectionController.cs
.../Siger.ApiQMS/Controllers/SendTestCollectionController.cs
+7
-66
SensorDataCollectionController.cs
...iger.ApiQMS/Controllers/SensorDataCollectionController.cs
+0
-0
StatisticalController.cs
...er/Apis/Siger.ApiQMS/Controllers/StatisticalController.cs
+6
-9
AbnomalRuleData.cs
Server/Apis/Siger.ApiQMS/Result/AbnomalRuleData.cs
+2
-2
QmsCreateTraceTableSchedule.cs
...er/Apis/Siger.ApiQMS/Tasks/QmsCreateTraceTableSchedule.cs
+0
-152
QmsDataMigrationJob.cs
Server/Apis/Siger.ApiQMS/Tasks/QmsDataMigrationJob.cs
+0
-172
AbnormalCheckHelper.cs
Server/Apis/Siger.ApiQMS/Utility/AbnormalCheckHelper.cs
+2
-6
SpcAnalysisUtility.cs
Server/Apis/Siger.ApiQMS/Utility/SpcAnalysisUtility.cs
+1
-1
siger_check_sn_trace_detail.cs
...yer.QmsRepository/Entities/siger_check_sn_trace_detail.cs
+1
-1
siger_check_sn_trace_inspection.cs
...QmsRepository/Entities/siger_check_sn_trace_inspection.cs
+1
-1
CheckSnTraceDetailRepository.cs
...msRepository/Repositories/CheckSnTraceDetailRepository.cs
+53
-2
ICheckSnTraceDetailRepository.cs
...y/Repositories/Interface/ICheckSnTraceDetailRepository.cs
+4
-2
RequestDataCollection.cs
...iddlelayer.QmsRepository/Request/RequestDataCollection.cs
+1
-1
ResponseDataCollection.cs
...dlelayer.QmsRepository/Response/ResponseDataCollection.cs
+58
-1
ResponseSendTestCollection.cs
...ayer.QmsRepository/Response/ResponseSendTestCollection.cs
+1
-1
TabelNameConstant.cs
...ddlelayer.Dapper/CheckTrace/Constant/TabelNameConstant.cs
+0
-17
SnTrace.cs
...cture/Siger.Middlelayer.Dapper/CheckTrace/Data/SnTrace.cs
+0
-61
SubTable.cs
...ture/Siger.Middlelayer.Dapper/CheckTrace/Data/SubTable.cs
+0
-25
TraceDataRepository.cs
...er.Dapper/CheckTrace/Repostriories/TraceDataRepository.cs
+0
-94
TraceDetailRepository.cs
....Dapper/CheckTrace/Repostriories/TraceDetailRepository.cs
+0
-0
TraceDetailTableRepository.cs
...er/CheckTrace/Repostriories/TraceDetailTableRepository.cs
+0
-165
TraceDbContext.cs
...ure/Siger.Middlelayer.Dapper/CheckTrace/TraceDbContext.cs
+0
-156
No files found.
Server/Apis/Siger.ApiQMS/Controllers/ManualCollectionController.cs
View file @
b5cdac1d
This diff is collapsed.
Click to expand it.
Server/Apis/Siger.ApiQMS/Controllers/SendTestCollectionController.cs
View file @
b5cdac1d
...
...
@@ -20,8 +20,6 @@ using Siger.Middlelayer.Repository.Repositories.Interface;
using
Siger.Middlelayer.Repository.Response
;
using
Siger.Middlelayer.Utility.Helpers
;
using
Siger.Middlelayer.Utility.ImportEntities
;
using
Siger.Middlelayer.Dapper.CheckTrace.Repostriories
;
using
Siger.Middlelayer.Dapper.CheckTrace.Data
;
using
Siger.ApiQMS.Utility
;
using
UploadFileModel
=
Siger
.
Middlelayer
.
QmsRepository
.
Response
.
UploadFileModel
;
using
Siger.Middlelayer.Repository.Entities
;
...
...
@@ -377,7 +375,7 @@ namespace Siger.ApiQMS.Controllers
}
insertDetailList
.
Add
(
new
SnTraceDetailList
{
TraceID
=
0
,
TraceID
=
""
,
ItemID
=
detail
.
itemid
,
Result
=
detail
.
result
,
Value
=
detail
.
value
,
...
...
@@ -417,7 +415,7 @@ namespace Siger.ApiQMS.Controllers
}
insertDetailList
.
Add
(
new
SnTraceDetailList
{
TraceID
=
0
,
TraceID
=
""
,
ItemID
=
detail
.
itemid
,
Result
=
detailResult
,
Value
=
detail
.
value
,
...
...
@@ -430,13 +428,7 @@ namespace Siger.ApiQMS.Controllers
}
}
}
var
_traceRepostory
=
new
TraceDetailRepository
(
CompanyId
,
ProjectId
);
var
resDetails
=
new
List
<
SnTraceDetailList
>();
var
traceId
=
_traceRepostory
.
InsertTraceDetailReturnTraceIdNumberIndex
(
trace
,
insertDetailList
,
ProjectId
,
out
resDetails
);
if
(
traceId
<=
0
)
{
throw
new
BadRequestException
(
CommonEnum
.
Fail
);
}
var
traceId
=
Guid
.
NewGuid
().
ToString
();
var
nowTime
=
DateTime
.
Now
;
var
machineIds
=
_machineAttributionRepository
.
GetList
(
t
=>
t
.
projectid
==
ProjectId
&&
t
.
station
==
sendTest
.
sectionid
&&
t
.
status
==
(
int
)
RowState
.
Valid
&&
t
.
attribution
==
(
int
)
MachineAttributionEnum
.
equipment
).
Select
(
t
=>
t
.
machine
).
ToList
();
...
...
@@ -853,11 +845,6 @@ namespace Siger.ApiQMS.Controllers
}
if
(
_unitOfWork
.
Commit
()
>
0
)
{
if
(
data
.
trace_id
>
0
)
{
var
_traceRepostory
=
new
TraceDetailRepository
(
CompanyId
,
ProjectId
);
_traceRepostory
.
DeleteData
(
data
.
trace_id
);
}
return
new
ObjectResult
(
CommonEnum
.
Succefull
);
}
else
...
...
@@ -921,24 +908,6 @@ namespace Siger.ApiQMS.Controllers
var
delTraceDetails
=
_traceDetailRepository
.
GetList
(
t
=>
t
.
projectid
==
ProjectId
&&
t
.
status
==
(
int
)
RowState
.
Valid
&&
t
.
TraceID
==
sendTest
.
trace_id
).
ToList
();
var
_traceRepostory
=
new
TraceDetailRepository
(
CompanyId
,
ProjectId
);
var
snTrace
=
_traceRepostory
.
GetSnTrace
(
sendTest
.
trace_id
,
ProjectId
);
var
trace
=
new
SnTrace
{
MaterialID
=
sendTest
.
materialid
,
ProductID
=
sendTest
.
productid
,
SectionID
=
sendTest
.
sectionid
,
MachineID
=
machine
?.
id
??
0
,
WorkOrder
=
""
,
SN
=
sendTest
.
sn
??
""
,
Result
=
(
result
==
(
int
)
SendTestType
.
Qalified
||
result
==
(
int
)
SendTestType
.
DeviationRelease
)
?
"OK"
:
"NG"
,
UserID
=
snTrace
==
null
?
sendTest
.
check_mid
:
snTrace
.
UserID
,
RouteID
=
sendTest
.
routeid
,
CreateTime
=
snTrace
==
null
?
((
sendTest
.
check_time
.
HasValue
&&
sendTest
.
check_time
!=
DateTime
.
MinValue
)
?
sendTest
.
check_time
.
Value
:
DateTime
.
Now
)
:
snTrace
.
CreateTime
,
CheckType
=
sendTest
.
check_type
};
var
insertDetailList
=
new
List
<
SnTraceDetailList
>();
foreach
(
var
index
in
indexs
)
{
...
...
@@ -958,7 +927,7 @@ namespace Siger.ApiQMS.Controllers
}
insertDetailList
.
Add
(
new
SnTraceDetailList
{
TraceID
=
0
,
TraceID
=
""
,
ItemID
=
detail
.
itemid
,
Result
=
detail
.
result
,
Value
=
detail
.
value
,
...
...
@@ -998,7 +967,7 @@ namespace Siger.ApiQMS.Controllers
}
insertDetailList
.
Add
(
new
SnTraceDetailList
{
TraceID
=
0
,
TraceID
=
""
,
ItemID
=
detail
.
itemid
,
Result
=
detailResult
,
Value
=
detail
.
value
,
...
...
@@ -1012,30 +981,7 @@ namespace Siger.ApiQMS.Controllers
}
}
// 删除旧数据
if
(
sendTest
.
trace_id
>
0
)
{
_traceRepostory
.
DeleteDetail
(
sendTest
.
trace_id
);
}
long
traceId
=
0
;
var
resDetails
=
new
List
<
SnTraceDetailList
>();
if
(
snTrace
==
null
)
//如果没有这条数据,则插入trace,trace_detail,如果有直插入trace_detail
{
traceId
=
_traceRepostory
.
InsertTraceDetailReturnTraceIdNumberIndex
(
trace
,
insertDetailList
,
ProjectId
,
out
resDetails
);
}
else
{
if
(
_traceRepostory
.
InsertTraceOnlyDetailsReturnNumerIndex
(
snTrace
,
insertDetailList
,
ProjectId
,
trace
.
Result
,
out
resDetails
))
{
traceId
=
snTrace
.
ID
;
}
}
if
(
traceId
<=
0
)
{
throw
new
BadRequestException
(
CommonEnum
.
Fail
);
}
var
traceId
=
Guid
.
NewGuid
().
ToString
();
sendTest
.
result
=
req
.
result
??
""
;
sendTest
.
trace_id
=
traceId
;
sendTest
.
number
=
req
.
number
.
ToInt
();
...
...
@@ -1076,7 +1022,7 @@ namespace Siger.ApiQMS.Controllers
LowerLimit
=
detail
.
LowerLimit
,
UpperLimit
=
detail
.
UpperLimit
,
projectid
=
ProjectId
,
CreateTime
=
trace
.
CreateTime
CreateTime
=
sendTest
.
checking_time
.
HasValue
?
sendTest
.
checking_time
.
Value
:
DateTime
.
Now
};
_traceDetailRepository
.
Insert
(
model
);
}
...
...
@@ -1086,11 +1032,6 @@ namespace Siger.ApiQMS.Controllers
throw
new
BadRequestException
(
CommonEnum
.
Fail
);
}
if
(
snTrace
==
null
)
//如果时新插入的数据,添加SN
{
AddSnList
(
sendTest
,
trace
);
}
return
new
ObjectResult
(
CommonEnum
.
Succefull
);
}
...
...
Server/Apis/Siger.ApiQMS/Controllers/SensorDataCollectionController.cs
deleted
100644 → 0
View file @
81afe7d9
This diff is collapsed.
Click to expand it.
Server/Apis/Siger.ApiQMS/Controllers/StatisticalController.cs
View file @
b5cdac1d
...
...
@@ -12,7 +12,6 @@ using Siger.Middlelayer.QmsRepository.Request;
using
Siger.Middlelayer.QmsRepository.Response
;
using
Siger.Middlelayer.Repository.Repositories.Interface
;
using
Siger.Middlelayer.Repository.Entities
;
using
Siger.Middlelayer.Dapper.CheckTrace.Repostriories
;
using
Siger.Middlelayer.Repository.Response
;
using
Siger.Middlelayer.QmsRepository.Entities
;
using
Siger.Middlelayer.Utility.Helpers
;
...
...
@@ -80,7 +79,6 @@ namespace Siger.ApiQMS.Controllers
}
var
maxLevel
=
_levelRepository
.
GetList
(
t
=>
t
.
projectid
==
ProjectId
&&
t
.
status
==
(
int
)
RowState
.
Valid
)
.
OrderByDescending
(
t
=>
t
.
id
).
FirstOrDefault
();
var
_traceRepostory
=
new
TraceDetailRepository
(
CompanyId
,
ProjectId
);
if
(
req
.
x_id
.
ToInt
()
==
0
)
{
var
sectionIds
=
new
List
<
int
>();
...
...
@@ -94,10 +92,9 @@ namespace Siger.ApiQMS.Controllers
sections
=
levelSections
.
Where
(
t
=>
t
.
parentid
==
req
.
sectionid
.
ToInt
()).
ToList
();
sectionIds
=
ChannelSectionHelper
.
GetSonLevelSectionList
(
req
.
sectionid
.
ToInt
(),
levelSections
).
Select
(
m
=>
m
.
id
).
ToList
();
}
var
datas
=
_traceRepostory
.
GetSnTracePageList
(
sectionIds
,
req
.
productid
.
ToInt
()
,
req
.
materialid
.
ToInt
(),
0
,
req
.
checktype
.
ToInt
(),
""
,
""
,
new
List
<
long
>(),
req
.
starttime
,
req
.
endtime
,
1
,
10
,
ProjectId
,
"1"
,
0
).
ToList
();
var
datas
=
_traceDetailRepository
.
GetSnTraceList
(
sectionIds
,
req
.
productid
.
ToInt
()
,
req
.
materialid
.
ToInt
(),
req
.
checktype
.
ToInt
(),
req
.
starttime
,
req
.
endtime
,
ProjectId
).
ToList
();
foreach
(
var
sec
in
sections
)
{
var
lastSections
=
ChannelSectionHelper
.
GetSonLevelSections
(
sec
,
levelSections
)
...
...
@@ -120,8 +117,8 @@ namespace Siger.ApiQMS.Controllers
var
lastSections
=
section
==
null
?
levelSections
.
Where
(
t
=>
t
.
levelid
==
maxLevel
.
id
).
ToList
()
:
ChannelSectionHelper
.
GetSonLevelSections
(
section
,
levelSections
).
Where
(
t
=>
t
.
levelid
==
maxLevel
.
id
).
ToList
();
var
lastSectionIds
=
lastSections
.
Select
(
t
=>
t
.
id
).
ToList
();
var
data
=
_trace
Repostory
.
GetSnTracePageList
(
lastSectionIds
,
product
?.
id
??
0
,
req
.
materialid
.
ToInt
(),
0
,
req
.
checktype
.
ToInt
(),
""
,
""
,
new
List
<
long
>(),
req
.
starttime
,
req
.
endtime
,
1
,
10
,
ProjectId
,
"1"
,
0
).
Where
(
t
=>
t
.
RouteID
>
0
).
ToList
();
var
data
=
_trace
DetailRepository
.
GetSnTraceList
(
lastSectionIds
,
product
?.
id
??
0
,
req
.
materialid
.
ToInt
()
,
req
.
checktype
.
ToInt
(),
req
.
starttime
,
req
.
endtime
,
ProjectId
).
Where
(
t
=>
t
.
RouteID
>
0
).
ToList
();
var
routeIds
=
data
.
Select
(
t
=>
t
.
RouteID
).
ToList
();
var
routes
=
_routeRepository
.
GetList
(
t
=>
t
.
projectId
==
ProjectId
&&
t
.
status
==
(
int
)
RowState
.
Valid
&&
routeIds
.
Contains
(
t
.
id
)).
ToList
();
...
...
@@ -284,7 +281,7 @@ namespace Siger.ApiQMS.Controllers
}
var
etime
=
req
.
endtime
.
ToDateTime
();
var
stime
=
req
.
starttime
.
ToDateTime
();
var
traceIds
=
new
List
<
lo
ng
>();
var
traceIds
=
new
List
<
stri
ng
>();
if
(
req
.
itemid
.
ToInt
()
>
0
)
{
var
item
=
_inspectStandardRepository
.
Get
(
t
=>
t
.
id
==
req
.
itemid
.
ToInt
()
&&
t
.
projectid
==
ProjectId
&&
...
...
Server/Apis/Siger.ApiQMS/Result/AbnomalRuleData.cs
View file @
b5cdac1d
...
...
@@ -11,7 +11,7 @@ namespace Siger.ApiQMS.Result
public
double
LCL
{
get
;
set
;
}
public
lo
ng
traceID
{
get
;
set
;
}
public
stri
ng
traceID
{
get
;
set
;
}
public
List
<
long
>
traceDetailID
{
get
;
set
;
}
=
new
List
<
long
>();
...
...
@@ -27,7 +27,7 @@ namespace Siger.ApiQMS.Result
public
double
UCL
{
get
;
set
;
}
public
double
LCL
{
get
;
set
;
}
public
lo
ng
traceID
{
get
;
set
;
}
public
stri
ng
traceID
{
get
;
set
;
}
public
string
value
{
get
;
set
;
}
public
int
rule1
{
get
;
set
;
}
public
int
rule2
{
get
;
set
;
}
...
...
Server/Apis/Siger.ApiQMS/Tasks/QmsCreateTraceTableSchedule.cs
deleted
100644 → 0
View file @
81afe7d9
using
FluentScheduler
;
using
Siger.Middlelayer.Common
;
using
Siger.Middlelayer.Common.Extensions
;
using
Siger.Middlelayer.Common.Helpers
;
using
Siger.Middlelayer.Dapper.CheckTrace.Constant
;
using
Siger.Middlelayer.Dapper.CheckTrace.Data
;
using
Siger.Middlelayer.Dapper.CheckTrace.Repostriories
;
using
Siger.Middlelayer.Log
;
using
Siger.Middlelayer.QmsRepository
;
using
Siger.Middlelayer.Redis
;
using
Siger.Middlelayer.Repository
;
using
System
;
using
System.Linq
;
namespace
Siger.ApiQMS.Tasks
{
public
class
QmsCreateTraceTablJob
:
IJob
{
private
static
ApiQmsDbContext
_context
;
private
static
ApiConfigDbContext
_configContext
;
static
QmsCreateTraceTablJob
()
{
_context
=
new
ApiQmsDbContext
();
_configContext
=
new
ApiConfigDbContext
();
}
public
void
Execute
()
{
if
(
DateTime
.
Now
.
Day
!=
1
)
{
return
;
}
_context
=
new
ApiQmsDbContext
();
_configContext
=
new
ApiConfigDbContext
();
try
{
var
dbConfigs
=
RedisCache
.
Instance
.
GetDbNameConfigs
();
foreach
(
var
item
in
dbConfigs
)
{
try
{
if
(
item
.
Cid
>
0
&&
item
.
Pid
>
0
)
{
CreateTraceTable
(
item
.
Pid
,
item
.
Cid
);
}
}
catch
(
Exception
e
)
{
Logger
.
WriteLineError
(
e
.
Message
);
}
}
_context
.
Dispose
();
_configContext
.
Dispose
();
}
catch
(
Exception
ex
)
{
_context
.
Dispose
();
_configContext
.
Dispose
();
Logger
.
WriteLineError
(
ex
.
Message
);
}
}
private
void
CreateTraceTable
(
int
pid
,
int
cid
)
{
var
projectInfo
=
_configContext
.
siger_project
.
FirstOrDefault
(
q
=>
q
.
id
==
pid
);
if
(
projectInfo
==
null
)
{
return
;
}
var
_traceRepostory
=
new
TraceDetailTableRepository
(
cid
,
pid
);
var
traceIsExsit
=
_traceRepostory
.
TableIsExsit
(
TabelNameConstant
.
SnTraceTable
,
$"
{
cid
}
_
{
pid
}
"
);
if
(!
traceIsExsit
)
{
_traceRepostory
.
CreateTable
(
TabelNameConstant
.
SnTraceTable
,
TabelNameConstant
.
SnTraceTable
,
1
);
}
var
subTableIsExsit
=
_traceRepostory
.
TableIsExsit
(
TabelNameConstant
.
SubTableTable
,
$"
{
cid
}
_
{
pid
}
"
);
if
(!
subTableIsExsit
)
{
_traceRepostory
.
CreateTable
(
TabelNameConstant
.
SubTableTable
,
TabelNameConstant
.
SubTableTable
,
1
);
}
var
now
=
DateTime
.
Now
.
ToString
(
ParameterConstant
.
MouthFirstDay
).
ToDateTime
();
var
startTime
=
"2020-03-01 00:00:00"
.
ToDateTime
();
var
projectStartTime
=
UnixTimeHelper
.
ConvertIntDate
(
projectInfo
.
createtime
).
ToDateTime
().
ToString
(
ParameterConstant
.
MouthFirstDay
).
ToDateTime
();
startTime
=
startTime
>
projectStartTime
?
startTime
:
projectStartTime
;
for
(
var
time
=
startTime
;
time
<=
now
;
time
=
time
.
AddMonths
(
1
))
{
var
detailTableName
=
$"
{
TabelNameConstant
.
SnTraceDetailTable
}
_
{
time
.
Year
}{
time
.
Month
.
ToString
(
"00"
)}
"
;
var
detailIsExsit
=
_traceRepostory
.
TableIsExsit
(
detailTableName
,
$"
{
cid
}
_
{
pid
}
"
);
if
(
detailIsExsit
)
{
var
detailTable
=
_traceRepostory
.
GetSubTableInfo
(
detailTableName
,
TabelNameConstant
.
SnTraceDetailTable
);
if
(
detailTable
==
null
)
{
var
minid
=
_traceRepostory
.
GetTableMinID
(
detailTableName
);
var
maxid
=
_traceRepostory
.
GetTableMaxID
(
detailTableName
);
_traceRepostory
.
InsertSubTable
(
new
SubTable
{
name
=
detailTableName
,
tablename
=
TabelNameConstant
.
SnTraceDetailTable
,
startid
=
minid
,
endid
=
maxid
,
validtime
=
time
.
AddMonths
(-
1
),
createtime
=
DateTime
.
Now
,
status
=
(
int
)
RowState
.
Valid
});
}
continue
;
}
var
startid
=
1L
;
if
(
time
>
startTime
)
{
var
lastDetailTableName
=
$"
{
TabelNameConstant
.
SnTraceDetailTable
}
_
{
time
.
AddMonths
(-
1
).
Year
}{
time
.
AddMonths
(-
1
).
Month
.
ToString
(
"00"
)}
"
;
var
lastDetailTable
=
_traceRepostory
.
GetSubTableInfo
(
lastDetailTableName
,
TabelNameConstant
.
SnTraceDetailTable
);
if
(
lastDetailTable
==
null
)
{
var
minid
=
_traceRepostory
.
GetTableMinID
(
lastDetailTableName
);
var
maxid
=
_traceRepostory
.
GetTableMaxID
(
lastDetailTableName
);
_traceRepostory
.
InsertSubTable
(
new
SubTable
{
name
=
lastDetailTableName
,
tablename
=
TabelNameConstant
.
SnTraceDetailTable
,
startid
=
minid
,
endid
=
maxid
,
validtime
=
time
.
AddMonths
(-
1
),
createtime
=
DateTime
.
Now
,
status
=
(
int
)
RowState
.
Valid
});
}
else
{
var
maxId
=
_traceRepostory
.
GetTableMaxID
(
lastDetailTableName
);
startid
=
maxId
+
1
;
_traceRepostory
.
UpdateSubTableEndId
(
lastDetailTable
.
id
,
maxId
);
}
}
_traceRepostory
.
CreateTable
(
TabelNameConstant
.
SnTraceDetailTable
,
detailTableName
,
startid
);
_traceRepostory
.
InsertSubTable
(
new
SubTable
{
name
=
detailTableName
,
tablename
=
TabelNameConstant
.
SnTraceDetailTable
,
startid
=
startid
,
endid
=
0
,
validtime
=
time
,
createtime
=
DateTime
.
Now
,
status
=
(
int
)
RowState
.
Valid
});
}
}
}
}
Server/Apis/Siger.ApiQMS/Tasks/QmsDataMigrationJob.cs
deleted
100644 → 0
View file @
81afe7d9
using
System
;
using
System.Collections.Generic
;
using
System.Linq
;
using
FluentScheduler
;
using
Siger.Middlelayer.Common
;
using
Siger.Middlelayer.Common.Extensions
;
using
Siger.Middlelayer.Common.ModuleEnum
;
using
Siger.Middlelayer.Dapper.CheckTrace.Repostriories
;
using
Siger.Middlelayer.Log
;
using
Siger.Middlelayer.QmsRepository
;
using
Siger.Middlelayer.QmsRepository.Entities
;
using
Siger.Middlelayer.Redis
;
namespace
Siger.ApiQMS.Tasks
{
public
class
QmsDataMigrationJob
:
IJob
{
private
static
ApiQmsDbContext
_context
;
static
QmsDataMigrationJob
()
{
_context
=
new
ApiQmsDbContext
();
}
public
void
Execute
()
{
_context
=
new
ApiQmsDbContext
();
try
{
var
state
=
_context
.
siger_system_config
.
FirstOrDefault
(
t
=>
t
.
status
==
(
int
)
RowState
.
Valid
&&
t
.
key
==
SystemConfigKey
.
QmsDataMigrationStatus
);
if
((
state
!=
null
&&
state
.
value
.
ToInt
()
!=
(
int
)
RowState
.
Valid
)
||
state
==
null
)
{
_context
.
Dispose
();
return
;
}
var
dbConfigs
=
RedisCache
.
Instance
.
GetDbNameConfigs
();
foreach
(
var
item
in
dbConfigs
)
{
try
{
SyncBigDataToMiddleDataBase
(
item
.
Pid
,
item
.
Cid
);
SyncMiddleDataToBigDataBase
();
}
catch
(
Exception
e
)
{
Logger
.
WriteLineError
(
e
.
Message
);
}
}
_context
.
Dispose
();
}
catch
(
Exception
ex
)
{
_context
.
Dispose
();
Logger
.
WriteLineError
(
ex
.
Message
);
}
}
/// <summary>
/// 迁移大数据的数据到中间层(老数据迁移
/// </summary>
public
void
SyncBigDataToMiddleDataBase
(
int
projectid
,
int
companyid
)
{
var
_traceRepository
=
new
TraceDataRepository
(
companyid
,
projectid
);
var
datas
=
_traceRepository
.
GetSnTraceList
(
projectid
);
var
traces
=
_context
.
siger_check_sn_trace_inspection
.
Where
(
t
=>
t
.
projectid
==
projectid
&&
t
.
status
==
(
int
)
RowState
.
Valid
&&
datas
.
Select
(
q
=>
q
.
ID
).
Contains
(
t
.
trace_id
)).
ToList
();
datas
=
datas
.
Where
(
t
=>
!
traces
.
Select
(
q
=>
q
.
trace_id
).
Contains
(
t
.
ID
)).
ToList
();
var
insertModels
=
new
List
<
siger_check_sn_trace_inspection
>();
var
insertDetailModels
=
new
List
<
siger_check_sn_trace_detail
>();
foreach
(
var
data
in
datas
)
{
var
model
=
new
siger_check_sn_trace_inspection
{
trace_id
=
data
.
ID
,
testroom
=
""
,
productid
=
data
.
ProductID
,
materialid
=
data
.
MaterialID
,
sectionid
=
data
.
SectionID
,
sn
=
data
.
SN
,
routeid
=
data
.
RouteID
,
check_type
=
data
.
CheckType
,
check_status
=
(
int
)
SendCheckStatus
.
Completed
,
result
=
data
.
Result
.
ToUpper
()
==
"OK"
?
((
int
)
SendTestType
.
Qalified
).
ToString
()
:
((
int
)
SendTestType
.
Unqualified
).
ToString
(),
send_mid
=
data
.
UserID
,
send_time
=
data
.
CreateTime
,
check_mid
=
data
.
UserID
,
check_time
=
data
.
CreateTime
,
inspection_type
=
(
int
)
InspectionType
.
ManualCollection
,
projectid
=
projectid
,
reason
=
""
,
workorder
=
data
.
WorkOrder
,
recieve_mid
=
data
.
UserID
,
recieve_time
=
data
.
CreateTime
,
checking_mid
=
data
.
UserID
,
checking_time
=
data
.
CreateTime
};
var
dataDetails
=
_context
.
siger_check_sn_trace_detail
.
Where
(
t
=>
t
.
projectid
==
projectid
&&
t
.
status
==
(
int
)
RowState
.
Valid
&&
data
.
ID
==
t
.
TraceID
).
ToList
();
if
(
dataDetails
.
Any
())
{
continue
;
}
var
details
=
_traceRepository
.
GetSingleTraceDetailList
(
data
.
ID
,
projectid
);
var
numberIndexs
=
_context
.
siger_check_partindex
.
Where
(
t
=>
t
.
projectid
==
projectid
&&
t
.
status
==
(
int
)
RowState
.
Valid
&&
details
.
Select
(
q
=>
q
.
ID
).
Contains
(
t
.
trace_detailid
)).
ToList
();
var
number
=
0
;
foreach
(
var
detail
in
details
)
{
var
numberIndex
=
numberIndexs
.
FirstOrDefault
(
t
=>
t
.
trace_detailid
==
detail
.
ID
);
var
detailModel
=
new
siger_check_sn_trace_detail
{
TraceID
=
detail
.
TraceID
,
ItemID
=
detail
.
ItemID
,
Result
=
detail
.
Result
,
Value
=
detail
.
Value
,
ItemName
=
detail
.
ItemName
,
SN
=
string
.
IsNullOrEmpty
(
detail
.
SN
)
?
model
.
sn
:
detail
.
SN
,
NumberIndex
=
numberIndex
?.
partindex
??
1
,
projectid
=
projectid
,
CreateTime
=
data
.
CreateTime
};
insertDetailModels
.
Add
(
detailModel
);
if
(
detailModel
.
NumberIndex
>
number
)
{
number
=
detailModel
.
NumberIndex
;
}
}
model
.
number
=
number
;
insertModels
.
Add
(
model
);
}
foreach
(
var
trace
in
traces
)
{
var
dataDetails
=
_context
.
siger_check_sn_trace_detail
.
Where
(
t
=>
t
.
projectid
==
projectid
&&
t
.
status
==
(
int
)
RowState
.
Valid
&&
trace
.
trace_id
==
t
.
TraceID
).
ToList
();
if
(
dataDetails
.
Any
())
{
continue
;
}
var
details
=
_traceRepository
.
GetSingleTraceDetailList
(
trace
.
trace_id
,
projectid
);
var
numberIndexs
=
_context
.
siger_check_partindex
.
Where
(
t
=>
t
.
projectid
==
projectid
&&
t
.
status
==
(
int
)
RowState
.
Valid
&&
details
.
Select
(
q
=>
q
.
ID
).
Contains
(
t
.
trace_detailid
)).
ToList
();
foreach
(
var
detail
in
details
)
{
var
numberIndex
=
numberIndexs
.
FirstOrDefault
(
t
=>
t
.
trace_detailid
==
detail
.
ID
);
var
detailModel
=
new
siger_check_sn_trace_detail
{
TraceID
=
detail
.
TraceID
,
ItemID
=
detail
.
ItemID
,
Result
=
detail
.
Result
,
Value
=
detail
.
Value
,
ItemName
=
detail
.
ItemName
,
SN
=
string
.
IsNullOrEmpty
(
detail
.
SN
)
?
trace
.
sn
:
detail
.
SN
,
NumberIndex
=
numberIndex
?.
partindex
??
1
,
projectid
=
projectid
,
CreateTime
=
(
trace
.
check_time
.
HasValue
&&
trace
.
check_time
!=
DateTime
.
MinValue
)
?
trace
.
check_time
.
Value
:
DateTime
.
Now
};
insertDetailModels
.
Add
(
detailModel
);
}
}
_context
.
siger_check_sn_trace_inspection
.
AddRange
(
insertModels
);
_context
.
siger_check_sn_trace_detail
.
AddRange
(
insertDetailModels
);
_context
.
SaveChanges
();
}
public
void
SyncMiddleDataToBigDataBase
()
{
return
;
}
}
}
Server/Apis/Siger.ApiQMS/Utility/AbnormalCheckHelper.cs
View file @
b5cdac1d
...
...
@@ -4,7 +4,6 @@ using Siger.ApiQMS.Result;
using
Siger.Middlelayer.Common
;
using
Siger.Middlelayer.Common.Helpers
;
using
Siger.Middlelayer.Common.ModuleEnum
;
using
Siger.Middlelayer.Dapper.CheckTrace.Repostriories
;
using
Siger.Middlelayer.Log
;
using
Siger.Middlelayer.QmsRepository.Entities
;
using
Siger.Middlelayer.QmsRepository.Repositories.Interface
;
...
...
@@ -56,7 +55,7 @@ namespace Siger.ApiQMS.Utility
/// <param name="machineid"></param>
/// <param name="triggerAndon"></param>
/// <param name="typeCode"></param>
public
void
AbnomalRuleCheck
(
int
num
,
lo
ng
traceid
,
int
sectionid
,
int
machineid
,
bool
triggerAndon
,
int
typeCode
)
public
void
AbnomalRuleCheck
(
int
num
,
stri
ng
traceid
,
int
sectionid
,
int
machineid
,
bool
triggerAndon
,
int
typeCode
)
{
if
(
num
<=
0
)
{
...
...
@@ -170,7 +169,7 @@ namespace Siger.ApiQMS.Utility
}
}
private
void
UpdateTraceWorkOrder
(
lo
ng
traceid
,
string
workOrder
)
private
void
UpdateTraceWorkOrder
(
stri
ng
traceid
,
string
workOrder
)
{
if
(
string
.
IsNullOrEmpty
(
workOrder
))
{
...
...
@@ -188,9 +187,6 @@ namespace Siger.ApiQMS.Utility
{
return
;
}
var
_itemTraceRepository
=
new
TraceDataRepository
(
_companyId
,
_projectId
);
_itemTraceRepository
.
UpdateSnTraceWorkOrder
(
traceid
,
workOrder
,
_projectId
);
}
/// <summary>
...
...
Server/Apis/Siger.ApiQMS/Utility/SpcAnalysisUtility.cs
View file @
b5cdac1d
...
...
@@ -13,7 +13,7 @@ namespace Siger.ApiQMS.Utility
{
public
class
SpcAnalysisUtility
:
IDisposable
{
public
ResponseQMSDynamicDiag
CheckDataRule
(
int
itemID
,
double
UCL
,
double
LCL
,
lo
ng
traceID
,
List
<
double
>
valueList
,
public
ResponseQMSDynamicDiag
CheckDataRule
(
int
itemID
,
double
UCL
,
double
LCL
,
stri
ng
traceID
,
List
<
double
>
valueList
,
List
<
int
>
rules
)
{
var
request
=
new
RequestQMSDynamicDiag
...
...
Server/Infrastructure/Repositories/Siger.Middlelayer.QmsRepository/Entities/siger_check_sn_trace_detail.cs
View file @
b5cdac1d
...
...
@@ -18,7 +18,7 @@ namespace Siger.Middlelayer.QmsRepository.Entities
public
int
MachineID
{
get
;
set
;
}
public
lo
ng
TraceID
{
get
;
set
;
}
public
stri
ng
TraceID
{
get
;
set
;
}
public
string
SN
{
get
;
set
;
}
...
...
Server/Infrastructure/Repositories/Siger.Middlelayer.QmsRepository/Entities/siger_check_sn_trace_inspection.cs
View file @
b5cdac1d
...
...
@@ -8,7 +8,7 @@ namespace Siger.Middlelayer.QmsRepository.Entities
/// </summary>
public
class
siger_check_sn_trace_inspection
:
QmsEntityBase
{
public
lo
ng
trace_id
{
get
;
set
;
}
public
stri
ng
trace_id
{
get
;
set
;
}
/// <summary>
/// 检测室字典key
...
...
Server/Infrastructure/Repositories/Siger.Middlelayer.QmsRepository/Repositories/CheckSnTraceDetailRepository.cs
View file @
b5cdac1d
...
...
@@ -23,7 +23,7 @@ namespace Siger.Middlelayer.QmsRepository.Repositories
}
public
IPagedCollectionResult
<
ResponseDataCollection
>
GetPagedList
(
List
<
int
>
sectionid
,
int
productid
,
int
materialid
,
int
route
,
int
checktype
,
string
sn
,
string
result
,
List
<
lo
ng
>
traceIds
,
string
starttime
,
string
endtime
,
int
userid
,
int
itemid
,
int
route
,
int
checktype
,
string
sn
,
string
result
,
List
<
stri
ng
>
traceIds
,
string
starttime
,
string
endtime
,
int
userid
,
int
itemid
,
int
projectId
,
int
page
,
int
pagesize
,
string
toexcel
)
{
var
minDate
=
"0001-01-01 00:00:00"
.
ToDateTime
();
...
...
@@ -146,7 +146,7 @@ namespace Siger.Middlelayer.QmsRepository.Repositories
}
}
public
List
<
double
>
GetHistoryDts
(
int
limt
,
lo
ng
traceId
,
int
typeCode
,
int
projectId
,
int
itemId
,
DateTime
minDate
)
public
List
<
double
>
GetHistoryDts
(
int
limt
,
stri
ng
traceId
,
int
typeCode
,
int
projectId
,
int
itemId
,
DateTime
minDate
)
{
var
query
=
from
d
in
_context
.
siger_check_sn_trace_detail
join
t
in
_context
.
siger_check_sn_trace_inspection
on
d
.
TraceID
equals
t
.
trace_id
...
...
@@ -158,5 +158,56 @@ namespace Siger.Middlelayer.QmsRepository.Repositories
return
query
.
OrderByDescending
(
t
=>
t
.
CreateTime
).
OrderByDescending
(
t
=>
t
.
NumberIndex
)
.
OrderByDescending
(
t
=>
t
.
ID
).
Take
(
limt
).
Select
(
t
=>
t
.
Value
.
Value
).
ToList
();
}
public
IEnumerable
<
SnTrace
>
GetSnTraceList
(
List
<
int
>
sectionIds
,
int
productid
,
int
materialid
,
int
checktype
,
string
starttime
,
string
endtime
,
int
projectid
)
{
var
query
=
from
q
in
_context
.
siger_check_sn_trace_inspection
//join t in _context.siger_check_sn_trace_inspection on q.TraceID equals t.trace_id
where
q
.
projectid
==
productid
&&
q
.
status
==
(
int
)
RowState
.
Valid
//&& t.status == (int)RowState.Valid && q.projectid == productid
&&
q
.
check_status
==
(
int
)
SendCheckStatus
.
Completed
select
new
SnTrace
{
ID
=
q
.
trace_id
,
ProductID
=
q
.
productid
,
MaterialID
=
q
.
materialid
,
SectionID
=
q
.
sectionid
,
WorkOrder
=
q
.
workorder
,
SN
=
q
.
sn
,
Result
=
q
.
result
,
UserID
=
q
.
checking_mid
,
CreateTime
=
q
.
check_time
>
DateTime
.
MinValue
?
q
.
check_time
.
Value
:
DateTime
.
MinValue
,
RouteID
=
q
.
routeid
,
CheckType
=
q
.
check_type
,
};
Expression
<
Func
<
SnTrace
,
bool
>>
materialExpression
=
q
=>
true
;
if
(
materialid
>
0
)
{
materialExpression
=
q
=>
q
.
MaterialID
==
materialid
;
}
Expression
<
Func
<
SnTrace
,
bool
>>
sectionExpression
=
q
=>
true
;
if
(
sectionIds
.
Any
())
{
sectionExpression
=
q
=>
sectionIds
.
Contains
(
q
.
SectionID
);
}
Expression
<
Func
<
SnTrace
,
bool
>>
productExpression
=
q
=>
true
;
if
(
productid
>
0
)
{
productExpression
=
q
=>
q
.
ProductID
==
productid
;
}
Expression
<
Func
<
SnTrace
,
bool
>>
checkTypeExpression
=
q
=>
true
;
if
(
checktype
>
0
)
{
checkTypeExpression
=
q
=>
q
.
CheckType
==
checktype
;
}
Expression
<
Func
<
SnTrace
,
bool
>>
timeExpression
=
q
=>
true
;
if
(!
string
.
IsNullOrEmpty
(
starttime
)
&&
!
string
.
IsNullOrEmpty
(
endtime
))
{
timeExpression
=
q
=>
q
.
CreateTime
<=
endtime
.
ToDateTime
()
&&
q
.
CreateTime
>=
starttime
.
ToDateTime
();
}
var
expression
=
materialExpression
.
And
(
sectionExpression
).
And
(
productExpression
).
And
(
checkTypeExpression
).
And
(
timeExpression
);
return
query
.
Where
(
expression
);
}
}
}
Server/Infrastructure/Repositories/Siger.Middlelayer.QmsRepository/Repositories/Interface/ICheckSnTraceDetailRepository.cs
View file @
b5cdac1d
...
...
@@ -9,9 +9,11 @@ namespace Siger.Middlelayer.QmsRepository.Repositories.Interface
public
interface
ICheckSnTraceDetailRepository
:
IQmsRepositoryBase
<
siger_check_sn_trace_detail
>
{
IPagedCollectionResult
<
ResponseDataCollection
>
GetPagedList
(
List
<
int
>
sectionid
,
int
productid
,
int
materialid
,
int
route
,
int
checktype
,
string
sn
,
string
result
,
List
<
lo
ng
>
traceIds
,
string
starttime
,
string
endtime
,
int
userid
,
int
itemid
,
int
route
,
int
checktype
,
string
sn
,
string
result
,
List
<
stri
ng
>
traceIds
,
string
starttime
,
string
endtime
,
int
userid
,
int
itemid
,
int
projectId
,
int
page
,
int
pagesize
,
string
toexcel
);
List
<
double
>
GetHistoryDts
(
int
limt
,
long
traceId
,
int
typeCode
,
int
projectId
,
int
itemId
,
DateTime
minDate
);
List
<
double
>
GetHistoryDts
(
int
limt
,
string
traceId
,
int
typeCode
,
int
projectId
,
int
itemId
,
DateTime
minDate
);
IEnumerable
<
SnTrace
>
GetSnTraceList
(
List
<
int
>
sectionIds
,
int
productid
,
int
materialid
,
int
checktype
,
string
starttime
,
string
endtime
,
int
projectid
);
}
}
Server/Infrastructure/Repositories/Siger.Middlelayer.QmsRepository/Request/RequestDataCollection.cs
View file @
b5cdac1d
...
...
@@ -38,7 +38,7 @@ namespace Siger.Middlelayer.QmsRepository.Request
public
class
RequestUpdateDataCollection
:
RequestAddDataCollection
{
public
lo
ng
id
{
get
;
set
;
}
public
stri
ng
id
{
get
;
set
;
}
}
public
class
DataCollectionDetail
...
...
Server/Infrastructure/Repositories/Siger.Middlelayer.QmsRepository/Response/ResponseDataCollection.cs
View file @
b5cdac1d
...
...
@@ -5,7 +5,7 @@ namespace Siger.Middlelayer.QmsRepository.Response
{
public
class
ResponseDataCollection
{
public
lo
ng
id
{
get
;
set
;
}
public
stri
ng
id
{
get
;
set
;
}
public
int
productid
{
get
;
set
;
}
...
...
@@ -138,4 +138,61 @@ namespace Siger.Middlelayer.QmsRepository.Response
public
int
stopBits
{
get
;
set
;
}
}
public
class
SnTrace
{
public
string
ID
{
get
;
set
;
}
public
int
ProductID
{
get
;
set
;
}
public
int
MaterialID
{
get
;
set
;
}
public
int
SectionID
{
get
;
set
;
}
public
int
MachineID
{
get
;
set
;
}
public
string
WorkOrder
{
get
;
set
;
}
public
string
SN
{
get
;
set
;
}
public
string
Result
{
get
;
set
;
}
public
int
UserID
{
get
;
set
;
}
public
int
RouteID
{
get
;
set
;
}
public
DateTime
CreateTime
{
get
;
set
;
}
public
int
CheckType
{
get
;
set
;
}
public
string
ItemName
{
get
;
set
;
}
=
string
.
Empty
;
}
public
class
SnTraceDetail
{
public
long
ID
{
get
;
set
;
}
public
string
TraceID
{
get
;
set
;
}
public
int
ItemID
{
get
;
set
;
}
public
string
ItemName
{
get
;
set
;
}
=
string
.
Empty
;
public
string
Result
{
get
;
set
;
}
public
double
?
Value
{
get
;
set
;
}
public
string
SN
{
get
;
set
;
}
}
public
class
SnTraceDetailList
:
SnTraceDetail
{
public
int
NumberIndex
{
get
;
set
;
}
public
double
?
LowerLimit
{
get
;
set
;
}
public
double
?
UpperLimit
{
get
;
set
;
}
}
}
Server/Infrastructure/Repositories/Siger.Middlelayer.QmsRepository/Response/ResponseSendTestCollection.cs
View file @
b5cdac1d
...
...
@@ -6,7 +6,7 @@ namespace Siger.Middlelayer.QmsRepository.Response
public
class
ResponseSendTestCollection
{
public
int
id
{
get
;
set
;
}
public
lo
ng
traceid
{
get
;
set
;
}
public
stri
ng
traceid
{
get
;
set
;
}
public
int
productid
{
get
;
set
;
}
public
string
productcode
{
get
;
set
;
}
public
string
productname
{
get
;
set
;
}
...
...
Server/Infrastructure/Siger.Middlelayer.Dapper/CheckTrace/Constant/TabelNameConstant.cs
deleted
100644 → 0
View file @
81afe7d9
using
System
;
using
System.Collections.Generic
;
using
System.Text
;
namespace
Siger.Middlelayer.Dapper.CheckTrace.Constant
{
public
class
TabelNameConstant
{
public
const
string
SnTraceTable
=
"siger_check_sn_trace"
;
public
const
string
SnTraceDetailTable
=
"siger_check_sn_trace_detail"
;
public
const
string
SubTableTable
=
"siger_project_subtable"
;
public
const
string
TraceInspection
=
"siger_check_sn_trace_inspection"
;
}
}
Server/Infrastructure/Siger.Middlelayer.Dapper/CheckTrace/Data/SnTrace.cs
deleted
100644 → 0
View file @
81afe7d9
using
System
;
using
System.Collections.Generic
;
using
System.Text
;
namespace
Siger.Middlelayer.Dapper.CheckTrace.Data
{
public
class
SnTrace
{
public
long
ID
{
get
;
set
;
}
public
int
ProductID
{
get
;
set
;
}
public
int
MaterialID
{
get
;
set
;
}
public
int
SectionID
{
get
;
set
;
}
public
int
MachineID
{
get
;
set
;
}
public
string
WorkOrder
{
get
;
set
;
}
public
string
SN
{
get
;
set
;
}
public
string
Result
{
get
;
set
;
}
public
int
UserID
{
get
;
set
;
}
public
int
RouteID
{
get
;
set
;
}
public
DateTime
CreateTime
{
get
;
set
;
}
public
int
CheckType
{
get
;
set
;
}
public
string
ItemName
{
get
;
set
;
}
=
string
.
Empty
;
}
public
class
SnTraceDetail
{
public
long
ID
{
get
;
set
;
}
public
long
TraceID
{
get
;
set
;
}
public
int
ItemID
{
get
;
set
;
}
public
string
ItemName
{
get
;
set
;
}
=
string
.
Empty
;
public
string
Result
{
get
;
set
;
}
public
double
?
Value
{
get
;
set
;
}
public
string
SN
{
get
;
set
;
}
}
public
class
SnTraceDetailList
:
SnTraceDetail
{
public
int
NumberIndex
{
get
;
set
;
}
public
double
?
LowerLimit
{
get
;
set
;
}
public
double
?
UpperLimit
{
get
;
set
;
}
}
}
Server/Infrastructure/Siger.Middlelayer.Dapper/CheckTrace/Data/SubTable.cs
deleted
100644 → 0
View file @
81afe7d9
using
System
;
using
System.Collections.Generic
;
using
System.Text
;
namespace
Siger.Middlelayer.Dapper.CheckTrace.Data
{
public
class
SubTable
{
public
int
id
{
get
;
set
;
}
public
string
name
{
get
;
set
;
}
public
string
tablename
{
get
;
set
;
}
public
long
startid
{
get
;
set
;
}
public
long
endid
{
get
;
set
;
}
public
DateTime
validtime
{
get
;
set
;
}
public
DateTime
createtime
{
get
;
set
;
}
public
int
status
{
get
;
set
;
}
}
}
Server/Infrastructure/Siger.Middlelayer.Dapper/CheckTrace/Repostriories/TraceDataRepository.cs
deleted
100644 → 0
View file @
81afe7d9
using
System
;
using
System.Collections.Generic
;
using
System.Text
;
using
Dapper
;
using
Siger.Middlelayer.Dapper.CheckTrace.Data
;
using
Siger.Middlelayer.Dapper.CheckTrace.Constant
;
using
System.Linq
;
using
System.Threading.Tasks
;
using
Siger.Middlelayer.Common.Extensions
;
using
Siger.Middlelayer.Common.Log
;
using
Siger.Middlelayer.Common
;
using
Siger.Middlelayer.Common.ModuleEnum
;
namespace
Siger.Middlelayer.Dapper.CheckTrace.Repostriories
{
public
class
TraceDataRepository
:
TraceDbContext
{
public
TraceDataRepository
(
int
companyId
,
int
projectId
)
:
base
(
companyId
,
projectId
)
{
}
public
List
<
SubTable
>
GetSubTableList
(
string
name
)
{
using
(
var
conn
=
GetDbConnection
())
{
var
sql
=
$"select * from
{
TabelNameConstant
.
SubTableTable
}
where tablename='
{
name
}
' and status=1"
;
var
dataList
=
conn
.
Query
<
SubTable
>(
sql
);
return
dataList
.
ToList
();
}
}
public
IEnumerable
<
SnTrace
>
GetSnTraceList
(
int
projectid
)
{
var
sql
=
$@"select ID,ProductID,MaterialID,SectionID,WorkOrder,SN,Result,UserID,CreateTime,RouteID,CheckType
from
{
TabelNameConstant
.
SnTraceTable
}
where Status=
{(
int
)
RowState
.
Valid
}
and ProjectID=
{
projectid
}
and UserID>0
order by CreateTime"
;
var
dataList
=
GetDataList
<
SnTrace
>(
sql
);
return
dataList
;
}
public
IEnumerable
<
SnTraceDetail
>
GetSingleTraceDetailList
(
long
traceId
,
int
projectid
)
{
var
snTraces
=
new
List
<
SnTraceDetail
>();
var
subTables
=
GetSubTableList
(
TabelNameConstant
.
SnTraceDetailTable
);
if
(
subTables
.
Count
>
0
)
{
Parallel
.
ForEach
(
subTables
,
new
ParallelOptions
{
MaxDegreeOfParallelism
=
subTables
.
Count
},
t
=>
{
snTraces
.
AddRange
(
GetSingleTraceDetails
(
t
,
traceId
,
projectid
));
});
}
Task
.
WaitAll
();
return
snTraces
.
ToList
();
}
private
IEnumerable
<
SnTraceDetail
>
GetSingleTraceDetails
(
SubTable
table
,
long
traceId
,
int
projectid
)
{
var
conditon
=
string
.
Empty
;
if
(
traceId
>
0
)
{
conditon
+=
$" and TraceID=
{
traceId
}
"
;
}
var
sql
=
$@"select ID,ItemID,TraceID,Result,Value,ItemName,SN
from
{
table
.
name
}
where Status=1 and ProjectID=
{
projectid
}
{
conditon
}
"
;
var
dataList
=
GetDataList
<
SnTraceDetail
>(
sql
);
return
dataList
;
}
public
SnTrace
GetSnTrace
(
long
id
,
int
projectid
)
{
using
(
var
conn
=
GetDbConnection
())
{
var
sql
=
$"select * from
{
TabelNameConstant
.
SnTraceTable
}
where ID=
{
id
}
and Status=1 and ProjectID=
{
projectid
}
"
;
var
data
=
conn
.
QuerySingleOrDefault
<
SnTrace
>(
sql
);
return
data
;
}
}
public
void
UpdateSnTraceWorkOrder
(
long
id
,
string
workorder
,
int
projectid
)
{
using
(
var
conn
=
GetDbConnection
())
{
var
sql
=
$"update
{
TabelNameConstant
.
SnTraceTable
}
set WorkOrder='
{
workorder
}
' where ID=
{
id
}
and Status=1 and ProjectID=
{
projectid
}
"
;
var
data
=
conn
.
Execute
(
sql
);
}
}
public
override
void
Dispose
()
{
throw
new
NotImplementedException
();
}
}
}
Server/Infrastructure/Siger.Middlelayer.Dapper/CheckTrace/Repostriories/TraceDetailRepository.cs
deleted
100644 → 0
View file @
81afe7d9
This diff is collapsed.
Click to expand it.
Server/Infrastructure/Siger.Middlelayer.Dapper/CheckTrace/Repostriories/TraceDetailTableRepository.cs
deleted
100644 → 0
View file @
81afe7d9
using
System
;
using
System.Collections.Generic
;
using
System.Text
;
using
Dapper
;
using
Siger.Middlelayer.Dapper.CheckTrace.Data
;
using
Siger.Middlelayer.Dapper.CheckTrace.Constant
;
using
System.Linq
;
using
System.Threading.Tasks
;
using
Siger.Middlelayer.Common.Extensions
;
using
Siger.Middlelayer.Common.Log
;
using
Siger.Middlelayer.Common
;
using
Siger.Middlelayer.Common.ModuleEnum
;
namespace
Siger.Middlelayer.Dapper.CheckTrace.Repostriories
{
public
class
TraceDetailTableRepository
:
TraceDetailRepository
{
public
TraceDetailTableRepository
(
int
companyId
,
int
projectId
)
:
base
(
companyId
,
projectId
)
{
}
/// <summary>
/// 查询表是否存在
/// </summary>
/// <returns></returns>
public
bool
TableIsExsit
(
string
tablename
,
string
schemaname
)
{
using
(
var
conn
=
GetDbConnection
())
{
var
sql
=
$"select TABLE_NAME from information_schema.TABLES where TABLE_NAME = '
{
tablename
}
' and TABLE_SCHEMA='
{
schemaname
}
';"
;
var
data
=
conn
.
Query
<
string
>(
sql
);
return
!
string
.
IsNullOrEmpty
(
data
.
FirstOrDefault
());
}
}
public
void
CreateTable
(
string
tablename
,
string
true_tablename
,
long
startid
)
{
using
(
var
conn
=
GetDbConnection
())
{
var
sql
=
string
.
Empty
;
switch
(
tablename
)
{
case
TabelNameConstant
.
SnTraceTable
:
{
sql
=
"CREATE TABLE `"
+
true_tablename
+
@"` (
`ID` bigint(20) NOT NULL AUTO_INCREMENT,
`SN` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '二维码',
`ProductID` int(11) NOT NULL COMMENT '产品ID',
`MaterialID` int(11) NOT NULL DEFAULT 0 COMMENT '物料ID',
`SectionID` int(20) NOT NULL COMMENT '工位ID',
`MachineID` int(11) NOT NULL COMMENT '设备ID',
`WorkOrder` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '工单号',
`RouteID` int(11) NOT NULL DEFAULT 0 COMMENT '产品工序ID',
`UserID` int(20) NOT NULL DEFAULT 0 COMMENT '用户MID',
`Result` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '结果',
`CheckType` int(2) NOT NULL DEFAULT 0 COMMENT '检验类型',
`CreateTime` datetime(0) NOT NULL,
`ProjectID` int(20) NOT NULL DEFAULT 0,
`Status` int(2) NOT NULL DEFAULT 1,
PRIMARY KEY(`ID`) USING BTREE,
INDEX `sn`(`SN`) USING BTREE,
INDEX `UserID`(`UserID`) USING BTREE,
INDEX `CreateTime`(`CreateTime`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC; "
;
break
;
}
case
TabelNameConstant
.
SnTraceDetailTable
:
{
sql
=
@"CREATE TABLE `"
+
true_tablename
+
@"` (
`ID` bigint(20) NOT NULL AUTO_INCREMENT,
`MachineID` int(11) NOT NULL DEFAULT 0,
`TraceID` bigint(20) NOT NULL DEFAULT 0 COMMENT 'siger_tr_sn_trace.id(trace表ID)',
`SN` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '二维码',
`ItemID` int(11) NOT NULL DEFAULT 0 COMMENT 'siger_qms_inspection_standard.id(项目ID)',
`ItemName` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '项目名称',
`Value` double NULL DEFAULT NULL COMMENT '检测值',
`Result` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '结果',
`CreateTime` datetime(0) NOT NULL,
`ProjectID` int(20) NOT NULL DEFAULT 0,
`Status` int(20) NOT NULL DEFAULT 1,
PRIMARY KEY (`ID`) USING BTREE,
INDEX `index_createtime`(`CreateTime`) USING BTREE,
INDEX `index_itemname`(`ItemName`) USING BTREE,
INDEX `index_itemid`(`ItemID`) USING BTREE,
INDEX `index_traceid`(`TraceID`, `ProjectID`, `Status`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = "
+
startid
+
" CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;"
;
break
;
}
case
TabelNameConstant
.
SubTableTable
:
{
sql
=
"CREATE TABLE `"
+
true_tablename
+
@"` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '分表表名',
`tablename` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '原始表名',
`startid` bigint(20) NOT NULL DEFAULT 0 COMMENT '分表最小ID',
`endid` bigint(20) NOT NULL DEFAULT 0 COMMENT '分表最大ID,新建表默认0',
`validtime` datetime(0) NOT NULL COMMENT '有效月份',
`createtime` datetime(0) NOT NULL COMMENT '创建时间',
`status` int(2) NOT NULL DEFAULT 1,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;"
;
break
;
}
}
var
data
=
conn
.
Execute
(
sql
);
}
}
public
long
GetTableMaxID
(
string
tablename
)
{
using
(
var
conn
=
GetDbConnection
())
{
var
sql
=
$"select max(ID) from
{
tablename
}
"
;
var
data
=
conn
.
Query
<
string
>(
sql
);
bool
num
=
long
.
TryParse
(
data
.
First
(),
out
long
result
);
return
num
?
result
:
0L
;
}
}
public
long
GetTableMinID
(
string
tablename
)
{
using
(
var
conn
=
GetDbConnection
())
{
var
sql
=
$"select min(ID) from
{
tablename
}
"
;
var
data
=
conn
.
Query
<
string
>(
sql
);
bool
num
=
long
.
TryParse
(
data
.
First
(),
out
long
result
);
return
num
?
result
:
1L
;
}
}
public
SubTable
GetSubTableInfo
(
string
name
,
string
tablename
)
{
using
(
var
conn
=
GetDbConnection
())
{
var
sql
=
$"select * from
{
TabelNameConstant
.
SubTableTable
}
where name='
{
name
}
' and tablename='
{
tablename
}
' and status=1"
;
var
dataList
=
conn
.
Query
<
SubTable
>(
sql
);
return
dataList
.
FirstOrDefault
();
}
}
public
bool
InsertSubTable
(
SubTable
entity
)
{
using
(
var
conn
=
GetDbConnection
())
{
var
sql
=
$"INSERT INTO `siger_project_subtable` (name,tablename,startid,endid,validtime,createtime,status) VALUES ('
{
entity
.
name
}
', '
{
entity
.
tablename
}
',
{
entity
.
startid
}
,
{
entity
.
endid
}
, '
{
entity
.
validtime
.
ToString
(
ParameterConstant
.
DateTimeFormat
)}
', '
{
entity
.
createtime
.
ToString
(
ParameterConstant
.
DateTimeFormat
)}
',
{
entity
.
status
}
);"
;
var
data
=
conn
.
Execute
(
sql
);
return
data
>
0
;
}
}
public
bool
UpdateSubTableEndId
(
int
id
,
long
endid
)
{
using
(
var
conn
=
GetDbConnection
())
{
var
sql
=
$"update siger_project_subtable set endid=
{
endid
}
where id=
{
id
}
"
;
var
data
=
conn
.
Execute
(
sql
);
return
data
>
0
;
}
}
public
override
void
Dispose
()
{
throw
new
NotImplementedException
();
}
}
}
Server/Infrastructure/Siger.Middlelayer.Dapper/CheckTrace/TraceDbContext.cs
deleted
100644 → 0
View file @
81afe7d9
using
System
;
using
System.Collections.Generic
;
using
System.Data
;
using
System.Threading.Tasks
;
using
Dapper
;
using
MySql.Data.MySqlClient
;
using
Siger.Middlelayer.Common.Configuration
;
using
Siger.Middlelayer.Redis
;
namespace
Siger.Middlelayer.Dapper.CheckTrace
{
public
abstract
class
TraceDbContext
{
private
static
string
_dbConnection
;
private
static
string
_dbMidConnection
;
private
readonly
int
_companyId
;
private
readonly
int
_projectId
;
protected
TraceDbContext
(
int
companyId
,
int
projectId
)
{
var
useOneDb
=
ConfigManager
.
GetValue
(
"DbSetting"
,
"UseOneDb"
,
true
);
if
(
useOneDb
)
{
_dbConnection
=
ConfigManager
.
GetValue
(
"DbSetting"
,
"DbConnectionKM"
,
string
.
Empty
);
}
else
{
_dbConnection
=
ConfigManager
.
GetValue
(
"DbClusterSetting"
,
"ClusterConnectionKM"
,
string
.
Empty
);
}
if
(
string
.
IsNullOrEmpty
(
_dbConnection
))
{
throw
new
Exception
(
"DbSetting about [DbConnectionKM] not found."
);
}
_dbMidConnection
=
ConfigManager
.
GetValue
(
"DbSetting"
,
"DbConnection"
,
string
.
Empty
);
if
(
string
.
IsNullOrEmpty
(
_dbMidConnection
))
{
throw
new
Exception
(
"DbSetting about [DbConnection] not found."
);
}
_companyId
=
companyId
;
_projectId
=
projectId
;
}
public
string
GetDbName
()
{
return
$"
{
_companyId
}
_
{
_projectId
}
"
;
}
public
IDbConnection
GetMidDbConnection
()
{
try
{
var
connecctionStr
=
$"
{
_dbMidConnection
}
"
;
var
connect
=
new
MySqlConnection
(
connecctionStr
);
connect
.
Open
();
return
connect
;
}
catch
(
Exception
e
)
{
throw
new
Exception
(
$"connect mysql db
{
_dbMidConnection
}
failed, error:"
+
e
);
}
}
public
IDbConnection
GetDbConnection
()
{
try
{
var
dbConfig
=
RedisCache
.
Instance
.
GetDbName
(
_companyId
,
_projectId
);
var
connecctionStr
=
$"
{
_dbConnection
}
;database=
{
dbConfig
.
MysqlDbName
}
"
;
var
connect
=
new
MySqlConnection
(
connecctionStr
);
connect
.
Open
();
return
connect
;
}
catch
(
Exception
e
)
{
throw
new
Exception
(
$"connect mysql db
{
_companyId
}
_
{
_projectId
}
failed, error:"
+
e
);
}
}
protected
async
Task
<
IEnumerable
<
T
>>
GetDataListAsync
<
T
>(
string
sql
)
{
return
await
Task
.
Run
(()
=>
{
using
(
var
conn
=
GetDbConnection
())
{
var
dataList
=
conn
.
QueryAsync
<
T
>(
sql
);
return
dataList
;
}
});
}
protected
IEnumerable
<
T
>
GetDataList
<
T
>(
string
sql
)
{
using
(
var
conn
=
GetDbConnection
())
{
var
dataList
=
conn
.
Query
<
T
>(
sql
);
return
dataList
;
}
}
protected
long
Count
(
string
table
)
{
using
(
var
conn
=
GetDbConnection
())
{
var
result
=
conn
.
ExecuteScalar
<
long
>(
$"select count(1) from
{
table
}
"
);
return
result
;
}
}
protected
string
GetMidDataBaseName
()
{
using
(
var
conn
=
GetMidDbConnection
())
{
return
conn
.
Database
;
}
}
/// <summary>
/// 开启事务
/// </summary>
/// <param name="conn"></param>
/// <returns></returns>
public
IDbTransaction
BeginTransaction
(
IDbConnection
conn
)
{
IDbTransaction
tran
=
conn
.
BeginTransaction
();
return
tran
;
}
/// <summary>
/// 提交事务
/// </summary>
/// <param name="tran"></param>
/// <param name="conn"></param>
public
void
Commit
(
IDbTransaction
tran
,
IDbConnection
conn
)
{
tran
.
Commit
();
}
/// <summary>
/// 回滚事务
/// </summary>
/// <param name="tran"></param>
/// <param name="conn"></param>
public
void
Rollback
(
IDbTransaction
tran
,
IDbConnection
conn
)
{
tran
.
Rollback
();
}
public
abstract
void
Dispose
();
}
}
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