Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
T
tianjin-cement
Project
Project
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
竹天卫
tianjin-cement
Commits
367d1858
Commit
367d1858
authored
Oct 26, 2020
by
qinhu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
产值统计优化(减少查询;添加缓存)
parent
df0614f4
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
283 additions
and
127 deletions
+283
-127
RedisCacheConfig.java
...a/cn/wise/sc/cement/business/config/RedisCacheConfig.java
+63
-45
WeiXinController.java
.../wise/sc/cement/business/controller/WeiXinController.java
+0
-2
EntrustSample.java
...java/cn/wise/sc/cement/business/entity/EntrustSample.java
+10
-9
NormProduction.java
...ava/cn/wise/sc/cement/business/entity/NormProduction.java
+2
-1
SampleHandleMapper.java
...cn/wise/sc/cement/business/mapper/SampleHandleMapper.java
+5
-2
SampleDistributionMapper.xml
...c/cement/business/mapper/xml/SampleDistributionMapper.xml
+8
-8
SampleHandleMapper.xml
...wise/sc/cement/business/mapper/xml/SampleHandleMapper.xml
+27
-2
ISampleHandleService.java
...wise/sc/cement/business/service/ISampleHandleService.java
+15
-7
NormProductionServiceImpl.java
...ment/business/service/impl/NormProductionServiceImpl.java
+136
-40
SampleHandleServiceImpl.java
...cement/business/service/impl/SampleHandleServiceImpl.java
+14
-7
RedisUtil.java
.../main/java/cn/wise/sc/cement/business/util/RedisUtil.java
+3
-4
No files found.
cement-business/src/main/java/cn/wise/sc/cement/business/config/RedisCacheConfig.java
View file @
367d1858
package
cn
.
wise
.
sc
.
cement
.
business
.
config
;
import
com.alibaba.fastjson.parser.ParserConfig
;
import
org.redisson.Redisson
;
import
org.redisson.api.RedissonClient
;
import
org.redisson.config.Config
;
import
org.redisson.config.SingleServerConfig
;
import
org.redisson.config.TransportMode
;
import
org.springframework.cache.CacheManager
;
import
org.springframework.cache.annotation.EnableCaching
;
import
org.springframework.context.annotation.Bean
;
...
...
@@ -22,11 +27,11 @@ import java.time.Duration;
@EnableCaching
public
class
RedisCacheConfig
{
private
RedisConnectionFactory
redisConnectionFactory
;
private
RedisConnectionFactory
redisConnectionFactory
;
public
RedisCacheConfig
(
RedisConnectionFactory
redisConnectionFactory
)
{
this
.
redisConnectionFactory
=
redisConnectionFactory
;
}
public
RedisCacheConfig
(
RedisConnectionFactory
redisConnectionFactory
)
{
this
.
redisConnectionFactory
=
redisConnectionFactory
;
}
// @Bean
// public Jedis jedis() {
...
...
@@ -38,49 +43,62 @@ public class RedisCacheConfig {
// return jedisPool.getResource();
// }
/**
* 覆盖默认的配置
*
* @return RedisTemplate
*/
@Bean
public
RedisTemplate
<
String
,
Object
>
redisTemplate
()
{
RedisTemplate
<
String
,
Object
>
template
=
new
RedisTemplate
();
template
.
setConnectionFactory
(
redisConnectionFactory
);
StringRedisSerializer
stringRedisSerializer
=
new
StringRedisSerializer
();
FastJsonRedisSerializer
fastJsonRedisSerializer
=
new
FastJsonRedisSerializer
(
Object
.
class
);
/**
* 覆盖默认的配置
*
* @return RedisTemplate
*/
@Bean
public
RedisTemplate
<
String
,
Object
>
redisTemplate
()
{
RedisTemplate
<
String
,
Object
>
template
=
new
RedisTemplate
();
template
.
setConnectionFactory
(
redisConnectionFactory
);
StringRedisSerializer
stringRedisSerializer
=
new
StringRedisSerializer
();
FastJsonRedisSerializer
fastJsonRedisSerializer
=
new
FastJsonRedisSerializer
(
Object
.
class
);
// 设置value的序列化规则和key的序列化规则
template
.
setKeySerializer
(
stringRedisSerializer
);
template
.
setValueSerializer
(
fastJsonRedisSerializer
);
template
.
setHashKeySerializer
(
stringRedisSerializer
);
template
.
setHashValueSerializer
(
fastJsonRedisSerializer
);
template
.
setDefaultSerializer
(
fastJsonRedisSerializer
);
template
.
afterPropertiesSet
();
return
template
;
}
// 设置value的序列化规则和key的序列化规则
template
.
setKeySerializer
(
stringRedisSerializer
);
template
.
setValueSerializer
(
fastJsonRedisSerializer
);
template
.
setHashKeySerializer
(
stringRedisSerializer
);
template
.
setHashValueSerializer
(
fastJsonRedisSerializer
);
template
.
setDefaultSerializer
(
fastJsonRedisSerializer
);
template
.
afterPropertiesSet
();
return
template
;
}
/**
* 解决注解方式存放到redis中的值是乱码的情况
*
* @param factory
* @return CacheManager
*/
@Bean
public
CacheManager
cacheManager
(
RedisConnectionFactory
factory
)
{
RedisSerializer
<
String
>
redisSerializer
=
new
StringRedisSerializer
();
FastJsonRedisSerializer
fastJsonRedisSerializer
=
new
FastJsonRedisSerializer
(
Object
.
class
);
/**
* 解决注解方式存放到redis中的值是乱码的情况
*
* @param factory
* @return CacheManager
*/
@Bean
public
CacheManager
cacheManager
(
RedisConnectionFactory
factory
)
{
RedisSerializer
<
String
>
redisSerializer
=
new
StringRedisSerializer
();
FastJsonRedisSerializer
fastJsonRedisSerializer
=
new
FastJsonRedisSerializer
(
Object
.
class
);
// 配置注解方式的序列化
RedisCacheConfiguration
config
=
RedisCacheConfiguration
.
defaultCacheConfig
();
RedisCacheConfiguration
redisCacheConfiguration
=
config
.
serializeKeysWith
(
RedisSerializationContext
.
SerializationPair
.
fromSerializer
(
redisSerializer
))
.
serializeValuesWith
(
RedisSerializationContext
.
SerializationPair
.
fromSerializer
(
fastJsonRedisSerializer
))
//配置注解默认的过期时间
.
entryTtl
(
Duration
.
ofDays
(
1
));
// 加入白名单 https://github.com/alibaba/fastjson/wiki/enable_autotype
ParserConfig
.
getGlobalInstance
().
addAccept
(
"cn.wise"
);
return
RedisCacheManager
.
builder
(
factory
).
cacheDefaults
(
redisCacheConfiguration
).
build
();
}
// 配置注解方式的序列化
RedisCacheConfiguration
config
=
RedisCacheConfiguration
.
defaultCacheConfig
();
RedisCacheConfiguration
redisCacheConfiguration
=
config
.
serializeKeysWith
(
RedisSerializationContext
.
SerializationPair
.
fromSerializer
(
redisSerializer
))
.
serializeValuesWith
(
RedisSerializationContext
.
SerializationPair
.
fromSerializer
(
fastJsonRedisSerializer
))
//配置注解默认的过期时间
.
entryTtl
(
Duration
.
ofDays
(
1
));
// 加入白名单 https://github.com/alibaba/fastjson/wiki/enable_autotype
ParserConfig
.
getGlobalInstance
().
addAccept
(
"cn.wise"
);
return
RedisCacheManager
.
builder
(
factory
).
cacheDefaults
(
redisCacheConfiguration
).
build
();
}
// @Bean
// public RedissonClient redissonClient() {
// Config config = new Config();
// config.useSingleServer()
// .setAddress("redis://127.0.0.1:6379")
// .setConnectionMinimumIdleSize(10)
// .setConnectionPoolSize(50)
// .setPingConnectionInterval(60)
// .setIdleConnectionTimeout(6000)
// .setConnectTimeout(10000)
// .setTimeout(3000);
// return Redisson.create(config);
// }
}
cement-business/src/main/java/cn/wise/sc/cement/business/controller/WeiXinController.java
View file @
367d1858
...
...
@@ -5,14 +5,12 @@ import cn.wise.sc.cement.business.model.BaseResponse;
import
cn.wise.sc.cement.business.service.impl.WeiXinService
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
org.apache.commons.lang3.StringUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
java.security.MessageDigest
;
import
java.security.NoSuchAlgorithmException
;
import
java.util.Date
;
...
...
cement-business/src/main/java/cn/wise/sc/cement/business/entity/EntrustSample.java
View file @
367d1858
...
...
@@ -19,13 +19,14 @@ import java.util.Date;
@EqualsAndHashCode
(
callSuper
=
false
)
@Accessors
(
chain
=
true
)
public
class
EntrustSample
{
private
String
projectName
;
private
Integer
entrustId
;
private
String
entrustCode
;
private
String
sampleName
;
private
Integer
sampleId
;
private
Integer
distributionId
;
private
Integer
teamGroupId
;
private
Integer
userId
;
private
LocalDateTime
finishTime
;
private
String
projectName
;
private
Integer
entrustId
;
private
String
entrustCode
;
private
String
sampleName
;
private
Integer
sampleId
;
private
Integer
distributionId
;
private
Integer
teamGroupId
;
private
Integer
userId
;
private
LocalDateTime
finishTime
;
private
String
content
;
}
cement-business/src/main/java/cn/wise/sc/cement/business/entity/NormProduction.java
View file @
367d1858
...
...
@@ -103,7 +103,8 @@ public class NormProduction implements Serializable {
* 标准产值详情
*/
@Data
public
static
class
NormProductionDetail
{
public
static
class
NormProductionDetail
implements
Serializable
{
private
static
final
long
serialVersionUID
=
42L
;
private
String
userName
;
private
Integer
distributionId
;
private
Integer
userId
;
...
...
cement-business/src/main/java/cn/wise/sc/cement/business/mapper/SampleHandleMapper.java
View file @
367d1858
...
...
@@ -18,7 +18,7 @@ import java.util.Map;
/**
* <p>
* Mapper 接口
*
Mapper 接口
* </p>
*
* @author ztw
...
...
@@ -27,6 +27,7 @@ import java.util.Map;
@Mapper
public
interface
SampleHandleMapper
extends
BaseMapper
<
SampleHandle
>
{
List
<
SampleHandleVo
>
getSampleHandleList
(
@Param
(
"params"
)
Map
<
String
,
Object
>
params
);
SampleHandleVo
getDetail
(
Integer
id
);
...
...
@@ -34,5 +35,7 @@ public interface SampleHandleMapper extends BaseMapper<SampleHandle> {
@Select
(
"select MIN(accept_time) from sample_handle where sample_id = #{sampleId} and status>0"
)
LocalDateTime
getNo1AcceptTime
(
Integer
sampleId
);
List
<
EntrustSample
>
getEntrustSample
();
List
<
EntrustSample
>
getEntrustSample
();
List
<
EntrustSample
>
getEntrustSampleOptimize
(
@Param
(
"params"
)
Map
<
String
,
Object
>
params
);
}
cement-business/src/main/java/cn/wise/sc/cement/business/mapper/xml/SampleDistributionMapper.xml
View file @
367d1858
...
...
@@ -25,7 +25,7 @@
</sql>
<sql
id=
"sampleDisWhere"
>
<where>
`status` > 5
`status` > 5
AND d.distribution_id IS NOT NULL
<if
test=
"params.start_time != null and params.start_time != ''"
>
and d.finish_time
<![CDATA[>=]]>
#{params.start_time}
</if>
...
...
@@ -77,24 +77,24 @@
<select
id=
"getSampleCheckGroupList"
resultType=
"cn.wise.sc.cement.business.model.vo.SampleCheckGroupVo"
>
select sd.team_group_id as teamGroupId, tg.name as teamGroupName,
sd.user_id as userId, su.name as userName
sd.user_id as userId, su.name as userName
from sample_distribution sd
left join team_group tg on tg.id = sd.team_group_id
left join sys_user su on su.id = sd.user_id
where sd.sample_id = #{sampleId}
left join sys_user su on su.id = sd.user_id
where sd.sample_id =
#{sampleId}
group by sd.team_group_id,sd.user_id
order by sd.team_group_id
</select>
<select
id=
"getEntrustSample"
resultType=
"cn.wise.sc.cement.business.entity.EntrustSample"
>
SELECT e.project_name,e.entrust_code,g.distribution_id,g.entrust_id,g.`sample_name`,g.user_id,g.sample_id FROM
entrust e
SELECT e.project_name,e.entrust_code,g.distribution_id,g.entrust_id,g.`sample_name`,g.user_id,g.sample_id,e.`status` FROM entrust e
RIGHT JOIN
(SELECT s.`name` as sample_name,d.distribution_id,s.entrust_id,d.user_id,s.id as sample_id FROM sample s
(SELECT s.`name` as sample_name,d.distribution_id,s.entrust_id,d.user_id,s.id as sample_id FROM sample s
RIGHT JOIN
(SELECT user_id, id as distribution_id,sample_id
FROM sample_distribution ) d on s.id = d.sample_id ) g
(SELECT user_id, id as distribution_id,sample_id
FROM sample_distribution ) d on s.id = d.sample_id ) g
ON g.entrust_id = e.id
WHERE e.status > 5
</select>
<select
id=
"getSampleDistribution"
resultType=
"cn.wise.sc.cement.business.entity.EntrustSample"
>
...
...
cement-business/src/main/java/cn/wise/sc/cement/business/mapper/xml/SampleHandleMapper.xml
View file @
367d1858
...
...
@@ -28,8 +28,21 @@
</if>
</where>
</sql>
<sql
id=
"sampleDisWhere"
>
<where>
e.status > 4 AND h.id IS NOT NULL
<if
test=
"params.start_time != null and params.start_time != ''"
>
and h.finish_time
<![CDATA[>=]]>
#{params.start_time}
</if>
<if
test=
"params.end_time != null and params.end_time != ''"
>
and h.finish_time
<![CDATA[<=]]>
#{params.end_time}
</if>
<if
test=
"params.user_id != null and params.user_id != ''"
>
and h.user_id = #{params.user_id}
</if>
</where>
</sql>
<select
id=
"getSampleHandleList"
resultType=
"cn.wise.sc.cement.business.model.vo.SampleHandleVo"
>
select t.*, p.id as projectId, p.name as projectName, p.code as projectCode,
e.sample_num as sampleNum,
...
...
@@ -76,7 +89,7 @@
</select>
<select
id=
"getEntrustSample"
resultType=
"cn.wise.sc.cement.business.entity.EntrustSample"
>
SELECT project_name,entrust_code,h.id,s.entrust_id,h.user_id,s.id as sample_id,e.status FROM entrust e
SELECT project_name,entrust_code,h.id
as distribution_id
,s.entrust_id,h.user_id,s.id as sample_id,e.status FROM entrust e
LEFT JOIN
(SELECT * FROM sample) s
ON e.id = s.entrust_id
...
...
@@ -85,6 +98,18 @@
ON h.sample_id = s.id
WHERE e.status > 4 AND h.id IS NOT NULL
</select>
<select
id=
"getEntrustSampleOptimize"
resultType=
"cn.wise.sc.cement.business.entity.EntrustSample"
>
SELECT project_name,entrust_code,h.id,s.entrust_id,h.user_id,s.id as sample_id,e.status,h.content,h.finish_time
FROM entrust e
LEFT JOIN
(SELECT * FROM sample) s
ON e.id = s.entrust_id
LEFT JOIN
(SELECT * FROM sample_handle) h
ON h.sample_id = s.id
<include
refid=
"sampleDisWhere"
/>
</select>
</mapper>
cement-business/src/main/java/cn/wise/sc/cement/business/service/ISampleHandleService.java
View file @
367d1858
...
...
@@ -3,12 +3,14 @@ package cn.wise.sc.cement.business.service;
import
cn.wise.sc.cement.business.entity.EntrustSample
;
import
cn.wise.sc.cement.business.entity.SampleHandle
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
org.apache.ibatis.annotations.Param
;
import
java.util.List
;
import
java.util.Map
;
/**
* <p>
* 服务类
*
服务类
* </p>
*
* @author ztw
...
...
@@ -16,10 +18,16 @@ import java.util.List;
*/
public
interface
ISampleHandleService
extends
IService
<
SampleHandle
>
{
/**
* 获取处理信息
*
* @return list
*/
List
<
EntrustSample
>
getEntrustSample
();
/**
* 获取处理信息
* @return list
*/
List
<
EntrustSample
>
getEntrustSample
();
/**
* 根据条件获取处理信息
* @param params 参数条件
* @return
*/
List
<
EntrustSample
>
getEntrustSampleOptimize
(
Map
<
String
,
Object
>
params
);
}
cement-business/src/main/java/cn/wise/sc/cement/business/service/impl/NormProductionServiceImpl.java
View file @
367d1858
This diff is collapsed.
Click to expand it.
cement-business/src/main/java/cn/wise/sc/cement/business/service/impl/SampleHandleServiceImpl.java
View file @
367d1858
...
...
@@ -5,14 +5,16 @@ import cn.wise.sc.cement.business.entity.SampleHandle;
import
cn.wise.sc.cement.business.mapper.SampleHandleMapper
;
import
cn.wise.sc.cement.business.service.ISampleHandleService
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
org.apache.ibatis.annotations.Param
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.List
;
import
java.util.Map
;
/**
* <p>
* 服务实现类
*
服务实现类
* </p>
*
* @author ztw
...
...
@@ -21,11 +23,16 @@ import java.util.List;
@Service
public
class
SampleHandleServiceImpl
extends
ServiceImpl
<
SampleHandleMapper
,
SampleHandle
>
implements
ISampleHandleService
{
@Autowired
SampleHandleMapper
sampleHandleMapper
;
@Autowired
SampleHandleMapper
sampleHandleMapper
;
@Override
public
List
<
EntrustSample
>
getEntrustSample
()
{
return
sampleHandleMapper
.
getEntrustSample
();
}
@Override
public
List
<
EntrustSample
>
getEntrustSample
()
{
return
sampleHandleMapper
.
getEntrustSample
();
}
@Override
public
List
<
EntrustSample
>
getEntrustSampleOptimize
(
Map
<
String
,
Object
>
params
)
{
return
sampleHandleMapper
.
getEntrustSampleOptimize
(
params
);
}
}
cement-business/src/main/java/cn/wise/sc/cement/business/util/RedisUtil.java
View file @
367d1858
...
...
@@ -167,15 +167,14 @@ public class RedisUtil {
* 将list集合放入List缓存,并设置时间
*
* @param key key值
* @param
value
数据的值
* @param
listStr
数据的值
* @param time 缓存的时间
* @return true插入成功,否则返回异常信息
*/
public
Boolean
setListAll
(
String
key
,
Object
value
,
long
time
)
{
public
Boolean
setListAll
(
String
key
,
String
listStr
,
long
time
)
{
try
{
if
(
time
>
0
)
{
redisTemplate
.
opsForList
().
rightPushAll
(
key
,
value
);
this
.
expire
(
key
,
time
);
setString
(
key
,
listStr
,
time
);
return
true
;
}
return
false
;
...
...
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