liriming
2024-11-26 5b952f77058a9da5af5e143a6c2c7ba195aa736d
提交 | 用户 | 时间
7fd198 1 package com.iailab.module.model.mcs.pre.service.impl;
2
3 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
5c6007 4 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
7fd198 5 import com.iailab.module.model.mcs.pre.dao.MmPredictModelDao;
6 import com.iailab.module.model.mcs.pre.entity.MmPredictModelEntity;
7 import com.iailab.module.model.mcs.pre.service.MmPredictModelService;
5c6007 8 import org.springframework.beans.factory.annotation.Autowired;
7fd198 9 import org.springframework.stereotype.Service;
10 import org.springframework.util.CollectionUtils;
11
12 import java.math.BigDecimal;
13 import java.util.List;
14 import java.util.Map;
15 import java.util.UUID;
91343d 16 import java.util.concurrent.ConcurrentHashMap;
7fd198 17
18 /**
19  * @author PanZhibao
20  * @date 2021年04月27日 11:30
21  */
5c6007 22 @Service
L 23 public class MmPredictModelServiceImpl extends ServiceImpl<MmPredictModelDao, MmPredictModelEntity> implements MmPredictModelService {
7fd198 24
5c6007 25     @Autowired
L 26     private MmPredictModelDao mmPredictModelDao;
91343d 27
28     private static Map<String, MmPredictModelEntity> modelEntityMap = new ConcurrentHashMap<>();
373ab1 29
30     private static Map<String, MmPredictModelEntity> activeModelMap = new ConcurrentHashMap<>();
91343d 31
7fd198 32     @Override
33     public void savePredictModel(MmPredictModelEntity predictModel) {
34         predictModel.setId(UUID.randomUUID().toString());
5c6007 35         mmPredictModelDao.insert(predictModel);
91343d 36         clearCache();
7fd198 37     }
38
39     @Override
40     public void update(MmPredictModelEntity predictModel) {
41         this.updateById(predictModel);
91343d 42         clearCache();
43     }
44
45     @Override
46     public MmPredictModelEntity getInfoFromCatch(String id) {
47         if (!modelEntityMap.containsKey(id)) {
48             MmPredictModelEntity modelEntity = getInfo(id);
49             if (modelEntity != null) {
50                 modelEntityMap.put(id, modelEntity);
51             }
52         }
53         return modelEntityMap.get(id);
54     }
55
56     @Override
57     public void clearCache() {
58         modelEntityMap.clear();
373ab1 59         activeModelMap.clear();
7fd198 60     }
61
62     @Override
63     public MmPredictModelEntity getInfo(String id) {
5c6007 64         return mmPredictModelDao.selectById(id);
7fd198 65     }
66
67     @Override
68     public BigDecimal getSampleLength(String id) {
69         BigDecimal result = BigDecimal.ZERO;
5c6007 70         List<MmPredictModelEntity> list = mmPredictModelDao.getSampleLength(id);
7fd198 71         if (CollectionUtils.isEmpty(list)) {
72             return result;
73         }
74         result = list.get(0).getPredictsamplength();
75
76         return result;
77     }
78
79     public void deleteBatch(String[] itemIds) {
80         QueryWrapper<MmPredictModelEntity> queryWrapper = new QueryWrapper<>();
81         queryWrapper.in("itemid", itemIds);
5c6007 82         mmPredictModelDao.delete(queryWrapper);
91343d 83         clearCache();
7fd198 84     }
85
86     public MmPredictModelEntity getByItemid(String itemid) {
87         QueryWrapper<MmPredictModelEntity> queryWrapper = new QueryWrapper<>();
88         queryWrapper.eq("itemid", itemid);
5c6007 89         List<MmPredictModelEntity> list = mmPredictModelDao.selectList(queryWrapper);
7fd198 90         if (CollectionUtils.isEmpty(list)) {
91             return new MmPredictModelEntity();
92         }
93         return list.get(0);
94     }
95
96     @Override
97     public List<MmPredictModelEntity> getNoSettingmapPredictModel(Map<String, Object> params) {
5c6007 98         return mmPredictModelDao.getNoSettingmapPredictModel(params);
7fd198 99     }
100
101     @Override
373ab1 102     public MmPredictModelEntity getActiveModelByItemId(String itemId) {
103         if (activeModelMap.containsKey(itemId)) {
104             return activeModelMap.get(itemId);
105         }
106         List<MmPredictModelEntity> list = mmPredictModelDao.getActiveModelByItemId(itemId);
107         if (CollectionUtils.isEmpty(list)) {
108             return null;
109         }
110         activeModelMap.put(itemId, list.get(0));
111         return activeModelMap.get(itemId);
7fd198 112     }
113 }