Commit 6970d645 authored by chenhao's avatar chenhao

Merge branch 'developer' of http://172.16.10.76/moa/amos-boot-biz into developer

parents d1a464ab 2ce4fc40
...@@ -27,6 +27,7 @@ import org.springframework.web.context.request.ServletRequestAttributes; ...@@ -27,6 +27,7 @@ import org.springframework.web.context.request.ServletRequestAttributes;
import org.typroject.tyboot.core.auth.exception.AuthException; import org.typroject.tyboot.core.auth.exception.AuthException;
import org.typroject.tyboot.core.foundation.context.RequestContext; import org.typroject.tyboot.core.foundation.context.RequestContext;
import org.typroject.tyboot.core.foundation.utils.Bean; import org.typroject.tyboot.core.foundation.utils.Bean;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.util.Arrays; import java.util.Arrays;
...@@ -62,6 +63,11 @@ public class ControllerAop { ...@@ -62,6 +63,11 @@ public class ControllerAop {
HttpServletRequest request = attributes.getRequest(); HttpServletRequest request = attributes.getRequest();
//TODO tyboot 框架拦截器已缓存数据 //TODO tyboot 框架拦截器已缓存数据
String token = RequestContext.getToken(); String token = RequestContext.getToken();
// 平台studio配置的下载接口token从url里取
if (ValidationUtil.isEmpty(token)) {
fillRequestContext(request);
token = RequestContext.getToken();
}
// 不需要添加请求头的接口 // 不需要添加请求头的接口
String[] url = new String[]{"/api/user/selectInfo", "/api/user/save/curCompany", "/jcs/command/lookHtmlText"}; String[] url = new String[]{"/api/user/selectInfo", "/api/user/save/curCompany", "/jcs/command/lookHtmlText"};
// 获取请求路径 // 获取请求路径
...@@ -134,4 +140,13 @@ public class ControllerAop { ...@@ -134,4 +140,13 @@ public class ControllerAop {
// GlobalCache.paramMap.remove(token); // GlobalCache.paramMap.remove(token);
// } // }
} }
private void fillRequestContext(HttpServletRequest request) {
String token = request.getParameterMap().get("token")[0];
String product = request.getParameterMap().get("product")[0];
String appKey = request.getParameterMap().get("appKey")[0];
RequestContext.setToken(token);
RequestContext.setProduct(product);
RequestContext.setAppKey(appKey);
}
} }
...@@ -50,7 +50,7 @@ public class FirefightersExcelDto extends BaseDto { ...@@ -50,7 +50,7 @@ public class FirefightersExcelDto extends BaseDto {
@ApiModelProperty(value = "机构code") @ApiModelProperty(value = "机构code")
private String companyCode; private String companyCode;
@ExplicitConstraint(indexNum = 3, sourceClass = RoleNameExplicitConstraint.class,method="getCompany") //动态下拉内容// BUG 2760 修改消防人员导出模板和 导入问题 bykongfm
@ExcelProperty(value = "所属部门", index = 3) @ExcelProperty(value = "所属部门", index = 3)
@ApiModelProperty(value = "机构名称") @ApiModelProperty(value = "机构名称")
private String companyName; private String companyName;
...@@ -87,6 +87,7 @@ public class FirefightersExcelDto extends BaseDto { ...@@ -87,6 +87,7 @@ public class FirefightersExcelDto extends BaseDto {
@ApiModelProperty(value = "籍贯/户口所在地") @ApiModelProperty(value = "籍贯/户口所在地")
private String nativePlace; private String nativePlace;
@ExplicitConstraint(indexNum = 10, sourceClass = RoleNameExplicitConstraint.class,method="getCitys") //动态下拉内容// BUG 2760 修改消防人员导出模板和 导入问题 bykongfm
@ExcelProperty(value = "户籍所在地", index = 10) @ExcelProperty(value = "户籍所在地", index = 10)
@ApiModelProperty(value = "籍贯/户口所在地的值") @ApiModelProperty(value = "籍贯/户口所在地的值")
private String nativePlaceValue; private String nativePlaceValue;
...@@ -96,6 +97,7 @@ public class FirefightersExcelDto extends BaseDto { ...@@ -96,6 +97,7 @@ public class FirefightersExcelDto extends BaseDto {
@ApiModelProperty(value = "政治面貌代码") @ApiModelProperty(value = "政治面貌代码")
private String politicalOutlook; private String politicalOutlook;
@ExplicitConstraint(indexNum = 12, sourceClass = RoleNameExplicitConstraint.class,method="getCitys") //动态下拉内容// BUG 2760 修改消防人员导出模板和 导入问题 bykongfm
@ExcelProperty(value = "现居住地", index = 12) @ExcelProperty(value = "现居住地", index = 12)
@ApiModelProperty(value = "现居住地") @ApiModelProperty(value = "现居住地")
private String residence; private String residence;
......
...@@ -105,4 +105,7 @@ public class AlertCalledDto extends BaseDto{ ...@@ -105,4 +105,7 @@ public class AlertCalledDto extends BaseDto{
@ApiModelProperty(value = "响应级别字典code 为了过滤用(只有航空器故障有)") @ApiModelProperty(value = "响应级别字典code 为了过滤用(只有航空器故障有)")
private String responseLevelCode; private String responseLevelCode;
@ApiModelProperty(value = "警情状态str")
private String alertStatusStr;
} }
...@@ -120,4 +120,8 @@ public class AlertCalled extends BaseEntity { ...@@ -120,4 +120,8 @@ public class AlertCalled extends BaseEntity {
@TableField(exist=false) @TableField(exist=false)
@ApiModelProperty(value = "警情来源多选 [逗号分隔]") @ApiModelProperty(value = "警情来源多选 [逗号分隔]")
private String alertSourceCodeStr; private String alertSourceCodeStr;
@TableField(exist=false)
@ApiModelProperty(value = "警情状态str")
private String alertStatusStr;
} }
...@@ -114,4 +114,5 @@ public interface PowerTransferMapper extends BaseMapper<PowerTransfer> { ...@@ -114,4 +114,5 @@ public interface PowerTransferMapper extends BaseMapper<PowerTransfer> {
*/ */
IPage<PowerTransferResourceDto> getPowerTransferCarResource(Page<PowerTransferResourceDto> page, IPage<PowerTransferResourceDto> getPowerTransferCarResource(Page<PowerTransferResourceDto> page,
@Param("alertCalledId") Long alertCalledId); @Param("alertCalledId") Long alertCalledId);
} }
package com.yeejoin.amos.boot.module.jcs.api.service; package com.yeejoin.amos.boot.module.jcs.api.service;
import com.alibaba.fastjson.JSONObject;
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.IService; import com.baomidou.mybatisplus.extension.service.IService;
...@@ -53,4 +54,13 @@ public interface IPowerTransferService extends IService<PowerTransfer> { ...@@ -53,4 +54,13 @@ public interface IPowerTransferService extends IService<PowerTransfer> {
* @return * @return
*/ */
List<ResourceStatisticsDto> getPowerTransferStatistics(Long alertCalledId, String type); List<ResourceStatisticsDto> getPowerTransferStatistics(Long alertCalledId, String type);
/**
* 根据警情id获取警情调派的资源(车辆、人员、装备、车载水量、车载药剂)统计
*
* @param alertCalledId
* @return
*/
JSONObject getPowerTransferCarResourceStatistics(Long alertCalledId);
} }
...@@ -251,5 +251,4 @@ ...@@ -251,5 +251,4 @@
AND is_distribution_agencies = 0 AND is_distribution_agencies = 0
</select> </select>
</mapper> </mapper>
...@@ -1028,4 +1028,14 @@ public class CommandController extends BaseController { ...@@ -1028,4 +1028,14 @@ public class CommandController extends BaseController {
public ResponseModel<Object> selectByAlertCalledId(@PathVariable Long id) { public ResponseModel<Object> selectByAlertCalledId(@PathVariable Long id) {
return ResponseHelper.buildResponse(iAlertCalledService.queryAlertCalledById(id)); return ResponseHelper.buildResponse(iAlertCalledService.queryAlertCalledById(id));
} }
/**
* app-根据id查询警情力量统计
**/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "alertCalled/statistics/{alertId}")
@ApiOperation(httpMethod = "GET", value = "app-根据id查询警情力量统计", notes = "app-根据id查询警情力量统计")
public ResponseModel<Object> statisticsByAlertCalledId(@PathVariable Long alertId) {
return ResponseHelper.buildResponse(powerTransferService.getPowerTransferCarResourceStatistics(alertId));
}
} }
\ No newline at end of file
package com.yeejoin.amos.boot.module.common.biz.service.impl; package com.yeejoin.amos.boot.module.common.biz.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.utils.NameUtils;
import com.yeejoin.amos.boot.module.common.api.dto.FireChemicalDto; import com.yeejoin.amos.boot.module.common.api.dto.FireChemicalDto;
import com.yeejoin.amos.boot.module.common.api.entity.FireChemical; import com.yeejoin.amos.boot.module.common.api.entity.FireChemical;
import com.yeejoin.amos.boot.module.common.api.mapper.FireChemicalMapper; import com.yeejoin.amos.boot.module.common.api.mapper.FireChemicalMapper;
import com.yeejoin.amos.boot.module.common.api.service.IFireChemicalService; import com.yeejoin.amos.boot.module.common.api.service.IFireChemicalService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.typroject.tyboot.core.rdbms.annotation.Condition; import org.typroject.tyboot.core.rdbms.annotation.Condition;
import org.typroject.tyboot.core.rdbms.annotation.Operator; import org.typroject.tyboot.core.rdbms.annotation.Operator;
import org.typroject.tyboot.core.rdbms.service.BaseService; import org.typroject.tyboot.core.rdbms.service.BaseService;
import java.util.Arrays;
import java.util.List; import java.util.List;
/** /**
* 危化品服务实现类 * 危化品服务实现类
...@@ -30,10 +25,11 @@ public class FireChemicalServiceImpl extends BaseService<FireChemicalDto,FireChe ...@@ -30,10 +25,11 @@ public class FireChemicalServiceImpl extends BaseService<FireChemicalDto,FireChe
*/ */
@Override @Override
public Page<FireChemicalDto> queryForFireChemicalPage(Page<FireChemicalDto> page, @Condition(Operator.like) String casNo, @Condition(Operator.like)String formula, @Condition(Operator.like)String name, String typeCode,boolean isDelete) { public Page<FireChemicalDto> queryForFireChemicalPage(Page<FireChemicalDto> page, @Condition(Operator.like) String casNo, @Condition(Operator.like)String formula, @Condition(Operator.like)String name, String typeCode,boolean isDelete) {
if(typeCode.equals("-1")) { // bug 2673 选择 -1 时候没有查出所有危化品处理 by kongfm if("-1".equals(typeCode)) { // bug 2673 选择 -1 时候没有查出所有危化品处理 by kongfm
typeCode = null; typeCode = null;
} }
return this.queryForPage(page, "", false,casNo, formula, name, typeCode, isDelete); // BUG 2123 日常管理>辅助资源>危化品,危化品列表数据按创建时间倒序排列 by litw start
return this.queryForPage(page, "rec_date", false,casNo, formula, name, typeCode, isDelete);
} }
/** /**
......
...@@ -67,7 +67,7 @@ public class FirefightersServiceImpl extends BaseService<FirefightersDto, Firefi ...@@ -67,7 +67,7 @@ public class FirefightersServiceImpl extends BaseService<FirefightersDto, Firefi
// 现居住地保存地址信息 户籍所在地信息 BUG3553 bykongfm // 现居住地保存地址信息 户籍所在地信息 BUG3553 bykongfm
FeignClientResult<RegionModel> region = Systemctl.regionClient.getRegion(Long.parseLong(firefighter.getResidenceDetails())); FeignClientResult<RegionModel> region = Systemctl.regionClient.getRegion(Long.parseLong(firefighter.getResidenceDetails()));
firefighter.setResidence(region.getResult().getRegionName()); firefighter.setResidence(region.getResult().getRegionName());
FeignClientResult<RegionModel> nativePlace = Systemctl.regionClient.getRegion(Long.parseLong(firefighter.getResidenceDetails())); FeignClientResult<RegionModel> nativePlace = Systemctl.regionClient.getRegion(Long.parseLong(firefighter.getNativePlace()));
firefighter.setNativePlaceValue(nativePlace.getResult().getRegionName()); firefighter.setNativePlaceValue(nativePlace.getResult().getRegionName());
save(firefighter); save(firefighter);
FirefightersContacts firefightersContact = firefighters.getFirefightersContacts(); FirefightersContacts firefightersContact = firefighters.getFirefightersContacts();
......
...@@ -207,6 +207,15 @@ public class MaintenanceCompanyServiceImpl ...@@ -207,6 +207,15 @@ public class MaintenanceCompanyServiceImpl
if (ObjectUtils.isEmpty(maintenanceCompany)) { if (ObjectUtils.isEmpty(maintenanceCompany)) {
return false; return false;
} }
// 新增删除维保单位逻辑,BUG 2500 单位下有子单位或者人员时应无法直接删除. by litw satrt
LambdaQueryWrapper<MaintenanceCompany> wrapperCompany = new LambdaQueryWrapper<MaintenanceCompany>();
wrapperCompany.eq(MaintenanceCompany::getParentId,sequenceNbr);
int count = maintenanceCompanyMapper.selectCount(wrapperCompany);
if(count > 0) {
throw new BadRequest("单位下有子单位或者人员,无法删除");
}
// 新增删除维保单位逻辑,BUG 2500 单位下有子单位或者人员时应无法直接删除. by litw end
maintenanceCompany.setIsDelete(true); maintenanceCompany.setIsDelete(true);
LambdaQueryWrapper<MaintenanceCompany> wrapper = new LambdaQueryWrapper<MaintenanceCompany>(); LambdaQueryWrapper<MaintenanceCompany> wrapper = new LambdaQueryWrapper<MaintenanceCompany>();
wrapper.eq(MaintenanceCompany::getSequenceNbr, sequenceNbr); wrapper.eq(MaintenanceCompany::getSequenceNbr, sequenceNbr);
......
...@@ -7,6 +7,7 @@ import java.util.Map; ...@@ -7,6 +7,7 @@ import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import java.util.stream.Stream; import java.util.stream.Stream;
import com.yeejoin.amos.boot.module.jcs.api.enums.AlertStatusEnum;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
...@@ -162,6 +163,15 @@ public class AlertCalledController extends BaseController { ...@@ -162,6 +163,15 @@ public class AlertCalledController extends BaseController {
alertStatus 警情状态 alertTypeCode 报警类型code alertSourceCode 警情来源code alertStatus 警情状态 alertTypeCode 报警类型code alertSourceCode 警情来源code
陈召 2021-08-21 开始*/ 陈召 2021-08-21 开始*/
IPage<AlertCalled> alertCalledIPage = iAlertCalledService.queryForCalledList(pageBean, alertStatus, alertTypeCode, alertSourceCode, startTime, endTime,sort); IPage<AlertCalled> alertCalledIPage = iAlertCalledService.queryForCalledList(pageBean, alertStatus, alertTypeCode, alertSourceCode, startTime, endTime,sort);
/* bug 2406 接警记录,列表缺少警情状态字段 by litw start*/
alertCalledIPage.getRecords().stream().forEach(e->{
if(e.getAlertStatus()) {
e.setAlertStatusStr(AlertStatusEnum.CLOSED.getName());
} else {
e.setAlertStatusStr(AlertStatusEnum.UNCLOSED.getName());
}
});
/* bug 2406 接警记录,列表缺少警情状态字段 by litw end*/
return ResponseHelper.buildResponse(alertCalledIPage); return ResponseHelper.buildResponse(alertCalledIPage);
/* bug2408 筛选参数解析异常 修改筛选条件方法 陈召 2021-08-21 结束*/ /* bug2408 筛选参数解析异常 修改筛选条件方法 陈召 2021-08-21 结束*/
/* bug2407 表头筛选失效 补充条件方法 XML中添加了排序条件判断 data代表排序条件 lift 升降序 陈召 2021-09-03 结束*/ /* bug2407 表头筛选失效 补充条件方法 XML中添加了排序条件判断 data代表排序条件 lift 升降序 陈召 2021-09-03 结束*/
......
package com.yeejoin.amos.boot.module.jcs.biz.controller; package com.yeejoin.amos.boot.module.jcs.biz.controller;
import com.yeejoin.amos.boot.biz.common.controller.BaseController; import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import com.yeejoin.amos.boot.biz.common.utils.MenuFrom;
import com.yeejoin.amos.boot.module.common.api.dto.ExcelDto; import com.yeejoin.amos.boot.module.common.api.dto.ExcelDto;
import com.yeejoin.amos.boot.module.jcs.api.enums.ExcelEnums; import com.yeejoin.amos.boot.module.jcs.api.enums.ExcelEnums;
import com.yeejoin.amos.boot.module.jcs.biz.service.impl.ExcelServiceImpl; import com.yeejoin.amos.boot.module.jcs.biz.service.impl.ExcelServiceImpl;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RequestPart;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import org.typroject.tyboot.core.foundation.enumeration.UserType; import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.restful.doc.TycloudOperation; import org.typroject.tyboot.core.restful.doc.TycloudOperation;
...@@ -16,7 +21,6 @@ import org.typroject.tyboot.core.restful.utils.ResponseHelper; ...@@ -16,7 +21,6 @@ import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel; import org.typroject.tyboot.core.restful.utils.ResponseModel;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.util.List;
/** /**
* 导出导入 * 导出导入
...@@ -150,7 +154,8 @@ public class ExcelController extends BaseController { ...@@ -150,7 +154,8 @@ public class ExcelController extends BaseController {
@TycloudOperation(needAuth = false, ApiLevel = UserType.AGENCY) @TycloudOperation(needAuth = false, ApiLevel = UserType.AGENCY)
@ApiOperation(value = "导出公用类带过滤参数") @ApiOperation(value = "导出公用类带过滤参数")
@PostMapping("/exportByParams/{type}") @PostMapping("/exportByParams/{type}")
public void getFireStationFileByParams(HttpServletResponse response, @PathVariable(value = "type") String type, @RequestParam(value = "params") String params) { public void getFireStationFileByParams(HttpServletResponse response, @PathVariable(value = "type") String type,
@RequestParam(value = "params") String params) {
try { try {
ExcelEnums excelEnums= ExcelEnums.getByKey(type); ExcelEnums excelEnums= ExcelEnums.getByKey(type);
ExcelDto excelDto = new ExcelDto(excelEnums.getFileName(), excelEnums.getSheetName(), excelEnums.getClassUrl(), excelEnums.getType()); ExcelDto excelDto = new ExcelDto(excelEnums.getFileName(), excelEnums.getSheetName(), excelEnums.getClassUrl(), excelEnums.getType());
......
...@@ -170,7 +170,7 @@ public class FirefightersController extends BaseController { ...@@ -170,7 +170,7 @@ public class FirefightersController extends BaseController {
Firefighters firefighter = firefighters.getFirefighters(); Firefighters firefighter = firefighters.getFirefighters();
FeignClientResult<RegionModel> region = Systemctl.regionClient.getRegion(Long.parseLong(firefighter.getResidenceDetails())); FeignClientResult<RegionModel> region = Systemctl.regionClient.getRegion(Long.parseLong(firefighter.getResidenceDetails()));
firefighter.setResidence(region.getResult().getRegionName()); firefighter.setResidence(region.getResult().getRegionName());
FeignClientResult<RegionModel> nativePlace = Systemctl.regionClient.getRegion(Long.parseLong(firefighter.getResidenceDetails())); FeignClientResult<RegionModel> nativePlace = Systemctl.regionClient.getRegion(Long.parseLong(firefighter.getNativePlace()));
firefighter.setNativePlaceValue(nativePlace.getResult().getRegionName()); firefighter.setNativePlaceValue(nativePlace.getResult().getRegionName());
iFirefightersService.updateById(firefighter); iFirefightersService.updateById(firefighter);
ifirefightersContactsService.updateById(firefighters.getFirefightersContacts()); ifirefightersContactsService.updateById(firefighters.getFirefightersContacts());
......
...@@ -143,21 +143,35 @@ public class AlertCalledServiceImpl extends BaseService<AlertCalledDto, AlertCal ...@@ -143,21 +143,35 @@ public class AlertCalledServiceImpl extends BaseService<AlertCalledDto, AlertCal
/** /**
* 接警记录 列表分页查询 * 接警记录 列表分页查询
**/ /* bug2407 筛选参数解析异常 修改筛选条件方法 XML中添加了selectAllPage 方法 data代表排序条件 lift 升降序 陈召 2021-09-03 开始*/ **/ /* bug2407 筛选参数解析异常 修改筛选条件方法 XML中添加了selectAllPage 方法 data代表排序条件 lift 升降序 陈召 2021-09-03 开始*/
public IPage<AlertCalled> queryForCalledList(Page pageBean, Integer alertStatus, // public IPage<AlertCalled> queryForCalledList(Page pageBean, Integer alertStatus,
String alertTypeCode, // String alertTypeCode,
String alertSourceCode, // String alertSourceCode,
String startTime, // String startTime,
String endTime, // String endTime,
String sort) { // String sort) {
String data = null; // String data = null;
String lift = null; // String lift = null;
if (StringUtils.isNotEmpty(sort)) { // if (StringUtils.isNotEmpty(sort)) {
String[] split = sort.split(","); // String[] split = sort.split(",");
data = RedisKey.humpToLine(split[0]); // data = RedisKey.humpToLine(split[0]);
lift = split[1]; // lift = split[1];
} // }
//
List<AlertCalled> list = alertCalledMapper.selectAllPage(pageBean.getCurrent(), pageBean.getSize(), alertStatus, alertTypeCode, alertSourceCode, startTime, endTime, data, lift); // List<AlertCalled> list = alertCalledMapper.selectAllPage(pageBean.getCurrent(), pageBean.getSize(), alertStatus, alertTypeCode, alertSourceCode, startTime, endTime, data, lift);
// }
public IPage<AlertCalled> queryForCalledList(Page pageBean,Integer alertStatus,
String alertTypeCode ,
String alertSourceCode,
String startTime,
String endTime,
String sort) {
String[] split = sort!=null? sort.split(","):null;
String data = split!=null? RedisKey.humpToLine(split[0]):null;
String lift =split!=null?split[1]:null;
List<AlertCalled> list = alertCalledMapper.selectAllPage(pageBean.getCurrent(), pageBean.getSize(), alertStatus, alertTypeCode, alertSourceCode, startTime, endTime,data,lift);
IPage<AlertCalled> iPage = new Page<>(); IPage<AlertCalled> iPage = new Page<>();
iPage.setRecords(list); iPage.setRecords(list);
iPage.setTotal(list.size()); iPage.setTotal(list.size());
......
package com.yeejoin.amos.boot.module.jcs.biz.service.impl; package com.yeejoin.amos.boot.module.jcs.biz.service.impl;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collection;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -10,6 +11,9 @@ import javax.annotation.Resource; ...@@ -10,6 +11,9 @@ import javax.annotation.Resource;
import com.yeejoin.amos.boot.module.common.api.dto.LinkageUnitDto; import com.yeejoin.amos.boot.module.common.api.dto.LinkageUnitDto;
import com.yeejoin.amos.boot.module.common.api.feign.EquipFeignClient; import com.yeejoin.amos.boot.module.common.api.feign.EquipFeignClient;
import com.yeejoin.amos.boot.module.common.api.service.ILinkageUnitService; import com.yeejoin.amos.boot.module.common.api.service.ILinkageUnitService;
import com.yeejoin.amos.component.feign.model.FeignClientResult;
import com.yeejoin.amos.feign.systemctl.Systemctl;
import com.yeejoin.amos.feign.systemctl.model.RegionModel;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
...@@ -72,6 +76,10 @@ public class DataSourcesImpl implements DataSources { ...@@ -72,6 +76,10 @@ public class DataSourcesImpl implements DataSources {
@Autowired @Autowired
ILinkageUnitService linkageUnitServiceImpl; ILinkageUnitService linkageUnitServiceImpl;
@Autowired
OrgUsrServiceImpl iOrgUsrService;
@Value("${security.systemctl.name}") @Value("${security.systemctl.name}")
private String systemctl; private String systemctl;
...@@ -138,6 +146,12 @@ public class DataSourcesImpl implements DataSources { ...@@ -138,6 +146,12 @@ public class DataSourcesImpl implements DataSources {
case "getUnitTeam": case "getUnitTeam":
str =getUnitTeam(); str =getUnitTeam();
break; break;
case "getCompany":
str =getCompany();
break;
case "getCitys":
str =getCitys();
break;
} }
} }
return str; return str;
...@@ -312,4 +326,40 @@ public class DataSourcesImpl implements DataSources { ...@@ -312,4 +326,40 @@ public class DataSourcesImpl implements DataSources {
String[] str = names.toArray(new String[names.size()]); String[] str = names.toArray(new String[names.size()]);
return str; return str;
} }
/**
* 消防队员模板获取所属部门
* @return
*/
private String[] getCompany() {
List<OrgMenuDto> menus = OrgUsrServiceImpl.buildTreeParallel(iOrgUsrService.selectCompanyDepartmentMsg());
List<String> names = menus.stream().map(item -> {
return item.getName() + "@" + item.getKey();
}).collect(Collectors.toList());
String[] str = names.toArray(new String[names.size()]);
return str;
}
/**
* 消防队员模板获取地址
* @return
*/
private String[] getCitys() {
FeignClientResult<java.util.Collection<RegionModel>> region = Systemctl.regionClient.queryForTreeParent(null);
java.util.Collection<RegionModel> regions = region.getResult();// 以及地址
List<String> address = new ArrayList<>();
setAddress(address,regions);
String[] str = address.toArray(new String[address.size()]);
return str;
}
private void setAddress(List<String> address, Collection<RegionModel> regions) {
regions.stream().forEach(item -> {
//添加自己的
address.add(item.getRegionName() + "@" + item.getSequenceNbr());
if(item.getChildren() != null && item.getChildren().size() > 0) {
setAddress(address,item.getChildren());
}
});
}
} }
...@@ -507,6 +507,22 @@ public class ExcelServiceImpl { ...@@ -507,6 +507,22 @@ public class ExcelServiceImpl {
String relationship = firefightersContacts.getRelationship().split("@")[1]; String relationship = firefightersContacts.getRelationship().split("@")[1];
firefightersContacts.setRelationship(relationship); firefightersContacts.setRelationship(relationship);
} }
if(firefighters.getCompanyName() != null) {
String[] tempCompany = firefighters.getCompanyName().split("@");
firefighters.setCompanyName(tempCompany[0]);
firefighters.setCompany(tempCompany[1]);
}
if(firefighters.getNativePlaceValue() != null) {
String[] tempCity = firefighters.getNativePlaceValue().split("@");
firefighters.setNativePlaceValue(tempCity[0]);
firefighters.setNativePlace(tempCity[1]);
}
if(firefighters.getResidence() != null) {
String[] tempCity = firefighters.getResidence().split("@");
firefighters.setResidence(tempCity[0]);
firefighters.setResidenceDetails(tempCity[1]);
}
// BUG 2760 修改消防人员导出模板和 导入问题 bykongfm
FirefightersInfoDto firefightersInfo = new FirefightersInfoDto(firefighters, firefightersContacts); FirefightersInfoDto firefightersInfo = new FirefightersInfoDto(firefighters, firefightersContacts);
firefightersService.saveFirefighters(firefightersInfo); firefightersService.saveFirefighters(firefightersInfo);
} }
......
package com.yeejoin.amos.boot.module.jcs.biz.service.impl; package com.yeejoin.amos.boot.module.jcs.biz.service.impl;
import com.alibaba.fastjson.JSONObject;
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.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import com.yeejoin.amos.boot.module.common.api.dto.DutyShiftDto;
import com.yeejoin.amos.boot.module.common.api.dto.FireBrigadeResourceDto; import com.yeejoin.amos.boot.module.common.api.dto.FireBrigadeResourceDto;
import com.yeejoin.amos.boot.module.common.api.entity.FireTeam; import com.yeejoin.amos.boot.module.common.api.entity.FireTeam;
import com.yeejoin.amos.boot.module.common.api.feign.EquipFeignClient; import com.yeejoin.amos.boot.module.common.api.feign.EquipFeignClient;
import com.yeejoin.amos.boot.module.common.biz.service.impl.DutyShiftServiceImpl;
import com.yeejoin.amos.boot.module.jcs.api.dto.CarStatusInfoDto; import com.yeejoin.amos.boot.module.jcs.api.dto.CarStatusInfoDto;
import com.yeejoin.amos.boot.module.jcs.api.dto.PowerCarCountDto; import com.yeejoin.amos.boot.module.jcs.api.dto.PowerCarCountDto;
import com.yeejoin.amos.boot.module.jcs.api.dto.PowerCompanyCountDto; import com.yeejoin.amos.boot.module.jcs.api.dto.PowerCompanyCountDto;
...@@ -39,6 +42,7 @@ import org.springframework.stereotype.Service; ...@@ -39,6 +42,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import org.typroject.tyboot.component.emq.EmqKeeper; import org.typroject.tyboot.component.emq.EmqKeeper;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import org.typroject.tyboot.core.foundation.exception.BaseException; import org.typroject.tyboot.core.foundation.exception.BaseException;
import org.typroject.tyboot.core.foundation.utils.Bean; import org.typroject.tyboot.core.foundation.utils.Bean;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil; import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
...@@ -93,6 +97,9 @@ public class PowerTransferServiceImpl extends BaseService<PowerTransferDto, Powe ...@@ -93,6 +97,9 @@ public class PowerTransferServiceImpl extends BaseService<PowerTransferDto, Powe
@Value("${mqtt.topic.command.power.deployment}") @Value("${mqtt.topic.command.power.deployment}")
private String topic; private String topic;
@Autowired
private DutyShiftServiceImpl dutyShiftServiceImpl;
@Override @Override
public PowerTransferSimpleDto getPowerTransferList(Long alertCalledId) { public PowerTransferSimpleDto getPowerTransferList(Long alertCalledId) {
List<PowerTransferCompanyResourcesDto> powerTransferList = List<PowerTransferCompanyResourcesDto> powerTransferList =
...@@ -411,15 +418,7 @@ public class PowerTransferServiceImpl extends BaseService<PowerTransferDto, Powe ...@@ -411,15 +418,7 @@ public class PowerTransferServiceImpl extends BaseService<PowerTransferDto, Powe
private IPage<PowerTransferResourceDto> getPowerTransferCarResource(Page<PowerTransferResourceDto> page, private IPage<PowerTransferResourceDto> getPowerTransferCarResource(Page<PowerTransferResourceDto> page,
Long alertCalledId) { Long alertCalledId) {
ResponseModel<Object> result = equipFeignClient.getFireCarListAll(); Map<String, List<Map<String, Object>>> carInfoMap = getCarListMap();
Map<String, List<Map<String, Object>>> carInfoMap = Maps.newConcurrentMap();
if (!ValidationUtil.isEmpty(result)) {
List<Map<String, Object>> fireCarListMapList = (List<Map<String, Object>>) result.getResult();
if (!ValidationUtil.isEmpty(fireCarListMapList)) {
carInfoMap =
fireCarListMapList.stream().collect(Collectors.groupingBy(car -> car.get("id").toString()));
}
}
IPage<PowerTransferResourceDto> carResourcePage = powerTransferMapper.getPowerTransferCarResource(page, alertCalledId); IPage<PowerTransferResourceDto> carResourcePage = powerTransferMapper.getPowerTransferCarResource(page, alertCalledId);
Map<String, List<Map<String, Object>>> finalCarInfoMap = carInfoMap; Map<String, List<Map<String, Object>>> finalCarInfoMap = carInfoMap;
...@@ -434,4 +433,82 @@ public class PowerTransferServiceImpl extends BaseService<PowerTransferDto, Powe ...@@ -434,4 +433,82 @@ public class PowerTransferServiceImpl extends BaseService<PowerTransferDto, Powe
}); });
return carResourcePage; return carResourcePage;
} }
private Map<String, List<Map<String, Object>>> getCarListMap() {
ResponseModel<Object> result = equipFeignClient.getFireCarListAll();
Map<String, List<Map<String, Object>>> carInfoMap = Maps.newConcurrentMap();
if (!ValidationUtil.isEmpty(result)) {
List<Map<String, Object>> fireCarListMapList = (List<Map<String, Object>>) result.getResult();
if (!ValidationUtil.isEmpty(fireCarListMapList)) {
carInfoMap =
fireCarListMapList.stream().collect(Collectors.groupingBy(car -> car.get("id").toString()));
}
}
return carInfoMap;
}
private List<Map<String, Object>> getCarList() {
ResponseModel<Object> result = equipFeignClient.getFireCarListAll();
List<Map<String, Object>> fireCarListMapList = Lists.newArrayList();
if (!ValidationUtil.isEmpty(result)) {
fireCarListMapList = (List<Map<String, Object>>) result.getResult();
}
return fireCarListMapList;
}
@Override
public JSONObject getPowerTransferCarResourceStatistics(Long alertCalledId) {
// 所有车辆
List<Map<String, Object>> carList = getCarList();
IPage<PowerTransferResourceDto> carResourcePage =
powerTransferMapper.getPowerTransferCarResource(new Page<>(1L, Long.MAX_VALUE),
alertCalledId);
// 调派的车辆id
List<Long> carIdList = Lists.transform(carResourcePage.getRecords(), PowerTransferResourceDto::getSequenceNbr);
// 调派的车辆信息列表
List<Map<String, Object>> totalCarList =
carList.stream().filter(c -> carIdList.contains(c.get("id"))).collect(Collectors.toList());
// TODO 车辆枚举后期修改为已到达状态
List<Map<String, Object>> arrivedCarList =
carList.stream().filter(c -> carIdList.contains(c.get("id")) && FireCarStatusEnum.出动.getCode().equals(c.get(
"carState"))).collect(Collectors.toList());
// 车辆统计
Long carTotal = carResourcePage.getTotal();
JSONObject resourceStatistics = new JSONObject();
JSONObject car = new JSONObject();
car.put("total", carTotal);
car.put("count", arrivedCarList.size());
car.put("percent", arrivedCarList.size() / carTotal);
resourceStatistics.put("car", car);
// 车辆人员统计
// 当前时间所在班次
List<DutyShiftDto> dutyList = dutyShiftServiceImpl.queryForDutyShiftList(RequestContext.getAppKey(), false);
// 车辆值班
JSONObject person = new JSONObject();
person.put("total", carTotal);
person.put("count", arrivedCarList.size());
person.put("percent", arrivedCarList.size() / carTotal);
resourceStatistics.put("person", person);
// TODO 车载器材统计
JSONObject equip = new JSONObject();
equip.put("total", carTotal);
equip.put("count", arrivedCarList.size());
equip.put("percent", arrivedCarList.size() / carTotal);
resourceStatistics.put("equip", equip);
// TODO 车载水量统计
JSONObject water = new JSONObject();
water.put("total", carTotal);
water.put("count", arrivedCarList.size());
water.put("percent", arrivedCarList.size() / carTotal);
resourceStatistics.put("water", water);
// TODO 车载药剂统计
JSONObject medicament = new JSONObject();
medicament.put("total", carTotal);
medicament.put("count", arrivedCarList.size());
medicament.put("percent", arrivedCarList.size() / carTotal);
resourceStatistics.put("medicament", medicament);
return resourceStatistics;
}
} }
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false"> <configuration debug="false">
<!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径--> <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
<property name="LOG_HOME" value="log" /> <property name="LOG_HOME" value="log" />
<property name="LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %-50.50logger{50} - %msg [%file:%line] %n" />
<!-- 按照每天生成日志文件 --> <!-- 按照每天生成日志文件 -->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
...@@ -12,7 +13,7 @@ ...@@ -12,7 +13,7 @@
</rollingPolicy> </rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符--> <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern> <pattern>${LOG_PATTERN}</pattern>
</encoder> </encoder>
<!--日志文件最大的大小--> <!--日志文件最大的大小-->
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
...@@ -23,7 +24,8 @@ ...@@ -23,7 +24,8 @@
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符--> <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern> <!-- <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %-50.50logger{50} - %msg [%file:%line] %n</pattern>-->
<pattern>${LOG_PATTERN}</pattern>
</encoder> </encoder>
</appender> </appender>
<!--myibatis log configure--> <!--myibatis log configure-->
......
...@@ -2,6 +2,8 @@ ...@@ -2,6 +2,8 @@
<configuration debug="false"> <configuration debug="false">
<!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径--> <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
<property name="LOG_HOME" value="log" /> <property name="LOG_HOME" value="log" />
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
<property name="LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %-50.50logger{50} - %msg [%file:%line] %n" />
<!-- 按照每天生成日志文件 --> <!-- 按照每天生成日志文件 -->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
...@@ -11,8 +13,7 @@ ...@@ -11,8 +13,7 @@
<MaxHistory>7</MaxHistory> <MaxHistory>7</MaxHistory>
</rollingPolicy> </rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符--> <pattern>${LOG_PATTERN}</pattern>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
</encoder> </encoder>
<!--日志文件最大的大小--> <!--日志文件最大的大小-->
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
...@@ -21,8 +22,7 @@ ...@@ -21,8 +22,7 @@
</appender> </appender>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符--> <pattern>${LOG_PATTERN}</pattern>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
</encoder> </encoder>
</appender> </appender>
<!--myibatis log configure--> <!--myibatis log configure-->
......
...@@ -2,26 +2,26 @@ ...@@ -2,26 +2,26 @@
<configuration debug="false"> <configuration debug="false">
<!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径--> <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
<property name="LOG_HOME" value="log" /> <property name="LOG_HOME" value="log" />
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
<property name="LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %-50.50logger{50} - %msg [%file:%line] %n" />
<!-- 按照每天生成日志文件 --> <!-- 按照每天生成日志文件 -->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!--日志文件输出的文件名--> <!--日志文件输出的文件名-->
<FileNamePattern>${LOG_HOME}/patrol.log.%d{yyyy-MM-dd}.%i.log</FileNamePattern> <FileNamePattern>${LOG_HOME}/tzs.log.%d{yyyy-MM-dd}.%i.log</FileNamePattern>
<!--日志文件保留天数--> <!--日志文件保留天数-->
<MaxHistory>30</MaxHistory> <MaxHistory>30</MaxHistory>
<!--日志文件大小--> <!--日志文件大小-->
<MaxFileSize>30mb</MaxFileSize> <MaxFileSize>30mb</MaxFileSize>
</rollingPolicy> </rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符--> <pattern>${LOG_PATTERN}</pattern>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
</encoder> </encoder>
</appender> </appender>
<!-- 控制台输出 --> <!-- 控制台输出 -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符--> <pattern>${LOG_PATTERN}</pattern>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
</encoder> </encoder>
</appender> </appender>
<!-- show parameters for hibernate sql 专为 Hibernate 定制 <!-- show parameters for hibernate sql 专为 Hibernate 定制
...@@ -39,6 +39,11 @@ ...@@ -39,6 +39,11 @@
<logger name="java.sql.PreparedStatement" level="DEBUG"/> <logger name="java.sql.PreparedStatement" level="DEBUG"/>
<logger name="org.springframework" level="DEBUG"/> <logger name="org.springframework" level="DEBUG"/>
<logger name="com.baomidou.mybatisplus" level="DEBUG"/>
<logger name="org.apache.activemq" level="INFO"/>
<logger name="org.typroject" level="DEBUG"/>
<logger name="com.yeejoin" level="DEBUG"/>
<!-- 日志输出级别 --> <!-- 日志输出级别 -->
<root level="DEBUG"> <root level="DEBUG">
<!--<appender-ref ref="FILE" /> --> <!--<appender-ref ref="FILE" /> -->
......
...@@ -2,26 +2,26 @@ ...@@ -2,26 +2,26 @@
<configuration debug="false"> <configuration debug="false">
<!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径--> <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
<property name="LOG_HOME" value="log" /> <property name="LOG_HOME" value="log" />
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
<property name="LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %-50.50logger{50} - %msg [%file:%line] %n" />
<!-- 按照每天生成日志文件 --> <!-- 按照每天生成日志文件 -->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!--日志文件输出的文件名--> <!--日志文件输出的文件名-->
<FileNamePattern>${LOG_HOME}/patrol.log.%d{yyyy-MM-dd}.%i.log</FileNamePattern> <FileNamePattern>${LOG_HOME}/tzs.log.%d{yyyy-MM-dd}.%i.log</FileNamePattern>
<!--日志文件保留天数--> <!--日志文件保留天数-->
<MaxHistory>30</MaxHistory> <MaxHistory>30</MaxHistory>
<!--日志文件大小--> <!--日志文件大小-->
<MaxFileSize>30mb</MaxFileSize> <MaxFileSize>30mb</MaxFileSize>
</rollingPolicy> </rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符--> <pattern>${LOG_PATTERN}</pattern>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
</encoder> </encoder>
</appender> </appender>
<!-- 控制台输出 --> <!-- 控制台输出 -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符--> <pattern>${LOG_PATTERN}</pattern>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
</encoder> </encoder>
</appender> </appender>
<!-- show parameters for hibernate sql 专为 Hibernate 定制 <!-- show parameters for hibernate sql 专为 Hibernate 定制
...@@ -39,6 +39,11 @@ ...@@ -39,6 +39,11 @@
<logger name="java.sql.PreparedStatement" level="DEBUG"/> <logger name="java.sql.PreparedStatement" level="DEBUG"/>
<logger name="org.springframework" level="DEBUG"/> <logger name="org.springframework" level="DEBUG"/>
<logger name="com.baomidou.mybatisplus" level="DEBUG"/>
<logger name="org.apache.activemq" level="INFO"/>
<logger name="org.typroject" level="DEBUG"/>
<logger name="com.yeejoin" level="DEBUG"/>
<!-- 日志输出级别 --> <!-- 日志输出级别 -->
<root level="DEBUG"> <root level="DEBUG">
<appender-ref ref="FILE" /> <appender-ref ref="FILE" />
......
...@@ -29,12 +29,12 @@ public class ElasticSearchClientConfig { ...@@ -29,12 +29,12 @@ public class ElasticSearchClientConfig {
@Qualifier("highLevelClient") @Qualifier("highLevelClient")
public RestHighLevelClient restHighLevelClient() { public RestHighLevelClient restHighLevelClient() {
String auth = Base64.encodeBase64String(("elastic:es123456").getBytes());
try { try {
String url = uris.replace("http://", ""); String url = uris.replace("http://", "");
final String[] parts = StringUtils.split(url, ":"); final String[] parts = StringUtils.split(url, ":");
HttpHost httpHost = new HttpHost(parts[0], Integer.parseInt(parts[1]), "http"); HttpHost httpHost = new HttpHost(parts[0], Integer.parseInt(parts[1]), "http");
RestClientBuilder builder = RestClient.builder(httpHost); RestClientBuilder builder = RestClient.builder(httpHost);
//增加安全配置,使用kibana,勿删
final CredentialsProvider credentialsProvider = new BasicCredentialsProvider(); final CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials("elastic","es123456")); credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials("elastic","es123456"));
builder.setRequestConfigCallback(new RestClientBuilder.RequestConfigCallback() { builder.setRequestConfigCallback(new RestClientBuilder.RequestConfigCallback() {
...@@ -46,17 +46,14 @@ public class ElasticSearchClientConfig { ...@@ -46,17 +46,14 @@ public class ElasticSearchClientConfig {
.setSocketTimeout(6000 * 1000);// 套接字超时(默认为30秒)//更改客户端的超时限制默认30秒现在改为100*1000分钟 .setSocketTimeout(6000 * 1000);// 套接字超时(默认为30秒)//更改客户端的超时限制默认30秒现在改为100*1000分钟
} }
});// 调整最大重试超时时间(默认为30秒).setMaxRetryTimeoutMillis(60000); });// 调整最大重试超时时间(默认为30秒).setMaxRetryTimeoutMillis(60000);
builder.setHttpClientConfigCallback(new RestClientBuilder.HttpClientConfigCallback() { //增加安全配置,使用kibana,勿删
@Override // builder.setHttpClientConfigCallback(new RestClientBuilder.HttpClientConfigCallback() {
public HttpAsyncClientBuilder customizeHttpClient(HttpAsyncClientBuilder httpClientBuilder) { // @Override
httpClientBuilder.disableAuthCaching(); // public HttpAsyncClientBuilder customizeHttpClient(HttpAsyncClientBuilder httpClientBuilder) {
return httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider); // httpClientBuilder.disableAuthCaching();
} // return httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider);
}); // }
// });
// builder.setDefaultHeaders(new BasicHeader[] {
// new BasicHeader("Authorization","Basic"+auth)
// });
return new RestHighLevelClient(builder); return new RestHighLevelClient(builder);
} catch (Exception e) { } catch (Exception e) {
throw new IllegalStateException("Invalid ES nodes " + "property '" + uris + "'", e); throw new IllegalStateException("Invalid ES nodes " + "property '" + uris + "'", e);
......
...@@ -5,6 +5,8 @@ import java.util.List; ...@@ -5,6 +5,8 @@ import java.util.List;
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.PathVariable; import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
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 org.typroject.tyboot.core.foundation.enumeration.UserType; import org.typroject.tyboot.core.foundation.enumeration.UserType;
...@@ -13,9 +15,8 @@ import org.typroject.tyboot.core.restful.utils.ResponseHelper; ...@@ -13,9 +15,8 @@ import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel; import org.typroject.tyboot.core.restful.utils.ResponseModel;
import com.yeejoin.amos.boot.biz.common.controller.BaseController; import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import com.yeejoin.amos.video.dao.impl.VideoOriginalServiceImpl;
import com.yeejoin.amos.video.dto.VideoOriginalDto; import com.yeejoin.amos.video.dto.VideoOriginalDto;
import com.yeejoin.amos.video.entity.VideoOriginal; import com.yeejoin.amos.video.service.impl.VideoOriginalServiceImpl;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
...@@ -34,14 +35,20 @@ public class VideoOriginalController extends BaseController { ...@@ -34,14 +35,20 @@ public class VideoOriginalController extends BaseController {
@Autowired @Autowired
private VideoOriginalServiceImpl videoOriginalServiceImpl; private VideoOriginalServiceImpl videoOriginalServiceImpl;
@GetMapping("/hk/init") @PostMapping("/hk/init")
@TycloudOperation(ApiLevel = UserType.AGENCY,needAuth=false) @TycloudOperation(ApiLevel = UserType.AGENCY,needAuth=false)
@ApiOperation(httpMethod = "GET", value = "构建海康原始视频数据", notes = "构建海康原始视频数据") @ApiOperation(httpMethod = "POST", value = "构建海康原始视频数据", notes = "构建海康原始视频数据,db参数为true时,同时保存到数据库")
public ResponseModel<Boolean> hkInitData() { public ResponseModel<Boolean> hkInitEsData(Boolean db) {
return ResponseHelper.buildResponse(videoOriginalServiceImpl.initEs("", "")); return ResponseHelper.buildResponse(videoOriginalServiceImpl.initEs("", "",db));
} }
// @PostMapping("/hk/db/init")
// @TycloudOperation(ApiLevel = UserType.AGENCY,needAuth=false)
// @ApiOperation(httpMethod = "POST", value = "构建海康原始视频数据", notes = "构建海康原始视频数据")
// public ResponseModel<Boolean> hkInitDBData() {
// return ResponseHelper.buildResponse(videoOriginalServiceImpl.initDB("", ""));
// }
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false) @TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@ApiOperation(httpMethod = "GET", value = "按视频名称查询视频节点", notes = "按视频名称查询视频节点") @ApiOperation(httpMethod = "GET", value = "按视频名称查询视频节点'", notes = "按视频名称查询视频节点,'all参数为查询所有")
@GetMapping(value = "/list/video/{cn}") @GetMapping(value = "/list/video/{cn}")
public ResponseModel<List<VideoOriginalDto>> videoBySimilar( @PathVariable String cn) throws Exception { public ResponseModel<List<VideoOriginalDto>> videoBySimilar( @PathVariable String cn) throws Exception {
return ResponseHelper.buildResponse(videoOriginalServiceImpl.qeueryByKeys(cn)); return ResponseHelper.buildResponse(videoOriginalServiceImpl.qeueryByKeys(cn));
......
...@@ -5,7 +5,7 @@ import java.util.List; ...@@ -5,7 +5,7 @@ import java.util.List;
import org.springframework.data.repository.PagingAndSortingRepository; import org.springframework.data.repository.PagingAndSortingRepository;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import com.yeejoin.amos.video.entity.VideoOriginal; import com.yeejoin.amos.video.entity.EsVideoOriginal;
/** /**
* 模板表接口类 * 模板表接口类
...@@ -14,8 +14,8 @@ import com.yeejoin.amos.video.entity.VideoOriginal; ...@@ -14,8 +14,8 @@ import com.yeejoin.amos.video.entity.VideoOriginal;
* @date 2021-09-01 * @date 2021-09-01
*/ */
@Repository @Repository
public interface IVideoOriginalRepository extends PagingAndSortingRepository<VideoOriginal, String> { public interface IVideoOriginalRepository extends PagingAndSortingRepository<EsVideoOriginal, String> {
List<VideoOriginal> findByCnLike(String cn); List<EsVideoOriginal> findByCnLike(String cn);
} }
package com.yeejoin.amos.video.dto; package com.yeejoin.amos.video.dto;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import java.util.Date;
/** /**
* 模板表 * 模板表
...@@ -27,5 +27,6 @@ public class VideoOriginalDto extends BaseDto { ...@@ -27,5 +27,6 @@ public class VideoOriginalDto extends BaseDto {
@ApiModelProperty(value = "视频代码") @ApiModelProperty(value = "视频代码")
private String indexCode; private String indexCode;
@ApiModelProperty(value = "视频厂商类型")
private String type;
} }
package com.yeejoin.amos.video.entity;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.data.elasticsearch.annotations.FieldType;
import lombok.Data;
import lombok.experimental.Accessors;
/**
* 模板表
*
* @author system_generator
* @date 2021-09-01
*/
@Data
@Accessors(chain = true)
@Document(indexName = "video", type = "videoOriginal", shards = 1, replicas = 0)
public class EsVideoOriginal {
/** 主键 */
@Id
private String sequenceNbr;
/**
* 视频名称
*/
@Field(type = FieldType.Text)
private String cn;
/**
* 视频代码
*/
@Field(type = FieldType.Text)
private String indexCode;
/**
* 原始数据
*/
@Field(type = FieldType.Text, index = false)
private String originalData;
/**
* 视频厂商类型
*/
@Field(type = FieldType.Keyword, index = false)
private String type;
@Field(type = FieldType.Text, index = false)
private String recDate;
@Field(type = FieldType.Text, index = false)
private String recUserId;
@Field(type = FieldType.Text, index = false)
private String recUserName;
}
package com.yeejoin.amos.video.entity; package com.yeejoin.amos.video.entity;
import java.util.Date; import com.baomidou.mybatisplus.annotation.TableName;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.data.elasticsearch.annotations.FieldType;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
/** /**
...@@ -17,35 +16,35 @@ import lombok.experimental.Accessors; ...@@ -17,35 +16,35 @@ import lombok.experimental.Accessors;
* @date 2021-09-01 * @date 2021-09-01
*/ */
@Data @Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true) @Accessors(chain = true)
@Document(indexName = "video", type = "videoOriginal", shards = 1, replicas = 0) @TableName("cb_video_original")
public class VideoOriginal { @ApiModel(value="VideoOriginal对象", description="视频原始数据")
/** 主键 */ public class VideoOriginal extends BaseEntity{
@Id /**
private String sequenceNbr; *
*/
private static final long serialVersionUID = 1L;
/** /**
* 视频名称 * 视频名称
*/ */
@Field(type = FieldType.Keyword) @ApiModelProperty(value = "视频名称")
private String cn; private String cn;
/** /**
* 视频代码 * 视频代码
*/ */
@Field(type = FieldType.Text) @ApiModelProperty(value = "视频名称")
private String indexCode; private String indexCode;
/** /**
* 原始数据 * 原始数据
*/ */
@Field(type = FieldType.Text, index = false) @ApiModelProperty(value = "视频名称")
private String originalData; private String originalData;
@Field(type = FieldType.Text, index = false) /**
private String recDate; * 视频厂商类型
@Field(type = FieldType.Text, index = false) */
private String recUserId; @ApiModelProperty(value = "视频厂商类型")
@Field(type = FieldType.Text, index = false) private String type;
private String recUserName;
} }
package com.yeejoin.amos.video.service;
public interface IVideoOriginalService {
}
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