Commit 367d1858 authored by qinhu's avatar qinhu

产值统计优化(减少查询;添加缓存)

parent df0614f4
package cn.wise.sc.cement.business.config; package cn.wise.sc.cement.business.config;
import com.alibaba.fastjson.parser.ParserConfig; 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.CacheManager;
import org.springframework.cache.annotation.EnableCaching; import org.springframework.cache.annotation.EnableCaching;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
...@@ -83,4 +88,17 @@ public class RedisCacheConfig { ...@@ -83,4 +88,17 @@ public class RedisCacheConfig {
return RedisCacheManager.builder(factory).cacheDefaults(redisCacheConfiguration).build(); 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);
// }
} }
...@@ -5,14 +5,12 @@ import cn.wise.sc.cement.business.model.BaseResponse; ...@@ -5,14 +5,12 @@ import cn.wise.sc.cement.business.model.BaseResponse;
import cn.wise.sc.cement.business.service.impl.WeiXinService; import cn.wise.sc.cement.business.service.impl.WeiXinService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.security.MessageDigest; import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException; import java.security.NoSuchAlgorithmException;
import java.util.Date; import java.util.Date;
......
...@@ -28,4 +28,5 @@ public class EntrustSample { ...@@ -28,4 +28,5 @@ public class EntrustSample {
private Integer teamGroupId; private Integer teamGroupId;
private Integer userId; private Integer userId;
private LocalDateTime finishTime; private LocalDateTime finishTime;
private String content;
} }
...@@ -103,7 +103,8 @@ public class NormProduction implements Serializable { ...@@ -103,7 +103,8 @@ public class NormProduction implements Serializable {
* 标准产值详情 * 标准产值详情
*/ */
@Data @Data
public static class NormProductionDetail { public static class NormProductionDetail implements Serializable{
private static final long serialVersionUID = 42L;
private String userName; private String userName;
private Integer distributionId; private Integer distributionId;
private Integer userId; private Integer userId;
......
...@@ -27,6 +27,7 @@ import java.util.Map; ...@@ -27,6 +27,7 @@ import java.util.Map;
@Mapper @Mapper
public interface SampleHandleMapper extends BaseMapper<SampleHandle> { public interface SampleHandleMapper extends BaseMapper<SampleHandle> {
List<SampleHandleVo> getSampleHandleList(@Param("params") Map<String, Object> params); List<SampleHandleVo> getSampleHandleList(@Param("params") Map<String, Object> params);
SampleHandleVo getDetail(Integer id); SampleHandleVo getDetail(Integer id);
...@@ -35,4 +36,6 @@ public interface SampleHandleMapper extends BaseMapper<SampleHandle> { ...@@ -35,4 +36,6 @@ public interface SampleHandleMapper extends BaseMapper<SampleHandle> {
LocalDateTime getNo1AcceptTime(Integer sampleId); LocalDateTime getNo1AcceptTime(Integer sampleId);
List<EntrustSample> getEntrustSample(); List<EntrustSample> getEntrustSample();
List<EntrustSample> getEntrustSampleOptimize(@Param("params") Map<String, Object> params);
} }
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
</sql> </sql>
<sql id="sampleDisWhere"> <sql id="sampleDisWhere">
<where> <where>
`status` > 5 `status` > 5 AND d.distribution_id IS NOT NULL
<if test="params.start_time != null and params.start_time != ''"> <if test="params.start_time != null and params.start_time != ''">
and d.finish_time <![CDATA[>=]]> #{params.start_time} and d.finish_time <![CDATA[>=]]> #{params.start_time}
</if> </if>
...@@ -88,13 +88,13 @@ ...@@ -88,13 +88,13 @@
<select id="getEntrustSample" <select id="getEntrustSample"
resultType="cn.wise.sc.cement.business.entity.EntrustSample"> 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 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
entrust e
RIGHT JOIN 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 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 ON g.entrust_id = e.id
WHERE e.status > 5
</select> </select>
<select id="getSampleDistribution" resultType="cn.wise.sc.cement.business.entity.EntrustSample"> <select id="getSampleDistribution" resultType="cn.wise.sc.cement.business.entity.EntrustSample">
......
...@@ -28,8 +28,21 @@ ...@@ -28,8 +28,21 @@
</if> </if>
</where> </where>
</sql> </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 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, select t.*, p.id as projectId, p.name as projectName, p.code as projectCode,
e.sample_num as sampleNum, e.sample_num as sampleNum,
...@@ -76,7 +89,7 @@ ...@@ -76,7 +89,7 @@
</select> </select>
<select id="getEntrustSample" resultType="cn.wise.sc.cement.business.entity.EntrustSample"> <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 LEFT JOIN
(SELECT * FROM sample) s (SELECT * FROM sample) s
ON e.id = s.entrust_id ON e.id = s.entrust_id
...@@ -85,6 +98,18 @@ ...@@ -85,6 +98,18 @@
ON h.sample_id = s.id ON h.sample_id = s.id
WHERE e.status > 4 AND h.id IS NOT NULL WHERE e.status > 4 AND h.id IS NOT NULL
</select> </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> </mapper>
...@@ -3,8 +3,10 @@ package cn.wise.sc.cement.business.service; ...@@ -3,8 +3,10 @@ package cn.wise.sc.cement.business.service;
import cn.wise.sc.cement.business.entity.EntrustSample; import cn.wise.sc.cement.business.entity.EntrustSample;
import cn.wise.sc.cement.business.entity.SampleHandle; import cn.wise.sc.cement.business.entity.SampleHandle;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* <p> * <p>
...@@ -18,8 +20,14 @@ public interface ISampleHandleService extends IService<SampleHandle> { ...@@ -18,8 +20,14 @@ public interface ISampleHandleService extends IService<SampleHandle> {
/** /**
* 获取处理信息 * 获取处理信息
*
* @return list * @return list
*/ */
List<EntrustSample> getEntrustSample(); List<EntrustSample> getEntrustSample();
/**
* 根据条件获取处理信息
* @param params 参数条件
* @return
*/
List<EntrustSample> getEntrustSampleOptimize(Map<String, Object> params);
} }
...@@ -14,11 +14,12 @@ import cn.wise.sc.cement.business.model.vo.ProductionVo; ...@@ -14,11 +14,12 @@ import cn.wise.sc.cement.business.model.vo.ProductionVo;
import cn.wise.sc.cement.business.model.vo.WorkloadStatisticsVo; import cn.wise.sc.cement.business.model.vo.WorkloadStatisticsVo;
import cn.wise.sc.cement.business.service.*; import cn.wise.sc.cement.business.service.*;
import cn.wise.sc.cement.business.util.ExcelUtil; import cn.wise.sc.cement.business.util.ExcelUtil;
import cn.wise.sc.cement.business.util.RedisUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
...@@ -28,7 +29,6 @@ import java.time.LocalDate; ...@@ -28,7 +29,6 @@ import java.time.LocalDate;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.ZoneId; import java.time.ZoneId;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.time.temporal.TemporalField;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
...@@ -50,7 +50,15 @@ import java.util.stream.Collectors; ...@@ -50,7 +50,15 @@ import java.util.stream.Collectors;
@Service @Service
public class NormProductionServiceImpl extends ServiceImpl<NormProductionMapper, NormProduction> implements INormProductionService { public class NormProductionServiceImpl extends ServiceImpl<NormProductionMapper, NormProduction> implements INormProductionService {
/**
* 标准产值配置信息 缓存
*/
final public Map<String, NormProduction> normProductionCache = new HashMap<>(); final public Map<String, NormProduction> normProductionCache = new HashMap<>();
/**
*
*/
final String CALCULATE_HANDLE = "CALCULATE_HANDLE";
final String CALCULATE_DISTRIBUTION = "CALCULATE_DISTRIBUTION";
final final
ISampleDistributionService iSampleDistributionService; ISampleDistributionService iSampleDistributionService;
...@@ -72,6 +80,8 @@ public class NormProductionServiceImpl extends ServiceImpl<NormProductionMapper, ...@@ -72,6 +80,8 @@ public class NormProductionServiceImpl extends ServiceImpl<NormProductionMapper,
INonStandardValueService iNonStandardValueService; INonStandardValueService iNonStandardValueService;
final final
INonStandardApplyService iNonStandardApplyService; INonStandardApplyService iNonStandardApplyService;
final
RedisUtil redisUtil;
public NormProductionServiceImpl(ISampleDistributionService iSampleDistributionService, public NormProductionServiceImpl(ISampleDistributionService iSampleDistributionService,
ISampleHandleService iSampleHandleService, ISampleHandleService iSampleHandleService,
...@@ -81,7 +91,7 @@ public class NormProductionServiceImpl extends ServiceImpl<NormProductionMapper, ...@@ -81,7 +91,7 @@ public class NormProductionServiceImpl extends ServiceImpl<NormProductionMapper,
ITeamGroupService iTeamGroupService, IHandleService iHandleService, ITeamGroupService iTeamGroupService, IHandleService iHandleService,
ISysPostService iSysPostService, ISysPostService iSysPostService,
INonStandardValueService iNonStandardValueService, INonStandardValueService iNonStandardValueService,
INonStandardApplyService iNonStandardApplyService) { INonStandardApplyService iNonStandardApplyService, RedisUtil redisUtil) {
this.iSampleDistributionService = iSampleDistributionService; this.iSampleDistributionService = iSampleDistributionService;
this.iSampleHandleService = iSampleHandleService; this.iSampleHandleService = iSampleHandleService;
this.iSysUserService = iSysUserService; this.iSysUserService = iSysUserService;
...@@ -92,6 +102,7 @@ public class NormProductionServiceImpl extends ServiceImpl<NormProductionMapper, ...@@ -92,6 +102,7 @@ public class NormProductionServiceImpl extends ServiceImpl<NormProductionMapper,
this.iSysPostService = iSysPostService; this.iSysPostService = iSysPostService;
this.iNonStandardValueService = iNonStandardValueService; this.iNonStandardValueService = iNonStandardValueService;
this.iNonStandardApplyService = iNonStandardApplyService; this.iNonStandardApplyService = iNonStandardApplyService;
this.redisUtil = redisUtil;
} }
@Override @Override
...@@ -299,11 +310,8 @@ public class NormProductionServiceImpl extends ServiceImpl<NormProductionMapper, ...@@ -299,11 +310,8 @@ public class NormProductionServiceImpl extends ServiceImpl<NormProductionMapper,
.filter(arg -> arg.getId().intValue() == sysUser.getPostId()). .filter(arg -> arg.getId().intValue() == sysUser.getPostId()).
findFirst().orElse(null); findFirst().orElse(null);
SysGroup sysGroup1 = sysGroups.stream()
.filter(arg -> arg.getId().intValue() == sysGroup.getId()).
findFirst().orElse(null);
productionStatistics.setPosition(sysPost == null ? "职务一" : sysPost.getName()); productionStatistics.setPosition(sysPost == null ? "职务一" : sysPost.getName());
productionStatistics.setGroupName(sysGroup == null ? "部门名" : sysGroup.getName()); productionStatistics.setGroupName(sysGroup.getName());
rts.add(productionStatistics); rts.add(productionStatistics);
} }
...@@ -360,7 +368,7 @@ public class NormProductionServiceImpl extends ServiceImpl<NormProductionMapper, ...@@ -360,7 +368,7 @@ public class NormProductionServiceImpl extends ServiceImpl<NormProductionMapper,
//计算分析任务单产值 //计算分析任务单产值
List<NormProduction.NormProductionDetail> sampleDistributionDetail = calculateSampleDistributionOptimize(params); List<NormProduction.NormProductionDetail> sampleDistributionDetail = calculateSampleDistributionOptimize(params);
//计算处理任务单产值 //计算处理任务单产值
List<NormProduction.NormProductionDetail> sampleHandleDetail = calculateSampleHandle(qwHan); List<NormProduction.NormProductionDetail> sampleHandleDetail = calculateSampleHandleOptimize(params);
//todo 计算校核任务单产值 //todo 计算校核任务单产值
// List<NormProduction.NormProductionDetail> sampleCheckTeamDetail = calculateSampleCheck(qwCT); // List<NormProduction.NormProductionDetail> sampleCheckTeamDetail = calculateSampleCheck(qwCT);
...@@ -405,6 +413,7 @@ public class NormProductionServiceImpl extends ServiceImpl<NormProductionMapper, ...@@ -405,6 +413,7 @@ public class NormProductionServiceImpl extends ServiceImpl<NormProductionMapper,
List<NonStandardValue> nonStandardValues = iNonStandardValueService.nonValue(startDate, endDate, groupId).getData(); List<NonStandardValue> nonStandardValues = iNonStandardValueService.nonValue(startDate, endDate, groupId).getData();
//标准产值 //标准产值
List<NormProductionStatistics> productionStatistics = this.normProductionStatistics(start, end, name, groupId).getData(); List<NormProductionStatistics> productionStatistics = this.normProductionStatistics(start, end, name, groupId).getData();
//以userId找关系 //以userId找关系
Set<String> userIds = new HashSet<>(); Set<String> userIds = new HashSet<>();
nonStandardValues.forEach(arg -> userIds.add(arg.getUserId() + "")); nonStandardValues.forEach(arg -> userIds.add(arg.getUserId() + ""));
...@@ -690,16 +699,21 @@ public class NormProductionServiceImpl extends ServiceImpl<NormProductionMapper, ...@@ -690,16 +699,21 @@ public class NormProductionServiceImpl extends ServiceImpl<NormProductionMapper,
/** /**
* 计算处理派发单每条数据的标准产值 * 计算处理派发单每条数据的标准产值
* (已有替代方法)
* *
* @param qwHan 统计条件 * @param qwHan 统计条件
* @return 处理任务详情 * @return 处理任务详情
* @Deprecated 已废弃
* @see NormProductionServiceImpl#calculateSampleHandleOptimize(Map)
*/ */
@Deprecated
private List<NormProduction.NormProductionDetail> calculateSampleHandle(QueryWrapper<SampleHandle> qwHan) { private List<NormProduction.NormProductionDetail> calculateSampleHandle(QueryWrapper<SampleHandle> qwHan) {
//计算处理的绩效 //计算处理的绩效
List<SampleHandle> sampleHandles = iSampleHandleService.list(qwHan); List<SampleHandle> sampleHandles = iSampleHandleService.list(qwHan);
List<EntrustSample> entrustSamples = iSampleHandleService.getEntrustSample(); List<EntrustSample> entrustSamples = iSampleHandleService.getEntrustSample();
List<NormProduction.NormProductionDetail> rts = new ArrayList<>(sampleHandles.size()); List<NormProduction.NormProductionDetail> rts = new ArrayList<>(sampleHandles.size());
List<Integer> handleIds = new ArrayList<>(); List<Integer> handleIds = new ArrayList<>();
//处理项id
sampleHandles.forEach(arg -> { sampleHandles.forEach(arg -> {
String idsStr = arg.getContent(); String idsStr = arg.getContent();
String[] split = idsStr.split("、"); String[] split = idsStr.split("、");
...@@ -764,8 +778,83 @@ public class NormProductionServiceImpl extends ServiceImpl<NormProductionMapper, ...@@ -764,8 +778,83 @@ public class NormProductionServiceImpl extends ServiceImpl<NormProductionMapper,
return rts; return rts;
} }
/**
* 计算处理派发单每条数据的标准产值
*
* @param params 统计条件
* @return 处理任务详情
*/
private List<NormProduction.NormProductionDetail> calculateSampleHandleOptimize(final Map<String, Object> params) {
if (!redisUtil.existsKey(CALCULATE_HANDLE)) {
//计算处理的绩效
List<EntrustSample> entrustSamples = iSampleHandleService.getEntrustSampleOptimize(params);
List<NormProduction.NormProductionDetail> rts = new ArrayList<>(entrustSamples.size());
List<Integer> handleIds = new ArrayList<>();
//处理项id
entrustSamples.forEach(arg -> {
String idsStr = arg.getContent();
String[] split = idsStr.split("、");
try {
for (String idStr : split) {
handleIds.add(Integer.parseInt(idStr));
}
} catch (NumberFormatException ex) {
throw new RuntimeException("处理项目的id传的有问题呀!");
}
});
if (handleIds.size() == 0) {
return new ArrayList<>();
}
List<Handle> handles = iHandleService.listByIds(handleIds);
for (EntrustSample entrustSample : entrustSamples) {
String content = entrustSample.getContent();
String[] split = content.split("、");
List<Integer> ids = new ArrayList<>(split.length);
try {
for (String idStr : split) {
ids.add(Integer.parseInt(idStr));
}
} catch (NumberFormatException ex) {
throw new RuntimeException("处理项目的id传的有问题呀!");
}
for (Integer handleId : ids) {
String key = handleId + ":" + "0";
//判断缓存是否存在
if (!normProductionCache.containsKey(key)) {
//初始化
initNormProductionCache();
}
NormProduction normProduction = normProductionCache.get(key);
Handle handle = handles.stream()
.filter(arg -> arg.getId().intValue() == handleId)
.findFirst().orElse(null);
if (normProduction == null || handle == null) {
//如果没有配置 标准产值设置 跳过不计算
continue;
}
NormProduction.NormProductionDetail productionDetail =
initNormProductionDetail(entrustSample, normProduction, normProduction.getAnalyseRate());
productionDetail.setUserId(entrustSample.getUserId());
productionDetail.setCheckTime(entrustSample.getFinishTime());
productionDetail.setDistributionId(entrustSample.getDistributionId());
productionDetail.setAssessId(handleId);
productionDetail.setGroupTeamName(handle.getName());
rts.add(productionDetail);
}
}
redisUtil.setListAll(CALCULATE_HANDLE, JSON.toJSONString(rts), 6000);
}
return JSON.parseArray(redisUtil.getString(CALCULATE_HANDLE) + "", NormProduction.NormProductionDetail.class);
}
/** /**
* 计算分析派发单每条数据的标准产值 * 计算分析派发单每条数据的标准产值
* 优化版本
* *
* @param param 统计条件 * @param param 统计条件
* @return 分析任务详情 * @return 分析任务详情
...@@ -773,6 +862,9 @@ public class NormProductionServiceImpl extends ServiceImpl<NormProductionMapper, ...@@ -773,6 +862,9 @@ public class NormProductionServiceImpl extends ServiceImpl<NormProductionMapper,
private List<NormProduction.NormProductionDetail> calculateSampleDistributionOptimize private List<NormProduction.NormProductionDetail> calculateSampleDistributionOptimize
(Map<String, Object> param) { (Map<String, Object> param) {
if (!redisUtil.existsKey(CALCULATE_DISTRIBUTION)) {
List<EntrustSample> entrustSamples = iSampleDistributionService.getSampleDistribution(param); List<EntrustSample> entrustSamples = iSampleDistributionService.getSampleDistribution(param);
List<NormProduction.NormProductionDetail> rts = new ArrayList<>(entrustSamples.size()); List<NormProduction.NormProductionDetail> rts = new ArrayList<>(entrustSamples.size());
...@@ -809,7 +901,11 @@ public class NormProductionServiceImpl extends ServiceImpl<NormProductionMapper, ...@@ -809,7 +901,11 @@ public class NormProductionServiceImpl extends ServiceImpl<NormProductionMapper,
productionDetail.setGroupTeamName(teamGroup.getName()); productionDetail.setGroupTeamName(teamGroup.getName());
rts.add(productionDetail); rts.add(productionDetail);
} }
return rts; redisUtil.setListAll(CALCULATE_DISTRIBUTION, JSON.toJSONString(rts), 6000);
}
return JSON.parseArray(redisUtil.getString(CALCULATE_DISTRIBUTION) + "", NormProduction.NormProductionDetail.class);
} }
/** /**
......
...@@ -5,10 +5,12 @@ import cn.wise.sc.cement.business.entity.SampleHandle; ...@@ -5,10 +5,12 @@ import cn.wise.sc.cement.business.entity.SampleHandle;
import cn.wise.sc.cement.business.mapper.SampleHandleMapper; import cn.wise.sc.cement.business.mapper.SampleHandleMapper;
import cn.wise.sc.cement.business.service.ISampleHandleService; import cn.wise.sc.cement.business.service.ISampleHandleService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* <p> * <p>
...@@ -28,4 +30,9 @@ public class SampleHandleServiceImpl extends ServiceImpl<SampleHandleMapper, Sam ...@@ -28,4 +30,9 @@ public class SampleHandleServiceImpl extends ServiceImpl<SampleHandleMapper, Sam
public List<EntrustSample> getEntrustSample() { public List<EntrustSample> getEntrustSample() {
return sampleHandleMapper.getEntrustSample(); return sampleHandleMapper.getEntrustSample();
} }
@Override
public List<EntrustSample> getEntrustSampleOptimize(Map<String, Object> params) {
return sampleHandleMapper.getEntrustSampleOptimize(params);
}
} }
...@@ -167,15 +167,14 @@ public class RedisUtil { ...@@ -167,15 +167,14 @@ public class RedisUtil {
* 将list集合放入List缓存,并设置时间 * 将list集合放入List缓存,并设置时间
* *
* @param key key值 * @param key key值
* @param value 数据的值 * @param listStr 数据的值
* @param time 缓存的时间 * @param time 缓存的时间
* @return true插入成功,否则返回异常信息 * @return true插入成功,否则返回异常信息
*/ */
public Boolean setListAll(String key, Object value, long time) { public Boolean setListAll(String key, String listStr, long time) {
try { try {
if (time > 0) { if (time > 0) {
redisTemplate.opsForList().rightPushAll(key, value); setString(key,listStr,time);
this.expire(key, time);
return true; return true;
} }
return false; return false;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment