|
|
|
|
@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; |
|
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
|
|
|
|
import lombok.RequiredArgsConstructor; |
|
|
|
|
import org.apache.ibatis.annotations.Param; |
|
|
|
|
import org.beetl.core.util.ArrayMap; |
|
|
|
|
import org.springblade.common.cache.DictBizCache; |
|
|
|
|
import org.springblade.common.constant.BusinessConstant; |
|
|
|
|
import org.springblade.common.utils.CommonDateUtil; |
|
|
|
|
@ -17,6 +18,7 @@ import org.springblade.modules.business.dto.ApmRecordCountDTO; |
|
|
|
|
import org.springblade.modules.business.entity.ApmConfig; |
|
|
|
|
import org.springblade.modules.business.entity.ApmRecord; |
|
|
|
|
import org.springblade.modules.business.mapper.ApmConfigMapper; |
|
|
|
|
import org.springblade.modules.business.mapper.ApmRecordMapper; |
|
|
|
|
import org.springblade.modules.business.service.IApmConfigService; |
|
|
|
|
import org.springblade.modules.business.service.IApmRecordService; |
|
|
|
|
import org.springblade.modules.business.vo.ApmConfigListVO; |
|
|
|
|
@ -38,17 +40,27 @@ public class ApmConfigServiceImpl extends BaseServiceImpl<ApmConfigMapper, ApmCo |
|
|
|
|
|
|
|
|
|
private final IApmRecordService recordService; |
|
|
|
|
|
|
|
|
|
private final ApmRecordMapper recordMapper; |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public Map<String, List<String>> alreadyConfigDay(Long createDept, String startTime, String endTime) { |
|
|
|
|
public Map<String, Map<String, Object>> alreadyConfigDay(Long createDept, String startTime, String endTime) { |
|
|
|
|
// 获取已配置的放号天列表
|
|
|
|
|
List<Map<String, Object>> days = baseMapper.alreadyConfigDayList(createDept, startTime, endTime); |
|
|
|
|
|
|
|
|
|
// 将获取到的天转换为[{mon:1, days:{1, 2, 3}},{mon:2, days:{1, 2, 3}}]格式
|
|
|
|
|
Map<String, List<String>> monDaysMap = new HashMap<>(); |
|
|
|
|
// 获取已预约的统计
|
|
|
|
|
List<ApmRecordCountDTO> apmRecords = recordMapper.countAllAmpNumByDept(createDept, startTime, endTime); |
|
|
|
|
Map<String, Integer> apmRecordsMap = apmRecords.stream().collect(Collectors.toMap(e -> e.getApmDay(), e -> e.getApmNum())); |
|
|
|
|
|
|
|
|
|
Map<String, Map<String, Object>> monDaysMap = new HashMap<>(); |
|
|
|
|
for (Map<String, Object> day : days) { |
|
|
|
|
String mon = ((String) day.get("apmDay")).split("-")[1]; |
|
|
|
|
List<String> daysItem = monDaysMap.containsKey(mon) ? monDaysMap.get(mon) : new ArrayList<>(); |
|
|
|
|
daysItem.add((String) day.get("apmDay")); |
|
|
|
|
monDaysMap.put(mon, daysItem); |
|
|
|
|
int allNum = (Integer) day.get("allNum"); |
|
|
|
|
Map<String, Object> daysItemMap = new ArrayMap<>(); |
|
|
|
|
|
|
|
|
|
int apmCount = apmRecordsMap.containsKey(day) ? apmRecordsMap.get(day) : 0; |
|
|
|
|
daysItemMap.put("date", day); |
|
|
|
|
daysItemMap.put("enableApm", apmCount < allNum ? BusinessConstant.BOOLEAN_STR_TRUE : BusinessConstant.BOOLEAN_STR_FALSE); |
|
|
|
|
monDaysMap.put(mon, daysItemMap); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return monDaysMap; |
|
|
|
|
@ -100,10 +112,16 @@ public class ApmConfigServiceImpl extends BaseServiceImpl<ApmConfigMapper, ApmCo |
|
|
|
|
.eq(ApmConfig::getCreateDept, createDept) |
|
|
|
|
.eq(ApmConfig::getApmDay, apmDay)); |
|
|
|
|
Map<String, List<ApmConfig>> configProjectMap = new HashMap<>(); |
|
|
|
|
Map<String, Integer> totalApmNumberMap = new HashMap<>(); |
|
|
|
|
allConfigList.forEach(config -> { |
|
|
|
|
List<ApmConfig> itemList = configProjectMap.containsKey(config.getProject()) ? configProjectMap.get(config.getProject()) : new ArrayList<>(); |
|
|
|
|
itemList.add(config); |
|
|
|
|
configProjectMap.put(config.getProject(), itemList); |
|
|
|
|
|
|
|
|
|
// 总放号数
|
|
|
|
|
int totalNum = totalApmNumberMap.containsKey(config.getProject()) ? totalApmNumberMap.get(config.getProject()) : 0; |
|
|
|
|
totalNum += config.getNumberNum(); |
|
|
|
|
totalApmNumberMap.put(config.getProject(), totalNum); |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
// 获取用户在该天预约记录
|
|
|
|
|
@ -114,19 +132,12 @@ public class ApmConfigServiceImpl extends BaseServiceImpl<ApmConfigMapper, ApmCo |
|
|
|
|
|
|
|
|
|
// 获取该天的所有预约统计
|
|
|
|
|
List<ApmRecordCountDTO> apmCountList = recordService.countAmpNum(createDept, apmDay); |
|
|
|
|
Map<String, Integer> apmCountMap = new HashMap<>(); |
|
|
|
|
apmCountList.forEach(count -> { |
|
|
|
|
int apmNum = apmCountMap.containsKey(count.getProject()) ? apmCountMap.get(count.getProject()) : 0; |
|
|
|
|
apmNum += count.getApmNum(); |
|
|
|
|
apmCountMap.put(count.getProject(), apmNum); |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
List<ApmConfigListVO> resultList = new ArrayList<>(); |
|
|
|
|
for (Map.Entry<String, List<ApmConfig>> configMap : configProjectMap.entrySet()) { |
|
|
|
|
String project = configMap.getKey(); |
|
|
|
|
List<ApmConfig> configList = configMap.getValue(); |
|
|
|
|
ApmConfigListVO vo = BeanUtil.copy(configList.get(0), ApmConfigListVO.class); |
|
|
|
|
vo.setTotalNum(apmCountMap.containsKey(project) ? apmCountMap.get(project) : 0); |
|
|
|
|
vo.setTotalNum(totalApmNumberMap.containsKey(project) ? totalApmNumberMap.get(project) : 0); |
|
|
|
|
|
|
|
|
|
int totalApmNum = 0; |
|
|
|
|
List<Map<String, Object>> detailList = new ArrayList<>(); |
|
|
|
|
|