Commit 6fb35e2c authored by maoying's avatar maoying

Merge branch 'develop_dl_plan6' into develop_dl_plan6_temp

parents 8a7a56be ceb4483b
......@@ -942,11 +942,17 @@ public class DateUtils {
endDay = i;
}
if(startDay != 0 && endDay != 0){
String s = year + "第" + getWeekOfYear(date2) + "周" + "(" + date.substring(5) + "月" + startDay +
"日至" + date.substring(5) + "月" + endDay + "日" +")";
String s = "";
String weekStart = year + "-"+ date.substring(5) +"-" +startDay +" 00:00:00";
String weekEnd = year + "-"+ date.substring(5) +"-" +endDay +" 23:59:59";
if("12".equals(date.substring(5)) && weekOfYear(date2) == 1 ){
long week = Long.valueOf(dates.get(dates.size()-1).get("name").substring(5,7)) + 1;
s = year + "第" + week + "周" + "(" + date.substring(5) + "月" + startDay +
"日至" + date.substring(5) + "月" + endDay + "日" +")";
} else {
s = year + "第" + getWeekOfYear(date2) + "周" + "(" + date.substring(5) + "月" + startDay +
"日至" + date.substring(5) + "月" + endDay + "日" +")";
}
HashMap<String, String> map = new HashMap<>();
map.put("name",s);
map.put("weekStart",weekStart);
......@@ -971,6 +977,14 @@ public class DateUtils {
return week_of_year;
}
public static int weekOfYear(Date date) {
Calendar c = Calendar.getInstance();
c.setTime(date);
c.setFirstDayOfWeek(Calendar.MONDAY);
int week_of_year = c.get(Calendar.WEEK_OF_YEAR);
return week_of_year;
}
/**
* 获得本月的开始时间,即2012-01-01 00:00:00
*
......
......@@ -11,6 +11,7 @@ import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.util.ObjectUtils;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
......@@ -23,6 +24,8 @@ import org.typroject.tyboot.core.restful.utils.ResponseModel;
import java.math.BigDecimal;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.ZoneId;
import java.util.*;
import static org.typroject.tyboot.core.foundation.utils.DateTimeUtil.ISO8601_DATE_HOUR_MIN_SEC;
......@@ -153,29 +156,133 @@ public class EmergencyController extends AbstractBaseController {
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation("火灾自动报警系统告警分析")
@ApiOperation("火灾自动报警系统告警分析-折线图")
@GetMapping(value = "/selectAlarmAnalysis")
public List<Map<String, Object>> selectPressureFlow(@RequestParam(value = "bizOrgCode", required = false) String bizOrgCode,
@RequestParam(value = "startDate") String startDate,
@RequestParam(value = "endDate") String endDate) {
if (ObjectUtils.isEmpty(bizOrgCode)){
ReginParams reginParams = getSelectedOrgInfo();
bizOrgCode = reginParams.getPersonIdentity().getBizOrgCode();
public List<Map<String, Object>> selectPressureFlow(@RequestParam(value = "startDate") String startDate,
@RequestParam(value = "endDate") String endDate,
@RequestParam(value = "type") String type,
@RequestParam(value = "systemType") String systemType)throws Exception {
ArrayList<Map<String, Object>> result = new ArrayList<>();
List<Map<String, Object>> maps = iEmergencyService.selectAlarmAnalysis(startDate, endDate, "0", "", systemType);
if ("week".equals(type)) {
String beginMonth = startDate.substring(5,7);
String endMonth = endDate.substring(5,7);
List<Map<String, String>> weeksMapInterval = DateUtils.getWeeksMapInterval(DateUtils.dateToStringMonth(startDate));
for (Map<String, String> week : weeksMapInterval) {
Date weekStart = null;
Date weekEnd = null;
try {
weekStart = DateUtils.dateParse(week.get("weekStart"), DateUtils.DATE_PATTERN);
weekEnd = DateUtils.dateParse(week.get("weekEnd"), DateUtils.DATE_PATTERN);
} catch (ParseException e) {
e.printStackTrace();
}
return iEmergencyService.selectAlarmAnalysis(bizOrgCode, startDate, endDate);
long startTime = weekStart.getTime();
long endTime = weekEnd.getTime();
HashMap<String, Object> mapData = new HashMap<>();
for (Map<String, Object> map : maps) {
Date check = null;
try {
check = DateUtils.dateParse(String.valueOf(map.get("date")), DateUtils.DATE_PATTERN);
} catch (ParseException e) {
e.printStackTrace();
}
if (!ObjectUtils.isEmpty(check) && check.getTime() >= startTime && check.getTime() <= endTime) {
if (!ObjectUtils.isEmpty(mapData)) {
BigDecimal old = new BigDecimal(String.valueOf(mapData.get("faultNum")));
BigDecimal add = new BigDecimal(String.valueOf(map.get("faultNum")));
BigDecimal now = old.add(add);
mapData.put("faultNum", String.valueOf(now));
BigDecimal firePumpsOld = new BigDecimal(String.valueOf(mapData.get("alarmNum")));
BigDecimal firePumpsAdd = new BigDecimal(String.valueOf(map.get("alarmNum")));
BigDecimal firePumpsNow = firePumpsOld.add(firePumpsAdd);
mapData.put("alarmNum", String.valueOf(firePumpsNow));
BigDecimal stabilizedOld = new BigDecimal(String.valueOf(mapData.get("shieldNum")));
BigDecimal stabilizedAdd = new BigDecimal(String.valueOf(map.get("shieldNum")));
BigDecimal stabilizedNow = stabilizedOld.add(stabilizedAdd);
mapData.put("shieldNum", String.valueOf(stabilizedNow));
} else {
mapData.put("name", week.get("name"));
mapData.put("faultNum", map.get("faultNum"));
mapData.put("alarmNum", map.get("alarmNum"));
mapData.put("shieldNum", map.get("shieldNum"));
}
}
}
result.add(mapData);
}
if(!StringUtils.isEmpty(beginMonth) && !beginMonth.equals(endMonth)){
weeksMapInterval = DateUtils.getWeeksMapInterval(DateUtils.dateToStringMonth(endDate));
for (Map<String, String> weeks : weeksMapInterval) {
Date weekStart1 = null;
Date weekEnd1 = null;
try {
weekStart1 = DateUtils.dateParse(weeks.get("weekStart"), DateUtils.DATE_PATTERN);
weekEnd1 = DateUtils.dateParse(weeks.get("weekEnd"), DateUtils.DATE_PATTERN);
} catch (ParseException e) {
e.printStackTrace();
}
long startTime1 = weekStart1.getTime();
long endTime1 = weekEnd1.getTime();
HashMap<String, Object> mapData1 = new HashMap<>();
for (Map<String, Object> map : maps) {
Date check = null;
try {
check = DateUtils.dateParse(String.valueOf(map.get("date")), DateUtils.DATE_PATTERN);
} catch (ParseException e) {
e.printStackTrace();
}
if (!ObjectUtils.isEmpty(check) && check.getTime() >= startTime1 && check.getTime() <= endTime1) {
if (!ObjectUtils.isEmpty(mapData1)) {
BigDecimal old = new BigDecimal(String.valueOf(mapData1.get("faultNum")));
BigDecimal add = new BigDecimal(String.valueOf(map.get("faultNum")));
BigDecimal now = old.add(add);
mapData1.put("faultNum", String.valueOf(now));
BigDecimal firePumpsOld = new BigDecimal(String.valueOf(mapData1.get("alarmNum")));
BigDecimal firePumpsAdd = new BigDecimal(String.valueOf(map.get("alarmNum")));
BigDecimal firePumpsNow = firePumpsOld.add(firePumpsAdd);
mapData1.put("alarmNum", String.valueOf(firePumpsNow));
BigDecimal stabilizedOld = new BigDecimal(String.valueOf(mapData1.get("shieldNum")));
BigDecimal stabilizedAdd = new BigDecimal(String.valueOf(map.get("shieldNum")));
BigDecimal stabilizedNow = stabilizedOld.add(stabilizedAdd);
mapData1.put("shieldNum", String.valueOf(stabilizedNow));
} else {
mapData1.put("name", weeks.get("name"));
mapData1.put("faultNum", map.get("faultNum"));
mapData1.put("alarmNum", map.get("alarmNum"));
mapData1.put("shieldNum", map.get("shieldNum"));
}
}
}
result.add(mapData1);
}
}
} else if ("day".equals(type)) {
return maps;
} else if ("month".equals(type)) {
String date = startDate.substring(0, 4) + "-01" + "-01";
return iEmergencyService.selectAlarmAnalysis(startDate, endDate, "1", date, systemType);
}
return result;
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation("火灾自动报警系统告警分析-饼图")
@GetMapping(value = "/selectAlarmAnalysisCount")
public List<Map<String, Object>> selectAlarmAnalysisCount(@RequestParam(value = "bizOrgCode", required = false) String bizOrgCode,
@RequestParam(value = "startDate") String startDate,
@RequestParam(value = "endDate") String endDate) {
if (ObjectUtils.isEmpty(bizOrgCode)) {
ReginParams reginParams = getSelectedOrgInfo();
bizOrgCode = reginParams.getPersonIdentity().getBizOrgCode();
}
return iEmergencyService.selectAlarmAnalysisCount(bizOrgCode, startDate, endDate);
public List<Map<String, Object>> selectAlarmAnalysisCount(@RequestParam(value = "startDate") String startDate,
@RequestParam(value = "endDate") String endDate,
@RequestParam(value = "systemType") String systemType) {
return iEmergencyService.selectAlarmAnalysisCount(systemType, startDate, endDate);
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
......@@ -208,6 +315,8 @@ public class EmergencyController extends AbstractBaseController {
ArrayList<Map<String, Object>> result = new ArrayList<>();
List<Map<String, Object>> maps = iEmergencyService.waterSystemAlarmAnalysis(startDate, endDate, "0", "", systemType);
if ("week".equals(type)) {
String beginMonth = startDate.substring(5,7);
String endMonth = endDate.substring(5,7);
List<Map<String, String>> weeksMapInterval = DateUtils.getWeeksMapInterval(DateUtils.dateToStringMonth(startDate));
for (Map<String, String> week : weeksMapInterval) {
Date weekStart = null;
......@@ -256,6 +365,55 @@ public class EmergencyController extends AbstractBaseController {
}
result.add(mapData);
}
if(!StringUtils.isEmpty(beginMonth) && !beginMonth.equals(endMonth)){
weeksMapInterval = DateUtils.getWeeksMapInterval(DateUtils.dateToStringMonth(endDate));
for (Map<String, String> weeks : weeksMapInterval) {
Date weekStart1 = null;
Date weekEnd1 = null;
try {
weekStart1 = DateUtils.dateParse(weeks.get("weekStart"), DateUtils.DATE_PATTERN);
weekEnd1 = DateUtils.dateParse(weeks.get("weekEnd"), DateUtils.DATE_PATTERN);
} catch (ParseException e) {
e.printStackTrace();
}
long startTime1 = weekStart1.getTime();
long endTime1 = weekEnd1.getTime();
HashMap<String, Object> mapData1 = new HashMap<>();
for (Map<String, Object> map : maps) {
Date check = null;
try {
check = DateUtils.dateParse(String.valueOf(map.get("date")), DateUtils.DATE_PATTERN);
} catch (ParseException e) {
e.printStackTrace();
}
if (!ObjectUtils.isEmpty(check) && check.getTime() >= startTime1 && check.getTime() <= endTime1) {
if (!ObjectUtils.isEmpty(mapData1)) {
BigDecimal old = new BigDecimal(String.valueOf(mapData1.get("controlCabinetAlarmNum")));
BigDecimal add = new BigDecimal(String.valueOf(map.get("controlCabinetAlarmNum")));
BigDecimal now = old.add(add);
mapData1.put("controlCabinetAlarmNum", String.valueOf(now));
BigDecimal firePumpsOld = new BigDecimal(String.valueOf(mapData1.get("firePumpsAlarmNum")));
BigDecimal firePumpsAdd = new BigDecimal(String.valueOf(map.get("firePumpsAlarmNum")));
BigDecimal firePumpsNow = firePumpsOld.add(firePumpsAdd);
mapData1.put("firePumpsAlarmNum", String.valueOf(firePumpsNow));
BigDecimal stabilizedOld = new BigDecimal(String.valueOf(mapData1.get("stabilizedPumpAlarmNum")));
BigDecimal stabilizedAdd = new BigDecimal(String.valueOf(map.get("stabilizedPumpAlarmNum")));
BigDecimal stabilizedNow = stabilizedOld.add(stabilizedAdd);
mapData1.put("stabilizedPumpAlarmNum", String.valueOf(stabilizedNow));
} else {
mapData1.put("name", weeks.get("name"));
mapData1.put("controlCabinetAlarmNum", map.get("controlCabinetAlarmNum"));
mapData1.put("firePumpsAlarmNum", map.get("firePumpsAlarmNum"));
mapData1.put("stabilizedPumpAlarmNum", map.get("stabilizedPumpAlarmNum"));
}
}
}
result.add(mapData1);
}
}
} else if ("day".equals(type)) {
return maps;
......@@ -279,6 +437,8 @@ public class EmergencyController extends AbstractBaseController {
ArrayList<Map<String, Object>> result = new ArrayList<>();
List<Map<String, Object>> maps = iEmergencyService.fireCannonSystemAlarmAnalysis(startDate, endDate, "0", "", systemType);
if ("week".equals(type)) {
String beginMonth = startDate.substring(5,7);
String endMonth = endDate.substring(5,7);
List<Map<String, String>> weeksMapInterval = DateUtils.getWeeksMapInterval(DateUtils.dateToStringMonth(startDate));
for (Map<String, String> week : weeksMapInterval) {
Date weekStart = null;
......@@ -333,6 +493,62 @@ public class EmergencyController extends AbstractBaseController {
}
result.add(mapData);
}
if(!StringUtils.isEmpty(beginMonth) && !beginMonth.equals(endMonth)){
weeksMapInterval = DateUtils.getWeeksMapInterval(DateUtils.dateToStringMonth(endDate));
for (Map<String, String> weeks : weeksMapInterval) {
Date weekStart1 = null;
Date weekEnd1 = null;
try {
weekStart1 = DateUtils.dateParse(weeks.get("weekStart"), DateUtils.DATE_PATTERN);
weekEnd1 = DateUtils.dateParse(weeks.get("weekEnd"), DateUtils.DATE_PATTERN);
} catch (ParseException e) {
e.printStackTrace();
}
long startTime1 = weekStart1.getTime();
long endTime1 = weekEnd1.getTime();
HashMap<String, Object> mapData1 = new HashMap<>();
for (Map<String, Object> map : maps) {
Date check = null;
try {
check = DateUtils.dateParse(String.valueOf(map.get("date")), DateUtils.DATE_PATTERN);
} catch (ParseException e) {
e.printStackTrace();
}
if (!ObjectUtils.isEmpty(check) && check.getTime() >= startTime1 && check.getTime() <= endTime1) {
if (!ObjectUtils.isEmpty(mapData1)) {
BigDecimal old = new BigDecimal(String.valueOf(mapData1.get("powerLossNum")));
BigDecimal add = new BigDecimal(String.valueOf(map.get("powerLossNum")));
BigDecimal now = old.add(add);
mapData1.put("powerLossNum", String.valueOf(now));
BigDecimal firePumpsOld = new BigDecimal(String.valueOf(mapData1.get("faultNum")));
BigDecimal firePumpsAdd = new BigDecimal(String.valueOf(map.get("faultNum")));
BigDecimal firePumpsNow = firePumpsOld.add(firePumpsAdd);
mapData1.put("faultNum", String.valueOf(firePumpsNow));
BigDecimal stabilizedOld = new BigDecimal(String.valueOf(mapData1.get("fireAlarmNum")));
BigDecimal stabilizedAdd = new BigDecimal(String.valueOf(map.get("fireAlarmNum")));
BigDecimal stabilizedNow = stabilizedOld.add(stabilizedAdd);
mapData1.put("fireAlarmNum", String.valueOf(stabilizedNow));
BigDecimal shieldOld = new BigDecimal(String.valueOf(mapData1.get("shieldNum")));
BigDecimal shieldAdd = new BigDecimal(String.valueOf(map.get("shieldNum")));
BigDecimal shieldNow = shieldOld.add(shieldAdd);
mapData1.put("shieldNum", String.valueOf(shieldNow));
} else {
mapData1.put("name", weeks.get("name"));
mapData1.put("powerLossNum", map.get("powerLossNum"));
mapData1.put("faultNum", map.get("faultNum"));
mapData1.put("fireAlarmNum", map.get("fireAlarmNum"));
mapData1.put("shieldNum", map.get("shieldNum"));
}
}
}
result.add(mapData1);
}
}
} else if ("day".equals(type)) {
return maps;
......
......@@ -61,9 +61,9 @@ public interface EmergencyMapper extends BaseMapper{
List<Map<String, Object>> getCAFSWaterTankInfo(@Param("bizOrgCode") String bizOrgCode);
List<Map<String, Object>> selectAlarmAnalysis(@Param("bizOrgCode") String bizOrgCode, @Param("startDate")String startDate, @Param("endDate")String endDate);
List<Map<String, Object>> selectAlarmAnalysis(@Param("startDate")String startDate, @Param("endDate")String endDate, @Param("dataType")String dataType, @Param("date")String date, @Param("list") List<String> codes);
List<Map<String, Object>> selectAlarmAnalysisCount(@Param("bizOrgCode") String bizOrgCode, @Param("startDate")String startDate, @Param("endDate")String endDate);
List<Map<String, Object>> selectAlarmAnalysisCount( @Param("startDate")String startDate, @Param("endDate")String endDate,@Param("list") List<String> codes);
Map<String, Object> getSystemAndCarCount();
......
......@@ -34,9 +34,9 @@ public interface IEmergencyService {
Page<Map<String, Object>> selectPressureFlow(Page<Map<String, Object>> page, String bizOrgCode);
List<Map<String, Object>> selectAlarmAnalysis(String bizOrgCode, String startDate, String endDate);
List<Map<String, Object>> selectAlarmAnalysis(String startDate, String endDate, String dataType, String date, String systemType);
List<Map<String, Object>> selectAlarmAnalysisCount(String bizOrgCode, String startDate, String endDate);
List<Map<String, Object>> selectAlarmAnalysisCount(String systemType, String startDate, String endDate);
Map<String, Object> systemAndCar();
......
package com.yeejoin.equipmanage.service.impl;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.equipmanage.common.utils.DateUtils;
import com.yeejoin.equipmanage.mapper.EmergencyMapper;
import com.yeejoin.equipmanage.service.IEmergencyService;
import org.apache.commons.compress.utils.Lists;
......@@ -8,8 +9,13 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import static com.yeejoin.equipmanage.common.utils.DateUtils.getFirstDayOfMonth;
/**
*
* 四横八纵应急模块接口服务类
......@@ -90,13 +96,23 @@ public class EmergencyServiceImpl implements IEmergencyService {
}
@Override
public List<Map<String, Object>> selectAlarmAnalysis(String bizOrgCode, String startDate, String endDate) {
return emergencyMapper.selectAlarmAnalysis(bizOrgCode, startDate, endDate);
public List<Map<String, Object>> selectAlarmAnalysis(String startDate, String endDate, String dataType, String date, String systemType) {
List<String> strings = emergencyMapper.selectSystemCodes(systemType);
if (!CollectionUtils.isEmpty(strings)) {
return emergencyMapper.selectAlarmAnalysis(startDate, endDate, dataType, date, strings);
}
return null;
}
@Override
public List<Map<String, Object>> selectAlarmAnalysisCount(String bizOrgCode, String startDate, String endDate) {
return emergencyMapper.selectAlarmAnalysisCount(bizOrgCode, startDate, endDate);
public List<Map<String, Object>> selectAlarmAnalysisCount(String systemType, String startDate, String endDate) {
List<String> strings = emergencyMapper.selectSystemCodes(systemType);
if (!CollectionUtils.isEmpty(strings)) {
return emergencyMapper.selectAlarmAnalysisCount( startDate, endDate,strings);
}
return null;
}
@Override
......
......@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.google.common.collect.Lists;
import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import com.yeejoin.equipmanage.common.entity.*;
import com.yeejoin.equipmanage.common.entity.vo.*;
......@@ -17,6 +18,7 @@ import org.apache.commons.lang3.RandomStringUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
......@@ -57,6 +59,9 @@ public class EquipmentServiceImpl extends ServiceImpl<EquipmentMapper, Equipment
@Autowired
private IEquipmentDetailService iEquipmentDetailService;
@Autowired
private RedisUtils redisUtils;
// 装备分类code长度
private static final int CATECODELEN = 8;
private String proviceCode = "44";
......@@ -111,10 +116,10 @@ public class EquipmentServiceImpl extends ServiceImpl<EquipmentMapper, Equipment
}
equipmentMapper.deleteById(equipment.getId());
});
refreshData();
} catch (Exception e) {
throw new RuntimeException("删除失败!");
}
}
@Override
......@@ -140,11 +145,23 @@ public class EquipmentServiceImpl extends ServiceImpl<EquipmentMapper, Equipment
log.error("新增装备定义操作中,检测到巡检服务未启动或启动出错!");
}
if (num > 0) {
refreshData();
return true;
}
return false;
}
@Async
public void refreshData() {
if (redisUtils.hasKey("equip_equipDefinitions")) {
redisUtils.del("equip_equipDefinitions");
}
QueryWrapper<Equipment> equipmentQueryWrapper = new QueryWrapper<>();
equipmentQueryWrapper.isNotNull("id");
List<Equipment> equipments = equipmentMapper.selectList(equipmentQueryWrapper);
redisUtils.set("equip_equipDefinitions", JSONObject.toJSONString(equipments));
}
// public void saveEquipmentQRCodes(Equipment equipment) {
// try {
// EquipmentdefQrcode code = EquipmentdefQrcode.getBuilder().withEquipmentId(() -> equipment.getId()).build();
......@@ -233,6 +250,7 @@ public class EquipmentServiceImpl extends ServiceImpl<EquipmentMapper, Equipment
log.error("编辑装备定义操作中,检测到巡检服务未启动或启动出错!");
}
if (savedEquipment > 0) {
refreshData();
return true;
}
return false;
......
......@@ -8,6 +8,7 @@ import java.util.stream.Collectors;
import javax.annotation.Resource;
import com.yeejoin.equipmanage.common.entity.*;
import com.yeejoin.equipmanage.common.utils.*;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
......@@ -32,21 +33,6 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import com.yeejoin.equipmanage.common.entity.Equipment;
import com.yeejoin.equipmanage.common.entity.EquipmentDetail;
import com.yeejoin.equipmanage.common.entity.EquipmentIndex;
import com.yeejoin.equipmanage.common.entity.EquipmentManageEntity;
import com.yeejoin.equipmanage.common.entity.EquipmentSpecific;
import com.yeejoin.equipmanage.common.entity.EquipmentSpecificIndex;
import com.yeejoin.equipmanage.common.entity.EquipmentSystemSourceStatistics;
import com.yeejoin.equipmanage.common.entity.FireFightingSystemEntity;
import com.yeejoin.equipmanage.common.entity.Journal;
import com.yeejoin.equipmanage.common.entity.ManufacturerInfo;
import com.yeejoin.equipmanage.common.entity.Stock;
import com.yeejoin.equipmanage.common.entity.StockBill;
import com.yeejoin.equipmanage.common.entity.StockBillDetail;
import com.yeejoin.equipmanage.common.entity.StockDetail;
import com.yeejoin.equipmanage.common.entity.WarehouseStructure;
import com.yeejoin.equipmanage.common.entity.vo.EquipmentDetailDownloadVO;
import com.yeejoin.equipmanage.common.entity.vo.EquipmentSpecificVo;
import com.yeejoin.equipmanage.common.enums.BillContentEnum;
......@@ -507,10 +493,6 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
relationRedisUtil.delSysRedisKey(fireFightSysIdsBuffer.toString());
}
if (redisUtils.hasKey("equipAndCarIotCodes")) {
redisUtils.del("equipAndCarIotCodes");
}
// TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronization() {
// @Override
// public void afterCommit() {
......@@ -546,6 +528,10 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
redisUtils.del("equipAndCarIotCodes");
}
redisUtils.set("equipAndCarIotCodes", JSONObject.toJSONString(data));
if (redisUtils.hasKey("equip_warehouseStructures")) {
redisUtils.getAndDeletePatternKeys("equip_warehouseStructures" + "*");
}
return date;
}
......@@ -579,11 +565,22 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
TransactionStatus transactionStatus = platformTransactionManager.getTransaction(transactionDefinition);
try {
//查询装备定义信息
// equipmentQueryWrapper.lambda().eq(Equipment::getCode, equipmentDetailDownloadVOS.getCode());
// Equipment equipment = equipmentMapper.selectOne(equipmentQueryWrapper);
// 此处由于每次导入都需查装备定义导致导入缓慢,所以优化为加入缓存
Equipment equipment;
if (redisUtils.hasKey("equip_equipDefinitions")) {
List<Equipment> equipmentList = JSONObject.parseArray(redisUtils.get("equip_equipDefinitions").toString(), Equipment.class);;
equipment = equipmentList.stream().filter(x -> x.getCode().equals(equipmentDetailDownloadVOS.getCode())).collect(Collectors.toList()).get(0);
} else {
QueryWrapper<Equipment> equipmentQueryWrapper = new QueryWrapper<>();
equipmentQueryWrapper.lambda().eq(Equipment::getCode, equipmentDetailDownloadVOS.getCode());
Equipment equipment = equipmentMapper.selectOne(equipmentQueryWrapper);
equipmentQueryWrapper.isNotNull("id");
List<Equipment> equipments = equipmentMapper.selectList(equipmentQueryWrapper);
equipment = equipments.stream().filter(x -> x.getCode().equals(equipmentDetailDownloadVOS.getCode())).collect(Collectors.toList()).get(0);
redisUtils.set("equip_equipDefinitions", JSONObject.toJSONString(equipments));
}
if (equipment == null) {
erryy.append(String.format("装备(器材)编码[%S]填写错误,请输入正确的装备(器材)编码!",equipmentDetailDownloadVOS.getCode()) + ",");
throw new RuntimeException(String.format("装备(器材)编码[%S]填写错误,请输入正确的装备(器材)编码!",equipmentDetailDownloadVOS.getCode()));
......@@ -604,8 +601,8 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
throw new RuntimeException(String.format("物联编码[%S]填写重复,请重新输入!",iotCode));
}
if(StringUtils.isNotEmpty(haveUsedIotPrefix) && Arrays.stream(haveUsedIotPrefix.split(",")).anyMatch(iotCode::startsWith)){
erryy.append(String.format("物联编码[%S]航班已占用,请重新输入!",iotCode)+ ",");
throw new BadRequest("物联编码航班已占用");
erryy.append(String.format("物联编码[%S]已占用,请重新输入!",iotCode)+ ",");
throw new BadRequest("物联编码已占用");
}
}
AtomicReference<String> fightSysIds = new AtomicReference<>("");
......@@ -680,7 +677,6 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
equipmentSpecific.setTeamId(fireTeam[1]);
}
// 导入新增所属单位
if (StringUtils.isNotBlank(equipmentDetailDownloadVOS.getCompanyName())) {
String[] company = equipmentDetailDownloadVOS.getCompanyName().split("@");
equipmentSpecific.setAgencyId(company[1]);
......@@ -700,9 +696,19 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
controllerProxy.refreshCount(equipmentSpecific.getBizOrgCode());
//位置编码不为空入库
if (equipmentDetailDownloadVOS != null && equipmentDetailDownloadVOS.getWarehouseStructCode() != null) {
QueryWrapper<WarehouseStructure> warehouseStructureQueryWrapper = new QueryWrapper<>();
warehouseStructureQueryWrapper.lambda().eq(WarehouseStructure::getCode, equipmentDetailDownloadVOS.getWarehouseStructCode());
WarehouseStructure warehouseStructure = warehouseStructureService.getOne(warehouseStructureQueryWrapper);
// QueryWrapper<WarehouseStructure> warehouseStructureQueryWrapper = new QueryWrapper<>();
// warehouseStructureQueryWrapper.lambda().eq(WarehouseStructure::getCode, equipmentDetailDownloadVOS.getWarehouseStructCode());
// WarehouseStructure warehouseStructure = warehouseStructureService.getOne(warehouseStructureQueryWrapper);
// 入库位置进行优化
WarehouseStructure warehouseStructure;
if (redisUtils.hasKey("equip_warehouseStructures")) {
List<WarehouseStructure> warehouseStructures = JSONObject.parseArray(redisUtils.get("equip_warehouseStructures").toString(), WarehouseStructure.class);
warehouseStructure = warehouseStructures.stream().filter(x -> x.getCode().equals(equipmentDetailDownloadVOS.getWarehouseStructCode())).collect(Collectors.toList()).get(0);
} else {
List<WarehouseStructure> warehouseStructures = warehouseStructureService.list();
warehouseStructure = warehouseStructures.stream().filter(x -> x.getCode().equals(equipmentDetailDownloadVOS.getWarehouseStructCode())).collect(Collectors.toList()).get(0);
redisUtils.set("equip_warehouseStructures", JSONObject.toJSONString(warehouseStructures));
}
if (warehouseStructure == null) {
erryy.append(String.format("货位编码[%S]填写错误,请输入正确的货位编码!",equipmentDetailDownloadVOS.getWarehouseStructCode())+ ",");
throw new RuntimeException(String.format("货位编码[%S]填写错误,请输入正确的货位编码!",equipmentDetailDownloadVOS.getWarehouseStructCode()));
......@@ -781,10 +787,6 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
}
// @Async
public void refreshCount(String bizOrgCode) {
equipmentSpecificSerivce.refreshStaData();
......
......@@ -412,7 +412,9 @@
wespa.equipment_specific_index_key LIKE concat('%', 'Fault')
AND wespa.create_date LIKE concat(temp.date, '%')
AND wespa.equipment_specific_index_value = 'true'
AND wespa.biz_org_code like concat(#{bizOrgCode}, '%')
<foreach collection="list" open="and (" close=")" item="code" index="index" separator="or">
wespa.system_codes like concat('%',#{code},'%')
</foreach>
) AS faultNum,
(
SELECT
......@@ -427,7 +429,9 @@
wespa.equipment_specific_index_key LIKE concat('%', 'FireAlarm')
AND wespa.create_date LIKE concat(temp.date, '%')
AND wespa.equipment_specific_index_value = 'true'
AND wespa.biz_org_code like concat(#{bizOrgCode}, '%')
<foreach collection="list" open="and (" close=")" item="code" index="index" separator="or">
wespa.system_codes like concat('%',#{code},'%')
</foreach>
) AS alarmNum,
(
SELECT
......@@ -442,9 +446,81 @@
wespa.equipment_specific_index_key LIKE concat('%', 'Shield')
AND wespa.create_date LIKE concat(temp.date, '%')
AND wespa.equipment_specific_index_value = 'true'
AND wespa.biz_org_code like concat(#{bizOrgCode}, '%')
<foreach collection="list" open="and (" close=")" item="code" index="index" separator="or">
wespa.system_codes like concat('%',#{code},'%')
</foreach>
) AS shieldNum
FROM
<if test="dataType == 1">
(
SELECT
date_format(
(#{date} - INTERVAL 0 MONTH),
'%Y-%m'
) AS `date`
UNION
(SELECT
date_format(
(#{date} - INTERVAL -1 MONTH),
'%Y-%m'
) AS `date`)
UNION
(SELECT
date_format(
(#{date} - INTERVAL -2 MONTH),
'%Y-%m'
) AS `date`)
UNION
(SELECT
date_format(
(#{date} - INTERVAL -3 MONTH),
'%Y-%m'
) AS `date`)
UNION
(SELECT
date_format(
(#{date} - INTERVAL -4 MONTH),
'%Y-%m'
) AS `date`)
UNION
(SELECT
date_format(
(#{date} - INTERVAL -5 MONTH),
'%Y-%m'
) AS `date`)UNION
(SELECT
date_format(
(#{date} - INTERVAL -6 MONTH),
'%Y-%m'
) AS `date`)UNION
(SELECT
date_format(
(#{date} - INTERVAL -7 MONTH),
'%Y-%m'
) AS `date`)UNION
(SELECT
date_format(
(#{date} - INTERVAL -8 MONTH),
'%Y-%m'
) AS `date`)UNION
(SELECT
date_format(
(#{date} - INTERVAL -9 MONTH),
'%Y-%m'
) AS `date`)UNION
(SELECT
date_format(
(#{date} - INTERVAL -10 MONTH),
'%Y-%m'
) AS `date`)UNION
(SELECT
date_format(
(#{date} - INTERVAL -11 MONTH),
'%Y-%m'
) AS `date`))temp
</if>
<if test="dataType != 1">
(
SELECT temp.selected_date as date FROM
(SELECT ADDDATE('1970-01-01',t4.i*10000 + t3.i*1000 + t2.i*100 + t1.i*10 + t0.i) selected_date FROM
......@@ -458,6 +534,7 @@
) temp
ORDER BY
temp.date
</if>
</select>
<select id="selectAlarmAnalysisCount" resultType="java.util.Map">
SELECT
......@@ -473,9 +550,11 @@
WHERE
wespa.equipment_specific_index_key LIKE concat('%', 'Fault')
AND wespa.equipment_specific_index_value = 'true'
AND wespa.biz_org_code LIKE concat(#{bizOrgCode}, '%')
AND wespa.create_date BETWEEN #{startDate}
AND #{endDate}
<foreach collection="list" open="and (" close=")" item="code" index="index" separator="or">
wespa.system_codes like concat('%',#{code},'%')
</foreach>
) AS faultNum,
(
SELECT
......@@ -489,9 +568,11 @@
WHERE
wespa.equipment_specific_index_key LIKE concat('%', 'FireAlarm')
AND wespa.equipment_specific_index_value = 'true'
AND wespa.biz_org_code LIKE concat(#{bizOrgCode}, '%')
AND wespa.create_date BETWEEN #{startDate}
AND #{endDate}
<foreach collection="list" open="and (" close=")" item="code" index="index" separator="or">
wespa.system_codes like concat('%',#{code},'%')
</foreach>
) AS fireAlarmNum,
(
SELECT
......@@ -505,9 +586,11 @@
WHERE
wespa.equipment_specific_index_key LIKE concat('%', 'Shield')
AND wespa.equipment_specific_index_value = 'true'
AND wespa.biz_org_code LIKE concat(#{bizOrgCode}, '%')
AND wespa.create_date BETWEEN #{startDate}
AND #{endDate}
<foreach collection="list" open="and (" close=")" item="code" index="index" separator="or">
wespa.system_codes like concat('%',#{code},'%')
</foreach>
) AS shieldNum
</select>
......
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