Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
P
patzn-cloud-service-hmhj
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
wangweidong
patzn-cloud-service-hmhj
Commits
bbf333e4
Commit
bbf333e4
authored
Jul 30, 2021
by
ghxdhr
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
数据录入展示试样的值;
大屏报告相关统计
parent
1acdeb63
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
172 additions
and
8 deletions
+172
-8
EntrustRecordController.java
...service/lims/hmhj/controller/EntrustRecordController.java
+12
-0
EntrustRecordMapper.java
...n/cloud/service/lims/hmhj/mapper/EntrustRecordMapper.java
+10
-0
IEntrustRecordService.java
...loud/service/lims/hmhj/service/IEntrustRecordService.java
+10
-0
EntrustRecordServiceImpl.java
...vice/lims/hmhj/service/impl/EntrustRecordServiceImpl.java
+121
-8
EntrustMapper.xml
src/main/resources/mapper/hmhj/EntrustMapper.xml
+1
-0
EntrustRecordMapper.xml
src/main/resources/mapper/hmhj/EntrustRecordMapper.xml
+18
-0
No files found.
src/main/java/com/patzn/cloud/service/lims/hmhj/controller/EntrustRecordController.java
View file @
bbf333e4
package
com
.
patzn
.
cloud
.
service
.
lims
.
hmhj
.
controller
;
import
com.baomidou.kisso.annotation.Action
;
import
com.baomidou.kisso.annotation.Login
;
import
com.patzn.cloud.service.hmhj.entity.EntrustRecord
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.DeleteMapping
;
...
...
@@ -21,7 +23,9 @@ import io.swagger.annotations.ApiImplicitParam;
import
io.swagger.annotations.ApiImplicitParams
;
import
io.swagger.annotations.ApiOperation
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Map
;
/**
* 委托操作日志表 前端控制器
...
...
@@ -80,4 +84,12 @@ public class EntrustRecordController extends ServiceController {
public
RestResult
<
Boolean
>
delete
(
@RequestParam
(
"ids"
)
List
<
Long
>
ids
)
{
return
success
(
entrustRecordService
.
removeByIds
(
ids
));
}
@ApiOperation
(
"统计各月报告总量相关统计"
)
@PostMapping
(
"/month_statistic"
)
@Login
(
action
=
Action
.
Skip
)
public
RestResult
<
Map
<
String
,
String
>>
monthStatistic
(
@RequestParam
(
"start"
)
Date
start
,
@RequestParam
(
"end"
)
Date
end
)
{
return
success
(
entrustRecordService
.
monthStatistic
(
start
,
end
));
}
}
src/main/java/com/patzn/cloud/service/lims/hmhj/mapper/EntrustRecordMapper.java
View file @
bbf333e4
package
com
.
patzn
.
cloud
.
service
.
lims
.
hmhj
.
mapper
;
import
com.baomidou.mybatisplus.annotations.SqlParser
;
import
com.patzn.cloud.commons.mapper.BatchMapper
;
import
com.patzn.cloud.service.hmhj.entity.EntrustRecord
;
import
org.apache.ibatis.annotations.Param
;
import
java.util.Date
;
import
java.util.List
;
/**
* <p>
...
...
@@ -13,4 +18,9 @@ import com.patzn.cloud.service.hmhj.entity.EntrustRecord;
*/
public
interface
EntrustRecordMapper
extends
BatchMapper
<
EntrustRecord
>
{
@SqlParser
(
filter
=
true
)
List
<
Long
>
selectRollBackCount
(
@Param
(
"start"
)
Date
startYM
,
@Param
(
"end"
)
Date
endYM
);
@SqlParser
(
filter
=
true
)
Long
selectInTimeCount
(
@Param
(
"start"
)
Date
startYM
,
@Param
(
"endYM"
)
Date
endYM
);
}
src/main/java/com/patzn/cloud/service/lims/hmhj/service/IEntrustRecordService.java
View file @
bbf333e4
...
...
@@ -6,7 +6,9 @@ import com.patzn.cloud.commons.service.IBaseService;
import
com.patzn.cloud.service.hmhj.entity.EntrustRecord
;
import
java.util.Collection
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Map
;
/**
* 委托操作日志表 服务类
...
...
@@ -23,4 +25,12 @@ public interface IEntrustRecordService extends IBaseService<EntrustRecord> {
void
record
(
Long
[]
ids
,
String
from
,
String
to
,
int
type
,
Account
account
,
String
remark
);
void
record
(
Collection
<
Long
>
ids
,
String
from
,
String
to
,
int
type
,
Account
account
,
String
remark
);
Map
<
String
,
String
>
monthStatistic
(
Date
start
,
Date
end
);
/* 查询被退回过的报告数 */
Integer
selectRollBackCount
(
Date
startYM
,
Date
endYM
);
/* 查询不及时的报告数 */
Long
selectInTimeCount
(
Date
startYM
,
Date
endYM
);
}
src/main/java/com/patzn/cloud/service/lims/hmhj/service/impl/EntrustRecordServiceImpl.java
View file @
bbf333e4
package
com
.
patzn
.
cloud
.
service
.
lims
.
hmhj
.
service
.
impl
;
import
com.baomidou.mybatisplus.mapper.Condition
;
import
com.baomidou.mybatisplus.mapper.EntityWrapper
;
import
com.baomidou.mybatisplus.mapper.Wrapper
;
import
com.baomidou.mybatisplus.plugins.Page
;
import
com.baomidou.mybatisplus.toolkit.CollectionUtils
;
import
com.patzn.cloud.commons.api.RestAssert
;
import
com.patzn.cloud.commons.controller.Account
;
import
com.patzn.cloud.commons.service.impl.BaseServiceImpl
;
import
com.patzn.cloud.commons.toolkit.DateUtils
;
import
com.patzn.cloud.commons.toolkit.MapMergeUtils
;
import
com.patzn.cloud.service.hmhj.entity.EntrustRecord
;
import
com.patzn.cloud.service.hmhj.entity.EntrustReport
;
import
com.patzn.cloud.service.hmhj.enums.EntrustReportStatusEnum
;
import
com.patzn.cloud.service.lims.frame.entity.LmsFrameCheckPlan
;
import
com.patzn.cloud.service.lims.frame.entity.LmsFrameCheckReport
;
import
com.patzn.cloud.service.lims.frame.enums.ManageCheckEnum
;
import
com.patzn.cloud.service.lims.hmhj.mapper.EntrustRecordMapper
;
import
com.patzn.cloud.service.lims.hmhj.service.IEntrustRecordService
;
import
com.patzn.cloud.commons.service.impl.BaseServiceImpl
;
import
com.patzn.cloud.service.lims.hmhj.service.IEntrustReportService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
com.baomidou.mybatisplus.mapper.EntityWrapper
;
import
com.baomidou.mybatisplus.mapper.Wrapper
;
import
com.baomidou.mybatisplus.plugins.Page
;
import
java.
util.ArrayLis
t
;
import
java.
util.Arrays
;
import
java.util.
Collection
;
import
java.util.
List
;
import
java.
text.NumberForma
t
;
import
java.
text.SimpleDateFormat
;
import
java.util.
*
;
import
java.util.
stream.Collectors
;
/**
* 委托操作日志表 服务实现类
...
...
@@ -26,6 +36,9 @@ import java.util.List;
@Service
public
class
EntrustRecordServiceImpl
extends
BaseServiceImpl
<
EntrustRecordMapper
,
EntrustRecord
>
implements
IEntrustRecordService
{
@Autowired
private
IEntrustReportService
entrustReportService
;
@Override
public
Page
<
EntrustRecord
>
page
(
Page
<
EntrustRecord
>
page
,
EntrustRecord
entrustRecord
)
{
Wrapper
wrapper
=
new
EntityWrapper
<>(
entrustRecord
);
...
...
@@ -64,4 +77,104 @@ public class EntrustRecordServiceImpl extends BaseServiceImpl<EntrustRecordMappe
saveBatch
(
saveRecord
);
}
}
@Override
public
Map
<
String
,
String
>
monthStatistic
(
Date
start
,
Date
end
)
{
String
mistakeRateKey
=
"mistakeRate"
;
//报告出错率的key
String
inTimeRateKey
=
"inTimeRate"
;
//报告及时率的key
String
dealRateKey
=
"dealRate"
;
//客户投诉处理率的key
String
satisfactionRateKey
=
"satisfactionRate"
;
//客户满意率的key
Map
<
String
,
String
>
resMap
=
new
HashMap
<>();
if
(
start
.
after
(
end
))
{
return
null
;
}
/* 得到start-end时间段内所有的报告数量,然后分别得到各月的 */
SimpleDateFormat
format
=
new
SimpleDateFormat
(
"yyyy-MM"
);
Date
startYM
=
DateUtils
.
toDate
(
format
.
format
(
start
));
Date
endYM
=
DateUtils
.
toDate
(
format
.
format
(
end
));
List
<
EntrustReport
>
reports
=
entrustReportService
.
list
(
Condition
.
create
()
.
between
(
"report_make_time"
,
startYM
,
endYM
)
.
ne
(
"status"
,
EntrustReportStatusEnum
.
MAKING
));
/* 报告总量 */
int
total
=
reports
.
size
();
/* 退回过的报告数 */
Integer
rollBackCount
=
this
.
selectRollBackCount
(
startYM
,
endYM
);
/* 及时的报告数 */
Long
inTimeCount
=
this
.
selectInTimeCount
(
startYM
,
endYM
);
/* 计算百分比 */
String
mistakeRate
=
calculatePercent
(
rollBackCount
,
total
,
2
);
String
inTimeRate
=
calculatePercent
((
int
)
(
long
)
inTimeCount
,
total
,
2
);
String
dealRate
=
"100%"
;
String
satisfactionRate
=
"100%"
;
resMap
.
put
(
mistakeRateKey
,
mistakeRate
);
resMap
.
put
(
inTimeRateKey
,
inTimeRate
);
resMap
.
put
(
dealRateKey
,
dealRate
);
resMap
.
put
(
satisfactionRateKey
,
satisfactionRate
);
return
resMap
;
}
/* 查询被退回过的报告数 */
@Override
public
Integer
selectRollBackCount
(
Date
startYM
,
Date
endYM
)
{
return
baseMapper
.
selectRollBackCount
(
startYM
,
endYM
).
size
();
}
@Override
public
Long
selectInTimeCount
(
Date
startYM
,
Date
endYM
)
{
return
baseMapper
.
selectInTimeCount
(
startYM
,
endYM
);
}
private
Map
<
String
,
Map
<
String
,
Date
>>
getMonthStartDayEndDayMap
(
Date
start
,
Date
end
)
{
String
ym
=
"yyyy-MM"
;
String
ymd
=
"yyyy-MM-dd"
;
String
ymdt
=
"yyyy-MM-dd HH:mm:ss"
;
String
startTime
=
" 00:00:00"
;
String
endTime
=
" 23:59:59"
;
String
startKey
=
"begin"
;
String
endKey
=
"end"
;
String
startStr
=
DateUtils
.
toStrByFormatStr
(
start
,
ym
);
String
endStr
=
DateUtils
.
toStrByFormatStr
(
end
,
ym
);
Map
<
String
,
Map
<
String
,
Date
>>
map
=
new
HashMap
<>();
Calendar
cStart
=
Calendar
.
getInstance
();
cStart
.
setTime
(
DateUtils
.
toDateByFormatStr
(
startStr
,
ym
));
Calendar
cEnd
=
Calendar
.
getInstance
();
cEnd
.
setTime
(
DateUtils
.
toDateByFormatStr
(
endStr
,
ym
));
cEnd
.
add
(
Calendar
.
MONTH
,
1
);
// 加一个月,不超过这个月
while
(
cStart
.
before
(
cEnd
))
{
String
key
=
DateUtils
.
toStrByFormatStr
(
cStart
.
getTime
(),
ym
);
cStart
.
set
(
Calendar
.
DAY_OF_MONTH
,
1
);
//第一天
String
s
=
DateUtils
.
toStrByFormatStr
(
cStart
.
getTime
(),
ymd
)
+
startTime
;
cStart
.
set
(
Calendar
.
DAY_OF_MONTH
,
cStart
.
getActualMaximum
(
Calendar
.
DAY_OF_MONTH
));
//最后一天
String
e
=
DateUtils
.
toStrByFormatStr
(
cStart
.
getTime
(),
ymd
)
+
endTime
;
HashMap
<
String
,
Date
>
SEMap
=
new
HashMap
<>();
SEMap
.
put
(
startKey
,
DateUtils
.
toDateByFormatStr
(
s
,
ymdt
));
SEMap
.
put
(
endKey
,
DateUtils
.
toDateByFormatStr
(
e
,
ymdt
));
map
.
put
(
key
,
SEMap
);
cStart
.
add
(
Calendar
.
MONTH
,
1
);
}
return
map
;
}
/**
*
* @param numerator 分子
* @param denominator 分母
* @param digit 百分比的小数位数 设置精确到小数点后几位
* @return
*/
private
String
calculatePercent
(
int
numerator
,
int
denominator
,
int
digit
)
{
NumberFormat
numberFormat
=
NumberFormat
.
getInstance
();
// 设置精确到小数点后几位
numberFormat
.
setMaximumFractionDigits
(
digit
);
return
numberFormat
.
format
((
float
)
numerator
/
(
float
)
denominator
*
100
);
}
}
src/main/resources/mapper/hmhj/EntrustMapper.xml
View file @
bbf333e4
...
...
@@ -153,6 +153,7 @@
left join (
select s.company_id,s.entrust_id,max(s.name) "sample_name"
from entrust_sample s where s.deleted = 0
and s.type = 0
group by s.company_id, s.entrust_id
) s on s.entrust_id = e.id
WHERE e.deleted = 0 and s.entrust_id = e.id
...
...
src/main/resources/mapper/hmhj/EntrustRecordMapper.xml
View file @
bbf333e4
...
...
@@ -2,4 +2,22 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.patzn.cloud.service.lims.hmhj.mapper.EntrustRecordMapper"
>
<select
id=
"selectRollBackCount"
resultType=
"java.lang.Long"
>
select id
from entrust_record
where ctime between #{start} and #{end}
and position('退回至报告' in remark) > 0
group by id
</select>
<select
id=
"selectInTimeCount"
resultType=
"java.lang.Long"
>
WITH TIME AS
(SELECT COALESCE(report_issue_time,report_send_time,NULL) AS time1,
e.expect_send_time
FROM entrust_report er
JOIN entrust e ON e.id = er.entrust_id
WHERE report_make_time BETWEEN #{start} AND #{end})
SELECT sum(CASE WHEN time1 > expect_send_time THEN 0 ELSE 1 END) AS total
FROM time
</select>
</mapper>
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