Commit 5209a24b authored by KeYong's avatar KeYong

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

parents dd1401f4 ba8f34c9
......@@ -30,4 +30,6 @@ public class BuildSearchDTO {
* 分组类型
*/
private String groupType;
private String bizOrgCode;
}
......@@ -15,4 +15,6 @@ public class VideoDTO extends BaseDTO<Video> {
* 监控
*/
Video video;
String orgTypes;
}
......@@ -281,4 +281,12 @@ public class BuildingController extends AbstractBaseController {
public Map<String, String> getBuildingToLongitudeAndLatitude(@RequestParam String instanceId){
return buildService.getBuildingToLongitudeAndLatitude(instanceId);
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation("公司消防建筑树")
@GetMapping(value = "/companyBuildingTree")
public List<BuildingTreeVo> getCompanyBuildingTree() {
return buildService.getCompanyBuildingTree();
}
}
......@@ -21,6 +21,7 @@ import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.scheduling.annotation.Async;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
......@@ -100,6 +101,7 @@ import com.yeejoin.equipmanage.service.ISyncDataService;
import com.yeejoin.equipmanage.service.ISystemDicService;
import com.yeejoin.equipmanage.service.ProductionQRCode;
import com.yeejoin.equipmanage.service.impl.EquipmentSpecificSerivceImpl;
import com.yeejoin.equipmanage.service.impl.FireFightingSystemServiceImpl;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
......@@ -193,10 +195,14 @@ public class CarController extends AbstractBaseController {
@Autowired
JcsFeign jcsFeign;
@Autowired
FireFightingSystemServiceImpl fireFightingSystemServiceImpl;
/**
* 新增消防车信息
*
* @return
* @throws Exception
*/
@RequestMapping(value = "/save", method = RequestMethod.POST)
@TycloudOperation(ApiLevel = UserType.AGENCY)
......@@ -231,10 +237,21 @@ public class CarController extends AbstractBaseController {
}
});
}
iCarService.refreshStaData();
refreshCount(car.getBizOrgCode());
return iCarService.saveOne(car);
}
@Async
public void refreshCount(String bizOrgCode) {
iCarService.refreshStaData();
try {
fireFightingSystemServiceImpl.refreshCarTypeAndCount(bizOrgCode);
} catch (Exception e) {
}
}
/**
* 根据iotCode查询
*
......@@ -244,7 +261,8 @@ public class CarController extends AbstractBaseController {
@RequestMapping(value = "/checkIotCode/{iotCode}/{id}", method = RequestMethod.GET)
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET", value = "根据iotCode查询", notes = "根据iotCode查询")
public ResponseModel selectByIotCode(HttpServletRequest request, @PathVariable String iotCode, @PathVariable String id) {
public ResponseModel selectByIotCode(HttpServletRequest request, @PathVariable String iotCode,
@PathVariable String id) {
Map map1 = new HashMap();
map1.put("state", "FAILED");
map1.put("message", "若您设置物联编码,请至少输入9位字符!");
......@@ -292,7 +310,7 @@ public class CarController extends AbstractBaseController {
// carInstance = iCarService.saveCar(getUserInfo(), carInstance, carInfo, carpList);
// saveFile(carInstance);视频图片文件后期统一处理
EquipmentSpecificSerivceImpl.registerMqttTopic(car.getIotCode(), equipmentIotMqttReceiveConfig);
iCarService.refreshStaData();
refreshCount(car.getBizOrgCode());
return iCarService.updateOneById(car);
}
......@@ -316,7 +334,8 @@ public class CarController extends AbstractBaseController {
boolean b = iCarService.removeByIds(idStrings);
// AST数据同步
if (b && syncSwitch) {
List<Long> carIds = idStrings.stream().map(id -> Long.parseLong(id.trim())).collect(Collectors.toList());
List<Long> carIds = idStrings.stream().map(id -> Long.parseLong(id.trim()))
.collect(Collectors.toList());
syncDataService.syncDeletedFireVehicle(carIds);
iCarService.dataSyncDeletedIds(carIds);
}
......@@ -343,7 +362,6 @@ public class CarController extends AbstractBaseController {
}
}
}
iCarService.refreshStaData();
return new CommonResponse(SUCCESS);
}
}
......@@ -383,12 +401,11 @@ public class CarController extends AbstractBaseController {
@RequestMapping(value = "/threeDimensional/getCarDetailById/{id}", method = RequestMethod.GET)
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET", value = "根据车辆id查询", notes = "根据车辆id查询")
public CarForUE4VO getCarDetailByCarNumToThreeDimensional (HttpServletRequest request, @PathVariable Long id) {
public CarForUE4VO getCarDetailByCarNumToThreeDimensional(HttpServletRequest request, @PathVariable Long id) {
String orgCode = getOrgCode();
return iCarService.getCarDetailByCarNumToThreeDimensional(id, orgCode);
}
/**
* 根据车牌号查询车辆详情信息
*
......@@ -603,7 +620,6 @@ public class CarController extends AbstractBaseController {
@ApiParam(value = "车辆Id", required = true) @PathVariable(value = "carId") String carId,
@ApiParam(value = "灭火剂损耗请求条件", required = false) @RequestBody(required = false) List<ExtinguishantLossRequest> requests) {
try {
iCarService.refreshStaData();
return iCarService.lossExtinguishants(Long.valueOf(carId), requests);
} catch (Exception e) {
......@@ -679,7 +695,6 @@ public class CarController extends AbstractBaseController {
return response;
}
private List<CarProperty> createCarPropertyList(List<CarProperty> carPropertyList) {
List<CarProperty> carProList = new ArrayList<CarProperty>();
if (!carPropertyList.isEmpty()) {
......@@ -1112,8 +1127,8 @@ public class CarController extends AbstractBaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET", value = "模拟车辆历史轨迹数据(<font color='blue'>release</font>)", notes = "模拟车辆历史轨迹数据")
@RequestMapping(value = "/history/{iotCode}/{timeStart}/{timeEnd}", method = RequestMethod.GET, produces = "application/json;charset=UTF-8")
public ResponseModel getCarHistoryTrackAndTrendById(@PathVariable("iotCode") String iotCode, @PathVariable("timeStart") String timeStart,
@PathVariable("timeEnd") String timeEnd) {
public ResponseModel getCarHistoryTrackAndTrendById(@PathVariable("iotCode") String iotCode,
@PathVariable("timeStart") String timeStart, @PathVariable("timeEnd") String timeEnd) {
String prefix = null;
String suffix = null;
if (iotCode.length() > 8) {
......@@ -1133,16 +1148,16 @@ public class CarController extends AbstractBaseController {
HttpEntity httpEntity = new HttpEntity<>(lonAndLatEntityVo, headers);
ResponseEntity<FeignClientResult> feignClientResult = null;
try {
feignClientResult = restTemplate.exchange("http://" + url
+ "/iot/v1/livedata/list?timeStart=" + timeStart + "&timeEnd=" + timeEnd + "&productKey=" + prefix + "&deviceName=" + suffix,
feignClientResult = restTemplate.exchange(
"http://" + url + "/iot/v1/livedata/list?timeStart=" + timeStart + "&timeEnd=" + timeEnd
+ "&productKey=" + prefix + "&deviceName=" + suffix,
HttpMethod.GET, httpEntity, FeignClientResult.class);
} catch (Exception e) {
e.printStackTrace();
}
if (null != feignClientResult && feignClientResult.getBody().getStatus() == 200) {
return CommonResponseUtil.success(feignClientResult.getBody().getResult());
}
else {
} else {
log.error("注:iotCode为 (" + iotCode + ") 的车辆不存在于物联系统或物联系统车辆历史轨迹接口出错!");
return CommonResponseUtil.success();
}
......@@ -1175,16 +1190,11 @@ public class CarController extends AbstractBaseController {
@GetMapping(value = "/list-all")
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET", value = "车辆列表", notes = "车辆列表")
public List<CarInfoDto> equipmentList(
@RequestParam(required = false) Long teamId,
public List<CarInfoDto> equipmentList(@RequestParam(required = false) Long teamId,
@RequestParam(required = false) String name) {
return iCarService.carInfoList(teamId, name);
}
/**
* 查询车辆-共共接口
*
......@@ -1195,14 +1205,10 @@ public class CarController extends AbstractBaseController {
@GetMapping(value = "/list-allpag")
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET", value = "车辆列表", notes = "车辆列表")
public Page<CarInfoDto> equipmentCarList(
@RequestParam(required = false) Long teamId,
@RequestParam(required = false) String name,
@RequestParam(required = false) String code ,
@RequestParam(required = false) String pageNum,
@RequestParam(required = false) String pageSize,
@RequestParam(required = false) Long id,
@RequestParam(required = false) Boolean isNo
public Page<CarInfoDto> equipmentCarList(@RequestParam(required = false) Long teamId,
@RequestParam(required = false) String name, @RequestParam(required = false) String code,
@RequestParam(required = false) String pageNum, @RequestParam(required = false) String pageSize,
@RequestParam(required = false) Long id, @RequestParam(required = false) Boolean isNo
) {
Page<CarInfoDto> pageBean;
......@@ -1212,10 +1218,9 @@ public class CarController extends AbstractBaseController {
pageBean = new Page<>(Integer.parseInt(pageNum), Integer.parseInt(pageSize));
}
return iCarService.equipmentCarList(pageBean,teamId, name,code,id,isNo);
return iCarService.equipmentCarList(pageBean, teamId, name, code, id, isNo);
}
/**
* 机场查询队伍与车辆数量
*
......@@ -1245,8 +1250,7 @@ public class CarController extends AbstractBaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET", value = "获取消防队伍的消防车辆", notes = "获取消防队伍的消防车辆")
public ResponseModel getTeamCarList(@RequestParam(required = false) Long id,
@RequestParam(required = false) Double longitude,
@RequestParam(required = false) Double latitude) {
@RequestParam(required = false) Double longitude, @RequestParam(required = false) Double latitude) {
return CommonResponseUtil.success(iCarService.getTeamCarList(id, longitude, latitude));
}
......
......@@ -18,6 +18,7 @@ import com.yeejoin.equipmanage.mapper.EquipmentDetailMapper;
import com.yeejoin.equipmanage.mapper.ManufacturerInfoMapper;
import com.yeejoin.equipmanage.mapper.StockDetailMapper;
import com.yeejoin.equipmanage.service.*;
import com.yeejoin.equipmanage.service.impl.FireFightingSystemServiceImpl;
import com.yeejoin.equipmanage.utils.ExcelUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
......@@ -27,6 +28,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Lazy;
import org.springframework.http.MediaType;
import org.springframework.scheduling.annotation.Async;
import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
......@@ -83,6 +85,8 @@ public class EquipmentDetailController extends AbstractBaseController {
@Value("${systemctl.sync.switch}")
private Boolean syncSwitch;
@Autowired
FireFightingSystemServiceImpl fireFightingSystemServiceImpl;
/**
* 新增
*
......@@ -92,9 +96,18 @@ public class EquipmentDetailController extends AbstractBaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "新增", notes = "新增")
public EquipmentDetail saveEquipmentDetail(HttpServletRequest request, @RequestBody EquipmentDetail equipmentDetail) {
equipmentSpecificSerivce.refreshStaData();
return iEquipmentDetailService.saveOne(equipmentDetail);
}
@Async
public void refreshCount(String bizOrgCode) {
equipmentSpecificSerivce.refreshStaData();
try {
fireFightingSystemServiceImpl.refreshCarTypeAndCount(bizOrgCode);
} catch (Exception e) {
}
}
/**
* 设备新增带打码入库
***/
......@@ -102,6 +115,7 @@ public class EquipmentDetailController extends AbstractBaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "新增", notes = "新增")
public EquipmentDate saveEquipmentDetail(@RequestBody EquipmentDate equipmentDate) {
equipmentSpecificSerivce.refreshStaData();
if (equipmentDate.getEquipmentSpecific().getSingle() == null) {
throw new BadRequest("管理方式未输入");
}
......@@ -202,6 +216,7 @@ public class EquipmentDetailController extends AbstractBaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "PUT", value = "修改", notes = "修改")
public EquipmentDate updateByIdEquipmentDetail(HttpServletRequest request, @RequestBody EquipmentDate equipmentDate) {
equipmentSpecificSerivce.refreshStaData();
EquipmentSpecific vo = equipmentDate.getEquipmentSpecific();
String sysCode = vo.getCode();
if (StringUtils.isNotEmpty(sysCode) && StringUtils.isNotEmpty(sysCode.trim())) {
......@@ -258,6 +273,7 @@ public class EquipmentDetailController extends AbstractBaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "DELETE", value = "根据id删除", notes = "根据id删除")
public boolean deleteById(HttpServletRequest request, @PathVariable Long id) {
equipmentSpecificSerivce.refreshStaData();
return iEquipmentDetailService.removeOneById(id);
}
......@@ -265,6 +281,7 @@ public class EquipmentDetailController extends AbstractBaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "PUT", value = "修改", notes = "修改")
public boolean quotaUpdate(HttpServletRequest request, @RequestBody List<EquProperty> e) {
equipmentSpecificSerivce.refreshStaData();
return iEquipmentDetailService.quotaUpdate(e);
}
......
......@@ -8,6 +8,7 @@ import java.util.stream.Collectors;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Async;
import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
......@@ -29,13 +30,13 @@ import com.yeejoin.equipmanage.common.entity.EquipmentSpecific;
import com.yeejoin.equipmanage.common.entity.dto.EquipmentSpecificDTO;
import com.yeejoin.equipmanage.common.entity.dto.SourceNameListDTO;
import com.yeejoin.equipmanage.common.entity.vo.ComplementCodeVO;
import com.yeejoin.equipmanage.common.entity.vo.DetailPaneVO;
import com.yeejoin.equipmanage.common.entity.vo.SourceNameByEquipSpeIdVO;
import com.yeejoin.equipmanage.common.utils.CommonResponseUtil;
import com.yeejoin.equipmanage.common.vo.EquipmentOnCarVo;
import com.yeejoin.equipmanage.mapper.EquipmentSpecificMapper;
import com.yeejoin.equipmanage.service.IEquipmentDetailService;
import com.yeejoin.equipmanage.service.IEquipmentSpecificSerivce;
import com.yeejoin.equipmanage.service.impl.FireFightingSystemServiceImpl;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
......@@ -71,11 +72,9 @@ public class EquipmentSpecificController extends AbstractBaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "列表分页查询", notes = "补码列表接口,废弃未用到")
public IPage<ComplementCodeVO> saveEquipmentPoint(@RequestBody EquipmentSpecificDTO equipmentSpecific) {
equipmentSpecificSerivce.refreshStaData();
return equipmentSpecificSerivce.selectEquipmentSpecific(equipmentSpecific);
}
/**
* 通过id获取设备区域建筑等信息
*
......@@ -107,9 +106,8 @@ public class EquipmentSpecificController extends AbstractBaseController {
*/
@RequestMapping(value = "/exit", method = RequestMethod.POST)
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "修改", notes = "修改")
@ApiOperation(httpMethod = "POST", value = "修改" , notes = "修改")
public EquipmentSpecific updateEquipmentSpecific(@RequestBody EquipmentSpecific equipmentSpecific) {
equipmentSpecificSerivce.refreshStaData();
EquipmentSpecific updateEquipmentSpecific = equipmentSpecificSerivce.updateEquipmentSpecific(equipmentSpecific, getSelectedOrgInfo(), getUserInfo());
if (syncSwitch) {
// TODO 后续判断成功,执行同步
......@@ -249,7 +247,6 @@ public class EquipmentSpecificController extends AbstractBaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation( value = "删除装备相关所有数据", notes = "删除装备相关所有数据")
public ResponseModel delEquipmentBySpecificId(@RequestParam Long specificId) {
equipmentSpecificSerivce.refreshStaData();
return CommonResponseUtil.success(equipmentSpecificSerivce.delEquipmentBySpecificId(specificId));
}
......@@ -262,7 +259,6 @@ public class EquipmentSpecificController extends AbstractBaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation( value = "批量删除装备相关所有数据", notes = "批量删除装备相关所有数据")
public ResponseModel delEquipmentBySpecificId(@RequestBody List<Long> specificIds) {
equipmentSpecificSerivce.refreshStaData();
if(ObjectUtils.isEmpty(specificIds)){
return CommonResponseUtil.failure("参数为空");
}
......
......@@ -17,7 +17,7 @@ import java.util.List;
*/
@Mapper
public interface VideoMapper extends BaseMapper<Video> {
Page<PageVideoVO> pageVideo(@Param("page")IPage<Video> page, @Param("video")Video video);
Page<PageVideoVO> pageVideo(@Param("page") IPage<Video> page, @Param("video") Video video, @Param("list") List<String> bizOrgCodeList);
Page<BuildingVideoVO> pageBuildingVideo(@Param("page") Page page, @Param("dto") BuildingVideoListVO dto);
......
......@@ -308,4 +308,11 @@ public interface IBuilldService extends IService<Building> {
*/
Map<String, String> getBuildingToLongitudeAndLatitude(String instanceId);
/**
* 根据登陆人获取公司部门树
* @return list
*/
List<BuildingTreeVo> getCompanyBuildingTree();
}
......@@ -50,6 +50,7 @@ import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.concurrent.atomic.AtomicReference;
import java.util.stream.Collectors;
/**
......@@ -1195,4 +1196,47 @@ public class BuildingServiceImpl extends ServiceImpl<BuildingMapper, Building> i
// TODO Auto-generated method stub
return formInstanceMapper.getBuildingToLongitudeAndLatitude(instanceId);
}
@Override
public List<BuildingTreeVo> getCompanyBuildingTree() {
List<BuildingTreeVo> allListVo = getBuildingTreeVos();
// 获取公司部门list
List<OrgUsrDto> orgUsrLists = jcsRemoteService.getCompanyDeptListWithAuth(authKey,"COMPANY");
AtomicReference<Boolean> flag = new AtomicReference<>(false);
List<BuildingTreeVo> collect = orgUsrLists.stream().map(orgUsrDto -> {
BuildingTreeVo vo = new BuildingTreeVo();
vo.setGroupType("allBuilding");
vo.setGroupCode("allBuilding");
vo.setInstanceName(orgUsrDto.getBizOrgName());
vo.setBizOrgCode(orgUsrDto.getBizOrgCode());
vo.setInstanceId(orgUsrDto.getSequenceNbr());
vo.setParentId(orgUsrDto.getParentId());
vo.setName(orgUsrDto.getBizOrgName());
vo.setId(orgUsrDto.getSequenceNbr());
if ("".equals(orgUsrDto.getParentId()) || "-1".equals(orgUsrDto.getParentId()) || null == orgUsrDto.getParentId()) {
flag.set(true);
}
return vo;
}).collect(Collectors.toList());
allListVo.addAll(collect);
return allListVo.stream().filter(s -> flag.get() ? "allBuilding".equals(s.getGroupType()) && s.getBizOrgCode() != null && ("".equals(s.getParentId()) || "-1".equals(s.getParentId()) || null == s.getParentId())
: "allBuilding".equals(s.getGroupType()) && s.getBizOrgCode() != null)
.peek(m -> m.setChildren(this.getCompanyBuildingChildrenTree(m, allListVo)))
.collect(Collectors.toList());
}
private List<BuildingTreeVo> getCompanyBuildingChildrenTree(BuildingTreeVo root , List<BuildingTreeVo> all) {
return all.stream().filter(b ->
(root.getId() != null && StringUtil.isNotEmpty(b.getParentId()) && b.getParentId().equals(root.getId().toString())) ||
("allBuilding".equals(root.getGroupType())
&& "building".equals(b.getGroupType())
&& StringUtil.isNotEmpty(root.getBizOrgCode())
&& root.getBizOrgCode().equals(b.getBizOrgCode())
&& !b.getId().equals(root.getId())))
.peek(m -> {m.setChildren(getCompanyBuildingChildrenTree(m, all));
m.setDetailPaneApi(address);
m.setApiUrl(apiUrl);})
.collect(Collectors.toList());
}
}
......@@ -93,9 +93,9 @@ import com.yeejoin.equipmanage.service.ISourceStatistics;
import com.yeejoin.equipmanage.service.ISyncDataService;
import com.yeejoin.equipmanage.service.MqttSendGateway;
@Service
public class FireFightingSystemServiceImpl extends ServiceImpl<FireFightingSystemMapper, FireFightingSystemEntity> implements IFireFightingSystemService {
public class FireFightingSystemServiceImpl extends ServiceImpl<FireFightingSystemMapper, FireFightingSystemEntity>
implements IFireFightingSystemService {
@Autowired
FireFightingSystemMapper fireFightingSystemMapper;
......@@ -182,15 +182,16 @@ public class FireFightingSystemServiceImpl extends ServiceImpl<FireFightingSyste
return this.baseMapper.getEquipCountBySystemId(systemId);
}
@Override
public List<EquiplistSpecificBySystemVO> getEquiplistBySystemId(Long systemId) {
return this.baseMapper.getEquiplistBySystemId(systemId);
}
@Override
public Map<String, Object> queryEquipmenInfoAndCount(String equimentName, String equimentCode, String construction, String maintenance, String bizOrgCode, String formGroupId, int current, int pageSize) {
Map<String, Object> map = equipmentManageService.queryEquipmenInfoAndCount(equimentName, equimentCode, construction, maintenance, bizOrgCode, formGroupId, current, pageSize);
public Map<String, Object> queryEquipmenInfoAndCount(String equimentName, String equimentCode, String construction,
String maintenance, String bizOrgCode, String formGroupId, int current, int pageSize) {
Map<String, Object> map = equipmentManageService.queryEquipmenInfoAndCount(equimentName, equimentCode,
construction, maintenance, bizOrgCode, formGroupId, current, pageSize);
List<EquipmentManageVo> dataList = (List<EquipmentManageVo>) map.get("dataList");
StringBuilder stb = new StringBuilder();
dataList.forEach(y -> {
......@@ -235,7 +236,7 @@ public class FireFightingSystemServiceImpl extends ServiceImpl<FireFightingSyste
}
});
String userId = remoteSecurityService.getAgencyUser().getUserId();
//冗余名称,数据同步使用
// 冗余名称,数据同步使用
this.setChargePersonName(vo);
String s = String.valueOf(System.currentTimeMillis());
vo.setId(s);
......@@ -253,13 +254,13 @@ public class FireFightingSystemServiceImpl extends ServiceImpl<FireFightingSyste
if ("".equals(vo.getFirstMaintenanceDate())) {
vo.setFirstMaintenanceDate(null);
}
//1.保存动态表单数据
// 1.保存动态表单数据
if (vo.getFormInstances() != null && vo.getFormInstances().size() > 0) {
Long instanceId = instanceService.saveInstanceBatch(vo.getFormInstances());
vo.setInstanceId(instanceId);
s = s + "," + instanceId;
}
//2.保存消防系统数据
// 2.保存消防系统数据
int save = fireFightingSystemMapper.save(vo);
if (save > 0 && syncSwitch) {
// AST数据同步
......@@ -268,12 +269,11 @@ public class FireFightingSystemServiceImpl extends ServiceImpl<FireFightingSyste
} else {
return s;
}
//3.保存图片数据
// 3.保存图片数据
this.insertFiles(vo);
return s;
}
@Override
public String update(FireFightingSystemVo vo) {
if (!systemCodeCheck(vo)) {
......@@ -288,7 +288,7 @@ public class FireFightingSystemServiceImpl extends ServiceImpl<FireFightingSyste
});
String userId = remoteSecurityService.getAgencyUser().getUserId();
vo.setRecUserId(userId);
//冗余名称,数据同步使用
// 冗余名称,数据同步使用
this.setChargePersonName(vo);
if ("".equals(vo.getInstallDate())) {
vo.setInstallDate(null);
......@@ -305,14 +305,14 @@ public class FireFightingSystemServiceImpl extends ServiceImpl<FireFightingSyste
} else {
return null;
}
//1.更新消防系统数据
// 1.更新消防系统数据
String sequenceNbr = vo.getId();
fireFightingSystemMapper.deleteFilre(sequenceNbr);
//2.更新动态表单数据
// 2.更新动态表单数据
if (vo.getInstanceId() != null && vo.getFormInstances().size() > 0) {
instanceService.updateInstanceBatch(vo.getInstanceId(), vo.getFormInstances());
}
//3.更新图片数据
// 3.更新图片数据
this.insertFiles(vo);
return vo.getId();
}
......@@ -328,11 +328,13 @@ public class FireFightingSystemServiceImpl extends ServiceImpl<FireFightingSyste
private boolean systemCodeCheck(FireFightingSystemVo systemVo) {
if (StringUtils.isEmpty(systemVo.getId())) {
// 新建系统时
int count = this.baseMapper.selectCount(new LambdaQueryWrapper<FireFightingSystemEntity>().eq(FireFightingSystemEntity::getCode, systemVo.getCode()));
int count = this.baseMapper.selectCount(new LambdaQueryWrapper<FireFightingSystemEntity>()
.eq(FireFightingSystemEntity::getCode, systemVo.getCode()));
return count < 1;
} else {
int count =
this.baseMapper.selectCount(new LambdaQueryWrapper<FireFightingSystemEntity>().eq(FireFightingSystemEntity::getCode, systemVo.getCode()).ne(FireFightingSystemEntity::getId, systemVo.getId()));
int count = this.baseMapper.selectCount(new LambdaQueryWrapper<FireFightingSystemEntity>()
.eq(FireFightingSystemEntity::getCode, systemVo.getCode())
.ne(FireFightingSystemEntity::getId, systemVo.getId()));
return count < 1;
}
}
......@@ -363,7 +365,7 @@ public class FireFightingSystemServiceImpl extends ServiceImpl<FireFightingSyste
@Transactional
public ResourceDTO updateMorphic(ResourceDTO resourceDTO) {
try {
//1.更新画布信息
// 1.更新画布信息
resourceDTO.setSubjectId(projectSeq);
resourceDTO.setSubjectid(projectSeq);
String content = resourceDTO.getContent();
......@@ -376,14 +378,15 @@ public class FireFightingSystemServiceImpl extends ServiceImpl<FireFightingSyste
content = JSONObject.toJSONString(parse);
resourceDTO.setContent(content);
FeignUtil.remoteCall(() -> Morphic.morphicSubjectClient.update(resourceDTO));
//2.更新业务关联的画布id
// 2.更新业务关联的画布id
Long systemId = Long.valueOf(resourceDTO.getCode());
FireFightingSystemVo systemVo = new FireFightingSystemVo();
systemVo.setId(String.valueOf(systemId));
systemVo.setSceneId(resourceDTO.getId());
fireFightingSystemMapper.setSceneId(systemVo);
//3.保存场景关联信息表
SourceScene sourceScene = sourceSceneMapper.selectOne(new LambdaQueryWrapper<SourceScene>().eq(SourceScene::getSceneId, resourceDTO.getId()));
// 3.保存场景关联信息表
SourceScene sourceScene = sourceSceneMapper
.selectOne(new LambdaQueryWrapper<SourceScene>().eq(SourceScene::getSceneId, resourceDTO.getId()));
if (sourceScene == null) {
sourceScene = new SourceScene();
sourceScene.setProjectId(String.valueOf(projectSeq));
......@@ -391,7 +394,7 @@ public class FireFightingSystemServiceImpl extends ServiceImpl<FireFightingSyste
sourceScene.setSourceName(resourceDTO.getName());
sourceScene.setSceneId(resourceDTO.getId());
}
//TODO 获取画布下 绑定的装备点、摄像头,目前消防系统只能绑定装备,不能绑定摄像头(树未返回摄像头)
// TODO 获取画布下 绑定的装备点、摄像头,目前消防系统只能绑定装备,不能绑定摄像头(树未返回摄像头)
List<Map> children = (List<Map>) parse.get("children");
String pointInScene = "";
String videoInScene = "";
......@@ -399,10 +402,12 @@ public class FireFightingSystemServiceImpl extends ServiceImpl<FireFightingSyste
for (Map<String, String> map : children) {
String key = map.get("key");
if (!"".equals(key) && "equipment".equals(key)) {
pointInScene = "".equals(pointInScene) ? map.get("sequenceNbr") : pointInScene + "," + map.get("sequenceNbr");
pointInScene = "".equals(pointInScene) ? map.get("sequenceNbr")
: pointInScene + "," + map.get("sequenceNbr");
}
if (!"".equals(key) && "video".equals(key)) {
videoInScene = "".equals(videoInScene) ? map.get("sequenceNbr") : videoInScene + "," + map.get("sequenceNbr");
videoInScene = "".equals(videoInScene) ? map.get("sequenceNbr")
: videoInScene + "," + map.get("sequenceNbr");
}
}
}
......@@ -515,13 +520,14 @@ public class FireFightingSystemServiceImpl extends ServiceImpl<FireFightingSyste
*/
public List<PointTreeVo> transferListToPointTree(List<PointTreeVo> allRiskSource, String id) {
List<PointTreeVo> treeList = new ArrayList<>();
//TODO id为空,为消防建筑使用;id不为空,为点位图使用
// TODO id为空,为消防建筑使用;id不为空,为点位图使用
List<PointTreeVo> pointData = fireFightingSystemMapper.getPointData(id);
if (!CollectionUtils.isEmpty(pointData)) {
List<Long> idList = pointData.stream().map(PointTreeVo::getSequenceNbr).collect(Collectors.toList());
List<SpeIndexVo> indexVoList = fireFightingSystemMapper.getSpeIndexIn(idList);
if (!CollectionUtils.isEmpty(indexVoList)) {
Map<Long, List<SpeIndexVo>> indexMap = indexVoList.stream().collect(Collectors.groupingBy(SpeIndexVo::getEquipmentSpecificId));
Map<Long, List<SpeIndexVo>> indexMap = indexVoList.stream()
.collect(Collectors.groupingBy(SpeIndexVo::getEquipmentSpecificId));
pointData.stream().forEach(p -> {
Map map = new HashMap();
map.put("imgPath", p.getImgPath());
......@@ -582,7 +588,6 @@ public class FireFightingSystemServiceImpl extends ServiceImpl<FireFightingSyste
return Lists.newArrayList();
}
private static <T> void mapToBean(Map<String, Object> map, T bean) {
try {
BeanUtils.populate(bean, map);
......@@ -593,7 +598,6 @@ public class FireFightingSystemServiceImpl extends ServiceImpl<FireFightingSyste
}
/**
* 生成 性能指标数据
*
......@@ -608,10 +612,8 @@ public class FireFightingSystemServiceImpl extends ServiceImpl<FireFightingSyste
List<SpeIndexVo> statusList = new ArrayList<>();
for (SpeIndexVo vo : list) {
String k = vo.getTypeCode();
if (EquipmentRiskTypeEnum.GZ.getCode().equals(k) ||
EquipmentRiskTypeEnum.HZGJ.getCode().equals(k) ||
EquipmentRiskTypeEnum.YXZT.getCode().equals(k) ||
EquipmentRiskTypeEnum.PB.getCode().equals(k)) {
if (EquipmentRiskTypeEnum.GZ.getCode().equals(k) || EquipmentRiskTypeEnum.HZGJ.getCode().equals(k)
|| EquipmentRiskTypeEnum.YXZT.getCode().equals(k) || EquipmentRiskTypeEnum.PB.getCode().equals(k)) {
statusList.add(vo);
}
newList.add(vo);
......@@ -637,16 +639,20 @@ public class FireFightingSystemServiceImpl extends ServiceImpl<FireFightingSyste
*/
private String getStatus(List<SpeIndexVo> statusList) {
SpeIndexVo indexVo = statusList.get(0);
if (EquipmentRiskTypeEnum.HZGJ.getCode().equals(indexVo.getTypeCode()) && TrueOrFalseEnum.real.value.equals(indexVo.getValue())) {
if (EquipmentRiskTypeEnum.HZGJ.getCode().equals(indexVo.getTypeCode())
&& TrueOrFalseEnum.real.value.equals(indexVo.getValue())) {
return "报警";
}
if (EquipmentRiskTypeEnum.GZ.getCode().equals(indexVo.getTypeCode()) && TrueOrFalseEnum.real.value.equals(indexVo.getValue())) {
if (EquipmentRiskTypeEnum.GZ.getCode().equals(indexVo.getTypeCode())
&& TrueOrFalseEnum.real.value.equals(indexVo.getValue())) {
return "故障";
}
if (EquipmentRiskTypeEnum.PB.getCode().equals(indexVo.getTypeCode()) && TrueOrFalseEnum.real.value.equals(indexVo.getValue())) {
if (EquipmentRiskTypeEnum.PB.getCode().equals(indexVo.getTypeCode())
&& TrueOrFalseEnum.real.value.equals(indexVo.getValue())) {
return "屏蔽";
}
if (EquipmentRiskTypeEnum.YXZT.getCode().equals(indexVo.getTypeCode()) && TrueOrFalseEnum.fake.value.equals(indexVo.getValue())) {
if (EquipmentRiskTypeEnum.YXZT.getCode().equals(indexVo.getTypeCode())
&& TrueOrFalseEnum.fake.value.equals(indexVo.getValue())) {
return "停运";
}
return "运行";
......@@ -677,24 +683,24 @@ public class FireFightingSystemServiceImpl extends ServiceImpl<FireFightingSyste
FeignUtil.remoteCall(() -> Morphic.morphicSubjectClient.delete(entity.getSceneId()));
}
formInstanceMapper.clearSystemId(id);
//解除装备与消防系统关系
// 解除装备与消防系统关系
this.removeBondSystemId(id);
this.baseMapper.deleteFilre(String.valueOf(id));
int i = this.baseMapper.deleteById(id);
if (i > 0 && syncSwitch) {
syncDataService.syncDeletedFireFightingSystem(Arrays.asList(id));
}
//删除动态关联表单实例数据
// 删除动态关联表单实例数据
if (entity.getInstanceId() != null) {
instanceService.remove(
new LambdaQueryWrapper<DynamicFormInstance>()
.eq(DynamicFormInstance::getInstanceId, entity.getInstanceId()));
instanceService.remove(new LambdaQueryWrapper<DynamicFormInstance>().eq(DynamicFormInstance::getInstanceId,
entity.getInstanceId()));
}
return i > 0;
}
private void removeBondSystemId(Long id) {
List<EquipmentSpecific> equipmentSpecifics = equipmentSpecificSerivce.list(new LambdaQueryWrapper<EquipmentSpecific>().like(EquipmentSpecific::getSystemId, id));
List<EquipmentSpecific> equipmentSpecifics = equipmentSpecificSerivce
.list(new LambdaQueryWrapper<EquipmentSpecific>().like(EquipmentSpecific::getSystemId, id));
equipmentSpecifics.forEach(equipmentSpecific -> {
List<String> ids = new ArrayList<>();
if (StringUtil.isNotEmpty(equipmentSpecific.getSystemId())) {
......@@ -711,7 +717,8 @@ public class FireFightingSystemServiceImpl extends ServiceImpl<FireFightingSyste
@Override
public Boolean isDeleteCanvas(Long id) {
FireFightingSystemEntity system = baseMapper.selectOne(new QueryWrapper<FireFightingSystemEntity>().eq("scene_id", id));
FireFightingSystemEntity system = baseMapper
.selectOne(new QueryWrapper<FireFightingSystemEntity>().eq("scene_id", id));
if (system != null) {
return true;
} else {
......@@ -721,13 +728,15 @@ public class FireFightingSystemServiceImpl extends ServiceImpl<FireFightingSyste
}
@Override
public IPage<EquipTypeImgAmountVO> getColaCategoryAmountList(int hierarchy, String codeHead, EquipTypeAmountPageDTO equipTypeAmountPage) {
public IPage<EquipTypeImgAmountVO> getColaCategoryAmountList(int hierarchy, String codeHead,
EquipTypeAmountPageDTO equipTypeAmountPage) {
String type = equipTypeAmountPage.getType();
if (!"".equals(type) && "car".equals(type)) {
equipTypeAmountPage.setSystemId(null);
equipTypeAmountPage.setStatus(null);
}
IPage<EquipTypeImgAmountVO> list = fireFightingSystemMapper.getColaCategoryAmountList(equipTypeAmountPage.getPage(), hierarchy, codeHead, equipTypeAmountPage);
IPage<EquipTypeImgAmountVO> list = fireFightingSystemMapper
.getColaCategoryAmountList(equipTypeAmountPage.getPage(), hierarchy, codeHead, equipTypeAmountPage);
list.getRecords().forEach(x -> {
if (!x.getEqtype().startsWith("4") && StringUtil.isNotEmpty(x.getAmount())) {
x.setAmount(x.getAmount().split("\\.")[0]);
......@@ -736,15 +745,16 @@ public class FireFightingSystemServiceImpl extends ServiceImpl<FireFightingSyste
return list;
}
@Override
public IPage<EquipTypeImgAmountVO> getColaCategoryAmountCarList(int hierarchy, String codeHead, EquipTypeAmountPageDTO equipTypeAmountPage) {
public IPage<EquipTypeImgAmountVO> getColaCategoryAmountCarList(int hierarchy, String codeHead,
EquipTypeAmountPageDTO equipTypeAmountPage) {
String type = equipTypeAmountPage.getType();
if (!"".equals(type) && "car".equals(type)) {
equipTypeAmountPage.setSystemId(null);
equipTypeAmountPage.setStatus(null);
}
IPage<EquipTypeImgAmountVO> list = fireFightingSystemMapper.getColaCategoryAmountCarList(equipTypeAmountPage.getPage(), hierarchy, codeHead, equipTypeAmountPage);
IPage<EquipTypeImgAmountVO> list = fireFightingSystemMapper
.getColaCategoryAmountCarList(equipTypeAmountPage.getPage(), hierarchy, codeHead, equipTypeAmountPage);
list.getRecords().forEach(x -> {
if (!x.getEqtype().startsWith("4") && StringUtil.isNotEmpty(x.getAmount())) {
x.setAmount(x.getAmount().split("\\.")[0]);
......@@ -752,14 +762,17 @@ public class FireFightingSystemServiceImpl extends ServiceImpl<FireFightingSyste
});
return list;
}
@Override
public IPage<EquipTypeImgAmountVO> getColaCategoryAmountEquList(int hierarchy, String codeHead, EquipTypeAmountPageDTO equipTypeAmountPage) {
public IPage<EquipTypeImgAmountVO> getColaCategoryAmountEquList(int hierarchy, String codeHead,
EquipTypeAmountPageDTO equipTypeAmountPage) {
String type = equipTypeAmountPage.getType();
if (!"".equals(type) && "car".equals(type)) {
equipTypeAmountPage.setSystemId(null);
equipTypeAmountPage.setStatus(null);
}
IPage<EquipTypeImgAmountVO> list = fireFightingSystemMapper.getColaCategoryAmountEquList(equipTypeAmountPage.getPage(), hierarchy, codeHead, equipTypeAmountPage);
IPage<EquipTypeImgAmountVO> list = fireFightingSystemMapper
.getColaCategoryAmountEquList(equipTypeAmountPage.getPage(), hierarchy, codeHead, equipTypeAmountPage);
list.getRecords().forEach(x -> {
if (!x.getEqtype().startsWith("4") && StringUtil.isNotEmpty(x.getAmount())) {
x.setAmount(x.getAmount().split("\\.")[0]);
......@@ -768,11 +781,6 @@ public class FireFightingSystemServiceImpl extends ServiceImpl<FireFightingSyste
return list;
}
@Override
public List<EquipmentManageVo> getSystemCategory() {
return equipmentManageMapper.getSystemList();
......@@ -794,11 +802,13 @@ public class FireFightingSystemServiceImpl extends ServiceImpl<FireFightingSyste
@Override
public List<FireFightingSystem3dVo> get3dFightingSystemList() {
FeignClientResult<List<DictionarieValueModel>> dictValues = Systemctl.dictionarieClient.dictValues(iotCoreParam);
FeignClientResult<List<DictionarieValueModel>> dictValues = Systemctl.dictionarieClient
.dictValues(iotCoreParam);
Optional.ofNullable(dictValues).orElseThrow(() -> new BadRequest("查询字段数据为空"));
List<DictionarieValueModel> values = dictValues.getResult();
if (!CollectionUtils.isEmpty(values)) {
List<String> collect = values.stream().map(DictionarieValueModel::getDictDataKey).collect(Collectors.toList());
List<String> collect = values.stream().map(DictionarieValueModel::getDictDataKey)
.collect(Collectors.toList());
List<FireFightingSystem3dVo> list = fireFightingSystemMapper.get3dFightingSystemList(collect);
if (!CollectionUtils.isEmpty(list)) {
return list;
......@@ -824,8 +834,11 @@ public class FireFightingSystemServiceImpl extends ServiceImpl<FireFightingSyste
}
@Override
public IPage<EquipmentAlarmBySystemIdOrSourceIdVO> getEquipmentAlarmBySystemIdOrSourceIdVO(IPage<EquipmentAlarmBySystemIdOrSourceIdVO> page, Long sourceId, Long systemId, Integer confirmType, String createDate, String type) {
return this.baseMapper.getEquipmentAlarmBySystemIdOrSourceIdVO(page, sourceId, systemId, confirmType, createDate, type);
public IPage<EquipmentAlarmBySystemIdOrSourceIdVO> getEquipmentAlarmBySystemIdOrSourceIdVO(
IPage<EquipmentAlarmBySystemIdOrSourceIdVO> page, Long sourceId, Long systemId, Integer confirmType,
String createDate, String type) {
return this.baseMapper.getEquipmentAlarmBySystemIdOrSourceIdVO(page, sourceId, systemId, confirmType,
createDate, type);
}
private static String getInet4Address() {
......@@ -833,10 +846,10 @@ public class FireFightingSystemServiceImpl extends ServiceImpl<FireFightingSyste
String ip = null;
try {
nis = NetworkInterface.getNetworkInterfaces();
for (; nis.hasMoreElements(); ) {
for (; nis.hasMoreElements();) {
NetworkInterface ni = nis.nextElement();
Enumeration<InetAddress> ias = ni.getInetAddresses();
for (; ias.hasMoreElements(); ) {
for (; ias.hasMoreElements();) {
InetAddress ia = ias.nextElement();
if (ia instanceof Inet4Address && !ia.getHostAddress().equals("127.0.0.1")) {
ip = ia.getHostAddress();
......@@ -849,7 +862,6 @@ public class FireFightingSystemServiceImpl extends ServiceImpl<FireFightingSyste
return ip;
}
@Override
public Map<String, Object> integrationPageSysData(String systemCode, Boolean isUpdate) {
// TODO Auto-generated method stub
......@@ -887,8 +899,9 @@ public class FireFightingSystemServiceImpl extends ServiceImpl<FireFightingSyste
this.putAll(data, fireFightingSystemMapper.getFireOnlSystemThreeSmall());
} else if (SystemTypeEnum.fireFoamSys.getCode().equals(systemCode)) {
data = fireFightingSystemMapper.fireFoamSysEquipmentIndexNumber();
} else if (SystemTypeEnum.fireFoamMistSys.getCode().equals(systemCode) || SystemTypeEnum.envMonitoringSys.getCode().equals(systemCode)) {
//TODO 灯泡及门状态,实时数据库刷新,存放数据,套用后续逻辑进行数据的发送
} else if (SystemTypeEnum.fireFoamMistSys.getCode().equals(systemCode)
|| SystemTypeEnum.envMonitoringSys.getCode().equals(systemCode)) {
// TODO 灯泡及门状态,实时数据库刷新,存放数据,套用后续逻辑进行数据的发送
data = new HashMap<>();
data.put("waitRefresh", true);
} else if (SystemTypeEnum.fireWaterSys.getCode().equals(systemCode)) {
......@@ -914,8 +927,7 @@ public class FireFightingSystemServiceImpl extends ServiceImpl<FireFightingSyste
public List<FireFightingSystemTreeVo> getSystemTreeByOrgCode(String bizOrgCode) {
// 获取公司部门list
List<OrgUsrDto> orgUsrLists = jcsRemoteService.getCompanyDeptListWithAuth("COMPANY,DEPARTMENT", bizOrgCode);
List<FireFightingSystemTreeVo> fireFightingSystemTreeList = orgUsrLists.stream()
.map(key -> {
List<FireFightingSystemTreeVo> fireFightingSystemTreeList = orgUsrLists.stream().map(key -> {
FireFightingSystemTreeVo vo = new FireFightingSystemTreeVo();
vo.setId(String.valueOf(key.getSequenceNbr()));
vo.setName(key.getBizOrgName());
......@@ -926,12 +938,12 @@ public class FireFightingSystemServiceImpl extends ServiceImpl<FireFightingSyste
}).collect(Collectors.toList());
// 根据bizOrgCode获取系统list
List<String> bizOrgCodes = fireFightingSystemTreeList.stream().map(FireFightingSystemTreeVo::getBizOrgCode).collect(Collectors.toList());
List<String> bizOrgCodes = fireFightingSystemTreeList.stream().map(FireFightingSystemTreeVo::getBizOrgCode)
.collect(Collectors.toList());
LambdaQueryWrapper<FireFightingSystemEntity> wrapper = new LambdaQueryWrapper<>();
wrapper.in(FireFightingSystemEntity::getBizOrgCode, bizOrgCodes);
List<FireFightingSystemEntity> fireFightingSystemEntityList = this.baseMapper.selectList(wrapper);
List<FireFightingSystemTreeVo> systemList = fireFightingSystemEntityList.stream()
.map(key -> {
List<FireFightingSystemTreeVo> systemList = fireFightingSystemEntityList.stream().map(key -> {
FireFightingSystemTreeVo vo = new FireFightingSystemTreeVo();
vo.setId(String.valueOf(key.getId()));
vo.setName(key.getName());
......@@ -942,21 +954,17 @@ public class FireFightingSystemServiceImpl extends ServiceImpl<FireFightingSyste
// 组装公司部门树
fireFightingSystemTreeList.addAll(systemList);
return fireFightingSystemTreeList.stream()
.filter(d -> !"system".equals(d.getType()))
.peek((m) -> m.setChildren(getChildren(m, fireFightingSystemTreeList)))
.collect(Collectors.toList());
return fireFightingSystemTreeList.stream().filter(d -> !"system".equals(d.getType()))
.peek((m) -> m.setChildren(getChildren(m, fireFightingSystemTreeList))).collect(Collectors.toList());
}
private List<FireFightingSystemTreeVo> getChildren(FireFightingSystemTreeVo root, List<FireFightingSystemTreeVo> all) {
return all.stream().filter(d -> StringUtil.isNotEmpty(d.getParentId()) && d.getParentId().equals(root.getId())
|| (StringUtil.isNotEmpty(d.getBizOrgCode())
&& d.getBizOrgCode().equals(root.getBizOrgCode())
&& !"system".equals(root.getType())
&& !d.getId().equals(root.getId()))
)
.peek(m -> m.setChildren(getChildren(m, all)))
.collect(Collectors.toList());
private List<FireFightingSystemTreeVo> getChildren(FireFightingSystemTreeVo root,
List<FireFightingSystemTreeVo> all) {
return all.stream()
.filter(d -> StringUtil.isNotEmpty(d.getParentId()) && d.getParentId().equals(root.getId())
|| (StringUtil.isNotEmpty(d.getBizOrgCode()) && d.getBizOrgCode().equals(root.getBizOrgCode())
&& !"system".equals(root.getType()) && !d.getId().equals(root.getId())))
.peek(m -> m.setChildren(getChildren(m, all))).collect(Collectors.toList());
}
@Override
......@@ -995,34 +1003,49 @@ public class FireFightingSystemServiceImpl extends ServiceImpl<FireFightingSyste
return Collections.singletonList(parentNode);
}
public Object getEquipmentTypeAndCount(String bizOrgCode) throws Exception {
List<EquipmentCategory> equipmentTypeList =null;
// if (redisUtils.hasKey(equipTypeAndCount)) {
// equipmentTypeList = JSONArray.parseArray(JSONArray.toJSONString(redisUtils.get(equipTypeAndCount)), EquipmentCategory.class);
// } else {
if (redisUtils.hasKey(equipTypeAndCount + bizOrgCode)) {
List<EquipmentCategory> typeList = JSONArray.parseArray(
JSONArray.toJSONString(redisUtils.get(equipTypeAndCount + bizOrgCode)), EquipmentCategory.class);
return typeList;
} else {
return refreshEquipmentTypeAndCount(bizOrgCode);
}
}
public Object refreshEquipmentTypeAndCount(String bizOrgCode) throws Exception {
List<EquipmentCategory> responseList = this.typeList();
if(responseList == null || responseList.size()<1) {
if (responseList == null || responseList.size() < 1) {
return null;
}
equipmentTypeList = responseList.stream().filter(i->!i.getCode().startsWith("2") && "2".equals(i.getIndustryCode())).collect(Collectors.toList());
// }
return typeListTree(equipmentTypeList,bizOrgCode,SourceTypeEnum.EQUIPMENT);
List<EquipmentCategory> equipmentTypeList = responseList.stream()
.filter(i -> !i.getCode().startsWith("2") && "2".equals(i.getIndustryCode()))
.collect(Collectors.toList());
List<EquipmentCategory> list = typeListTree(equipmentTypeList, bizOrgCode, SourceTypeEnum.EQUIPMENT);
redisUtils.set(equipTypeAndCount + bizOrgCode, list);
return list;
}
public Object getCarTypeAndCount(String bizOrgCode) throws Exception {
List<EquipmentCategory> equipmentTypeList =null;
// if (redisUtils.hasKey(carTypeAndCount)) {
// equipmentTypeList = JSONArray.parseArray(JSONArray.toJSONString(redisUtils.get(carTypeAndCount)), EquipmentCategory.class);
// } else {
if (redisUtils.hasKey(carTypeAndCount + bizOrgCode)) {
List<EquipmentCategory> typeList = JSONArray.parseArray(
JSONArray.toJSONString(redisUtils.get(carTypeAndCount + bizOrgCode)), EquipmentCategory.class);
return typeList;
} else {
return refreshCarTypeAndCount(bizOrgCode);
}
}
public Object refreshCarTypeAndCount(String bizOrgCode) throws Exception {
List<EquipmentCategory> responseList = this.typeList();
if(responseList == null || responseList.size()<1) {
if (responseList == null || responseList.size() < 1) {
return null;
}
equipmentTypeList = responseList.stream().filter(i->i.getCode().startsWith("2") && "2".equals(i.getIndustryCode())).collect(Collectors.toList());
// }
return typeListTree(equipmentTypeList,bizOrgCode,SourceTypeEnum.CAR);
List<EquipmentCategory> equipmentTypeList = responseList.stream()
.filter(i -> i.getCode().startsWith("2") && "2".equals(i.getIndustryCode()))
.collect(Collectors.toList());
List<EquipmentCategory> list = typeListTree(equipmentTypeList, bizOrgCode, SourceTypeEnum.CAR);
redisUtils.set(carTypeAndCount + bizOrgCode, list);
return list;
}
......@@ -1032,12 +1055,14 @@ public class FireFightingSystemServiceImpl extends ServiceImpl<FireFightingSyste
.getEquipmentCategoryList(Integer.valueOf(equipmentCategoryLeftTypeCode));
return equipmentCategorys;
}
public List<EquipmentCategory> typeListTree(List<EquipmentCategory> equipmentCategorys,String bizOrgCode,SourceTypeEnum sourceTypeEnum) {
public List<EquipmentCategory> typeListTree(List<EquipmentCategory> equipmentCategorys, String bizOrgCode,
SourceTypeEnum sourceTypeEnum) {
List<EquipmentCategory> list = new ArrayList<>();
Map<String, List<EquipmentCategory>> tmpMap = new HashMap<String, List<EquipmentCategory>>();
equipmentCategorys.forEach(action -> {
int num = sourceStatistics.equipCategoryStatistics(bizOrgCode, sourceTypeEnum, action.getCode());
action.setCount(Double.parseDouble(num+""));
action.setCount(Double.parseDouble(num + ""));
if (action.getParentId() == null) {
list.add(action);
} else {
......
......@@ -59,6 +59,7 @@ import com.yeejoin.equipmanage.mapper.StockMapper;
import com.yeejoin.equipmanage.service.EquipmentManageService;
import com.yeejoin.equipmanage.service.IEquipmentIndexService;
import com.yeejoin.equipmanage.service.IEquipmentSpecificIndexSerivce;
import com.yeejoin.equipmanage.service.IEquipmentSpecificSerivce;
import com.yeejoin.equipmanage.service.IEquipmentSystemSourceStatisticsService;
import com.yeejoin.equipmanage.service.IFireFightingSystemService;
import com.yeejoin.equipmanage.service.IJournalService;
......@@ -122,6 +123,8 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
@Autowired
private RelationRedisUtil relationRedisUtil;
@Autowired
IEquipmentSpecificSerivce equipmentSpecificSerivce;
@Override
@Transactional(rollbackFor = {Exception.class})
public StockBill in(List<StockDetail> list, String type, AgencyUserModel agencyUserModel) {
......@@ -284,6 +287,7 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
@Override
@Transactional(rollbackFor = Exception.class)
public List<EquipmentSpecific> uploadListByTemplate(List<EquipmentDetailDownloadTemplateDto> equipmentDetailDownloadVOS, ReginParams reginParams, AgencyUserModel agencyUserModel) {
equipmentSpecificSerivce.refreshStaData();//添加对于装备类型统计数据的刷新
StringBuffer fireFightSysIdsBuffer = new StringBuffer();
SimpleDateFormat stf = new SimpleDateFormat("yyyy-MM-dd");
List<EquipmentSpecific> list = new ArrayList<>();
......
......@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yeejoin.amos.boot.biz.common.dto.OrgMenuDto;
import com.yeejoin.equipmanage.common.dto.OrgUsrDto;
import com.yeejoin.equipmanage.common.entity.*;
import com.yeejoin.equipmanage.common.entity.dto.VideoDTO;
import com.yeejoin.equipmanage.common.entity.dto.VideoSaveDto;
......@@ -23,6 +24,7 @@ import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.util.ObjectUtils;
import org.typroject.tyboot.core.foundation.utils.Bean;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
......@@ -201,7 +203,17 @@ public class VideoServiceImpl extends ServiceImpl<VideoMapper, Video> implements
@Override
public Page<PageVideoVO> pageVideo(VideoDTO videoDTO) {
return this.baseMapper.pageVideo(videoDTO.getPage(), videoDTO.getVideo());
Video video = videoDTO.getVideo();
String orgTypes = videoDTO.getOrgTypes();
String bizOrgCode = video.getBizOrgCode();
List<String> bizOrgCodeList = new ArrayList<>();
if (!StringUtils.isNotBlank(bizOrgCode)) {
List<OrgUsrDto> list = jcsRemoteService.getCompanyDeptListWithAuth(authKey, orgTypes);
if (!CollectionUtils.isEmpty(list)) {
list.stream().filter(o -> StringUtils.isNotBlank(o.getBizOrgCode())).forEach(x -> bizOrgCodeList.add(x.getBizOrgCode()));
}
}
return this.baseMapper.pageVideo(videoDTO.getPage(), video, bizOrgCodeList);
}
@Override
......
......@@ -87,7 +87,8 @@
MAX( CASE WHEN a.field_name = 'name' THEN a.field_value END ) AS name,
MAX( CASE WHEN a.field_name = 'code' THEN a.field_value END ) AS code,
MAX( CASE WHEN a.field_name = 'isRisk' THEN a.field_value END ) AS isRisk,
MAX( CASE WHEN a.field_name = 'address' THEN a.field_value END ) AS address
MAX( CASE WHEN a.field_name = 'address' THEN a.field_value END ) AS address,
MAX( CASE WHEN a.field_name = 'bizOrgCode' THEN a.field_value END ) AS bizOrgCode
FROM
`wl_form_instance` a
LEFT JOIN wl_source_scene wlss ON wlss.source_id = a.instance_id
......@@ -116,7 +117,9 @@
MAX(CASE WHEN a.field_name = 'hasFirePlan' THEN a.field_value END)AS hasFirePlan,
MAX(CASE WHEN a.field_name = 'installLoc' THEN a.field_value END)AS installLoc,
MAX(CASE WHEN a.field_name = 'inwhichBuild' THEN a.field_value END)AS inwhichBuild,
MAX(CASE WHEN a.field_name = 'maintenanceUnit' THEN a.field_value END)AS maintenanceUnit
MAX(CASE WHEN a.field_name = 'maintenanceUnit' THEN a.field_value END)AS maintenanceUnit,
MAX(CASE WHEN a.field_name = 'bizOrgCode' THEN a.field_value END)AS bizOrgCode,
MAX(CASE WHEN a.field_name = 'bizOrgName' THEN a.field_value END)AS bizOrgName
FROM
`wl_form_instance` a
GROUP BY
......@@ -129,6 +132,9 @@
<if test="query.fieldValue != null and query.fieldValue !=''">
AND sa.fieldValue = #{query.fieldValue}
</if>
<if test="query.bizOrgCode != null and query.bizOrgCode !=''">
AND sa.bizOrgCode LIKE CONCAT(#{query.bizOrgCode},'%')
</if>
</where>
ORDER BY sa.instanceId DESC
</select>
......
......@@ -48,7 +48,13 @@
and wlv.type_code like concat('%',#{video.typeCode},'%')
</if>
<if test="video!=null and video.bizOrgCode!=null and video.bizOrgCode!=''">
and wlv.biz_org_code = #{video.bizOrgCode}
and wlv.biz_org_code LIKE CONCAT(#{video.bizOrgCode}, '%')
</if>
<if test="list != null and list.size() >0">
and wlv.biz_org_code IN
<foreach collection="list" item="item" index="index" open="(" close=")" separator=",">
#{item}
</foreach>
</if>
group by wlv.id
order by wlv.create_date desc
......
......@@ -2435,5 +2435,55 @@
ALTER TABLE `cb_water_resource` add column `biz_org_name` varchar(104) DEFAULT NULL COMMENT '机构/部门名称';
</sql>
</changeSet>
<changeSet author="suhuiguang" id="1640935104763-01">
<preConditions onFail="MARK_RAN">
<not>
<columnExists tableName="cb_org_usr" columnName="pcz_code"/>
</not>
</preConditions>
<comment>cb_org_usr add column pcz_code 省市区code,用逗号分隔</comment>
<sql>
alter table `cb_org_usr` add column `pcz_code` varchar(255) DEFAULT NULL COMMENT '省市区code,用逗号分隔';
</sql>
</changeSet>
<changeSet author="suhuiguang" id="1640935104763-02">
<preConditions onFail="MARK_RAN">
<not>
<columnExists tableName="cb_org_usr" columnName="pcz_name"/>
</not>
</preConditions>
<comment>cb_org_usr add column pcz_name '省市区名称,用逗号分隔'</comment>
<sql>
alter table `cb_org_usr` add column `pcz_name` varchar(255) DEFAULT NULL COMMENT '省市区名称,用逗号分隔';
</sql>
</changeSet>
<changeSet author="suhuiguang" id="1640935104763-03">
<preConditions onFail="MARK_RAN">
<tableExists tableName="cb_dynamic_form_column"/>
</preConditions>
<comment>cb_dynamic_form_column add 电力字段</comment>
<sql>
REPLACE INTO `cb_dynamic_form_column` (`sequence_nbr`, `field_code`, `field_name`, `field_type`, `group_id`, `query_strategy`, `not_null`, `block`, `group_code`, `column_config`, `rec_user_name`, `rec_user_id`, `rec_date`, `is_delete`, `remark`, `sort`, `org_code`) VALUES ('7', 'businessCategory', '经营类别', 'select', '7', 'eq', b'0', b'0', '244', '{\"url\": \"\", \"data\": [], \"dict\": \"GLLB\", \"type\": \"dict\"}', NULL, NULL, '2021-07-07 10:58:11', b'0', NULL, '5', NULL);
REPLACE INTO `cb_dynamic_form_column` (`sequence_nbr`, `field_code`, `field_name`, `field_type`, `group_id`, `query_strategy`, `not_null`, `block`, `group_code`, `column_config`, `rec_user_name`, `rec_user_id`, `rec_date`, `is_delete`, `remark`, `sort`, `org_code`) VALUES ('9', 'companyLocation', '单位地址', 'inputPoi', '7', 'like', b'0', b'0', '244', '{\"url\": \"/fire-fighting-system/mapsdk\", \"type\": \"url\"}', NULL, NULL, '2021-12-29 07:14:04', b'0', NULL, '2', NULL);
REPLACE INTO `cb_dynamic_form_column` (`sequence_nbr`, `field_code`, `field_name`, `field_type`, `group_id`, `query_strategy`, `not_null`, `block`, `group_code`, `column_config`, `rec_user_name`, `rec_user_id`, `rec_date`, `is_delete`, `remark`, `sort`, `org_code`) VALUES ('10', 'companyPhone', '单位电话', 'input', '7', 'eq', b'0', b'0', '244', NULL, NULL, NULL, '2021-07-07 02:59:34', b'0', NULL, '3', NULL);
REPLACE INTO `cb_dynamic_form_column` (`sequence_nbr`, `field_code`, `field_name`, `field_type`, `group_id`, `query_strategy`, `not_null`, `block`, `group_code`, `column_config`, `rec_user_name`, `rec_user_id`, `rec_date`, `is_delete`, `remark`, `sort`, `org_code`) VALUES ('11', 'companyMaleEmployees', '男员工人数', 'inputNumber', '7', 'eq', b'0', b'0', '244', NULL, NULL, NULL, '2021-07-12 03:06:11', b'0', NULL, '7', NULL);
REPLACE INTO `cb_dynamic_form_column` (`sequence_nbr`, `field_code`, `field_name`, `field_type`, `group_id`, `query_strategy`, `not_null`, `block`, `group_code`, `column_config`, `rec_user_name`, `rec_user_id`, `rec_date`, `is_delete`, `remark`, `sort`, `org_code`) VALUES ('12', 'companyFemaleEmployees', '女员工人数', 'inputNumber', '7', 'eq', b'0', b'0', '244', NULL, NULL, NULL, '2021-07-12 03:06:13', b'0', NULL, '8', NULL);
REPLACE INTO `cb_dynamic_form_column` (`sequence_nbr`, `field_code`, `field_name`, `field_type`, `group_id`, `query_strategy`, `not_null`, `block`, `group_code`, `column_config`, `rec_user_name`, `rec_user_id`, `rec_date`, `is_delete`, `remark`, `sort`, `org_code`) VALUES ('13', 'companyPhoto', '单位照片', 'upload', '7', 'eq', b'0', b'0', '244', NULL, NULL, NULL, '2021-07-07 02:59:31', b'0', NULL, '1', NULL);
REPLACE INTO `cb_dynamic_form_column` (`sequence_nbr`, `field_code`, `field_name`, `field_type`, `group_id`, `query_strategy`, `not_null`, `block`, `group_code`, `column_config`, `rec_user_name`, `rec_user_id`, `rec_date`, `is_delete`, `remark`, `sort`, `org_code`) VALUES ('14', 'coordinate', '标注/标绘坐标数组', 'inputBitmap', '7', 'eq', b'0', b'0', '244', NULL, NULL, NULL, '2021-08-19 09:13:14', b'1', NULL, '2', NULL);
REPLACE INTO `cb_dynamic_form_column` (`sequence_nbr`, `field_code`, `field_name`, `field_type`, `group_id`, `query_strategy`, `not_null`, `block`, `group_code`, `column_config`, `rec_user_name`, `rec_user_id`, `rec_date`, `is_delete`, `remark`, `sort`, `org_code`) VALUES ('15', 'managementType', '管理类别', 'select', '7', 'eq', b'0', b'0', '244', '{\"url\": \"\", \"data\": [], \"dict\": \"GLLB\", \"type\": \"dict\"}', NULL, NULL, '2021-07-07 10:58:59', b'0', NULL, '1', NULL);
REPLACE INTO `cb_dynamic_form_column` (`sequence_nbr`, `field_code`, `field_name`, `field_type`, `group_id`, `query_strategy`, `not_null`, `block`, `group_code`, `column_config`, `rec_user_name`, `rec_user_id`, `rec_date`, `is_delete`, `remark`, `sort`, `org_code`) VALUES ('16', 'companyNature', '单位性质', 'select', '7', 'eq', b'0', b'0', '244', '{\"url\": \"\", \"data\": [], \"dict\": \"DWXZ\", \"type\": \"dict\"}', NULL, NULL, '2021-07-07 10:58:44', b'0', NULL, '4', NULL);
REPLACE INTO `cb_dynamic_form_column` (`sequence_nbr`, `field_code`, `field_name`, `field_type`, `group_id`, `query_strategy`, `not_null`, `block`, `group_code`, `column_config`, `rec_user_name`, `rec_user_id`, `rec_date`, `is_delete`, `remark`, `sort`, `org_code`) VALUES ('132828674812065', 'longitude', '经度', 'input', '7', 'eq', b'0', b'0', '244', NULL, NULL, NULL, '2021-08-19 09:13:17', b'0', NULL, '9', NULL);
REPLACE INTO `cb_dynamic_form_column` (`sequence_nbr`, `field_code`, `field_name`, `field_type`, `group_id`, `query_strategy`, `not_null`, `block`, `group_code`, `column_config`, `rec_user_name`, `rec_user_id`, `rec_date`, `is_delete`, `remark`, `sort`, `org_code`) VALUES ('132828674812066', 'latitude', '纬度', 'input', '7', 'eq', b'0', b'0', '244', NULL, NULL, NULL, '2021-08-19 09:13:19', b'0', NULL, '10', NULL);
REPLACE INTO `cb_dynamic_form_column` (`sequence_nbr`, `field_code`, `field_name`, `field_type`, `group_id`, `query_strategy`, `not_null`, `block`, `group_code`, `column_config`, `rec_user_name`, `rec_user_id`, `rec_date`, `is_delete`, `remark`, `sort`, `org_code`) VALUES ('132828674812089', 'useType', '用途类型', 'select', '7', 'eq', b'0', b'0', '244', '{\"url\": \"\", \"data\": [], \"dict\": \"USE_TYPE\", \"type\": \"dict\"}', NULL, NULL, '2021-12-14 17:34:56', b'0', NULL, '11', NULL);
REPLACE INTO `cb_dynamic_form_column` (`sequence_nbr`, `field_code`, `field_name`, `field_type`, `group_id`, `query_strategy`, `not_null`, `block`, `group_code`, `column_config`, `rec_user_name`, `rec_user_id`, `rec_date`, `is_delete`, `remark`, `sort`, `org_code`) VALUES ('132828674812090', 'eleType', '站点类型', 'select', '7', 'eq', b'0', b'0', '244', '{\"url\": \"\", \"data\": [], \"dict\": \"ELE_TYPE\", \"type\": \"dict\"}', NULL, NULL, '2021-12-14 17:36:59', b'0', NULL, '12', NULL);
REPLACE INTO `cb_dynamic_form_column` (`sequence_nbr`, `field_code`, `field_name`, `field_type`, `group_id`, `query_strategy`, `not_null`, `block`, `group_code`, `column_config`, `rec_user_name`, `rec_user_id`, `rec_date`, `is_delete`, `remark`, `sort`, `org_code`) VALUES ('132828674812092', 'orgChargePerson', '单位负责人', 'input', '7', 'eq', b'0', b'0', '244', NULL, NULL, NULL, '2021-12-14 16:56:12', b'0', NULL, '13', NULL);
REPLACE INTO `cb_dynamic_form_column` (`sequence_nbr`, `field_code`, `field_name`, `field_type`, `group_id`, `query_strategy`, `not_null`, `block`, `group_code`, `column_config`, `rec_user_name`, `rec_user_id`, `rec_date`, `is_delete`, `remark`, `sort`, `org_code`) VALUES ('132828674812093', 'orgChargePersonPhone', '单位负责人电话', 'input', '7', 'eq', b'0', b'0', '244', NULL, NULL, NULL, '2021-12-14 16:56:14', b'0', NULL, '14', NULL);
REPLACE INTO `cb_dynamic_form_column` (`sequence_nbr`, `field_code`, `field_name`, `field_type`, `group_id`, `query_strategy`, `not_null`, `block`, `group_code`, `column_config`, `rec_user_name`, `rec_user_id`, `rec_date`, `is_delete`, `remark`, `sort`, `org_code`) VALUES ('132828674812094', 'safetyChargePerson', '安全负责人', 'input', '7', 'eq', b'0', b'0', '244', NULL, NULL, NULL, '2021-12-14 16:56:17', b'0', NULL, '15', NULL);
REPLACE INTO `cb_dynamic_form_column` (`sequence_nbr`, `field_code`, `field_name`, `field_type`, `group_id`, `query_strategy`, `not_null`, `block`, `group_code`, `column_config`, `rec_user_name`, `rec_user_id`, `rec_date`, `is_delete`, `remark`, `sort`, `org_code`) VALUES ('132828674812095', 'safetyChargePersonPhone', '安全负责人电话', 'input', '7', 'eq', b'0', b'0', '244', NULL, NULL, NULL, '2021-12-14 16:56:22', b'0', NULL, '16', NULL);
REPLACE INTO `cb_dynamic_form_column` (`sequence_nbr`, `field_code`, `field_name`, `field_type`, `group_id`, `query_strategy`, `not_null`, `block`, `group_code`, `column_config`, `rec_user_name`, `rec_user_id`, `rec_date`, `is_delete`, `remark`, `sort`, `org_code`) VALUES ('132828674812096', 'safetyManager', '安全管理人', 'input', '7', 'eq', b'0', b'0', '244', NULL, NULL, NULL, '2021-12-14 16:56:25', b'0', NULL, '17', NULL);
REPLACE INTO `cb_dynamic_form_column` (`sequence_nbr`, `field_code`, `field_name`, `field_type`, `group_id`, `query_strategy`, `not_null`, `block`, `group_code`, `column_config`, `rec_user_name`, `rec_user_id`, `rec_date`, `is_delete`, `remark`, `sort`, `org_code`) VALUES ('132828674812097', 'safetyManagerPhone', '安全管理人电话', 'input', '7', 'eq', b'0', b'0', '244', NULL, NULL, NULL, '2021-12-14 16:56:29', b'0', NULL, '18', NULL);
REPLACE INTO `cb_dynamic_form_column` (`sequence_nbr`, `field_code`, `field_name`, `field_type`, `group_id`, `query_strategy`, `not_null`, `block`, `group_code`, `column_config`, `rec_user_name`, `rec_user_id`, `rec_date`, `is_delete`, `remark`, `sort`, `org_code`) VALUES ('132828674812099', 'companyPlanePhonto', '单位总平面图', 'upload', '7', 'eq', b'0', b'0', '244', NULL, NULL, NULL, '2021-12-14 18:05:38', b'0', NULL, '20', NULL);
</sql>
</changeSet>
</databaseChangeLog>
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