Commit ca407055 authored by xukaiqiang's avatar xukaiqiang

init

parents
# Compiled class file
*.class
# Log file
*.log
# BlueJ files
*.ctxt
# Mobile Tools for Java (J2ME)
.mtj.tmp/
# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
.idea
*.iml
*.settings
*.classpath
*.project
*.springBeans
*.factorypath
target
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>YeeSafety3DServer</artifactId>
<name>YeeSafety3DServer</name>
<parent>
<groupId>com.yeejoin.amos</groupId>
<artifactId>YeeSafety3DRoot</artifactId>
<version>1.1.0</version>
</parent>
<dependencies>
<!-- 基础jar -->
<dependency>
<groupId>com.yeejoin.amos</groupId>
<artifactId>AmosOPService</artifactId>
<version>${YeeOp.version}</version>
</dependency>
<!-- 安全模块jar -->
<dependency>
<groupId>com.yeejoin.amos</groupId>
<artifactId>amos-authtoken</artifactId>
<version>${YeeSecurity.version}</version>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-config</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
</project>
\ No newline at end of file
package com.yeejoin.amos.safety.business.controller;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Sort;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.yeejoin.amos.op.core.common.query.CommonPageable;
import com.yeejoin.amos.op.core.common.query.DaoCriteria;
import com.yeejoin.amos.op.core.common.query.QueryOperatorEnum;
import com.yeejoin.amos.op.core.common.request.CommonRequest;
import com.yeejoin.amos.op.core.common.response.CommonResponse;
import com.yeejoin.amos.op.core.util.CommonResponseUtil;
import com.yeejoin.amos.safety.business.service.INodeLogViewService;
import com.yeejoin.amos.safety.common.cache.CurUserCompanyCache;
import com.yeejoin.amos.safety.common.entity.NodeToipLogView;
import com.yeejoin.amos.security.entity.Company;
import com.yeejoin.amos.security.entity.Department;
import com.yeejoin.amos.security.entity.User;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
/**
*
* <pre>
* 日志管理
* </pre>
*
* @author amos
* @version $Id: NodeLogViewController.java, v 0.1 2019年1月2日 下午3:37:47 amos Exp $
*/
@RestController
@RequestMapping("/bizLog")
@Api(value = "bizLog", tags = { "日志管理API" })
public class NodeLogViewController extends BaseController
{
@Autowired
private INodeLogViewService nodeLogViewService;
@PostMapping(value = "/query",produces = "application/json;charset=UTF-8")
@ApiOperation(value = "分页查询消息", notes = "分页查询消息")
public CommonResponse getLogInfos(
@ApiParam(value = "查询条件", required = false) @RequestBody(required = false) List<CommonRequest> queryRequests,
@ApiParam(value = "分页参数", required = true) CommonPageable commonPageable)
{
List<DaoCriteria> daoCriterias = buildDaoCriterias(queryRequests);
User currUser = getUserInfo();
if (currUser != null)
{
Department department = currUser.getDepartment();
if (department != null)//部门用户
{
//通过当前登录用户orgCode过滤
daoCriterias = buildViewDaoCriteria(daoCriterias);
}else
{
String compCode = CurUserCompanyCache.getInstance().getCurCompany(getUserId(), getToken());
if (compCode != null)
{
//查询本单位及子单位下所有部门
daoCriterias.add(new DaoCriteria("orgCode", QueryOperatorEnum.EQUAL.getName(), compCode));
daoCriterias.add(new DaoCriteria("orgCode", QueryOperatorEnum.LIKE.getName(), compCode+"*%"));
daoCriterias.add(new DaoCriteria("orgCode", QueryOperatorEnum.LIKE.getName(), "%,"+compCode+"*%"));
daoCriterias.add(new DaoCriteria("orgCode", QueryOperatorEnum.LIKE.getName(), compCode+"-%"));
daoCriterias.add(new DaoCriteria("orgCode", QueryOperatorEnum.LIKE.getName(), "%,"+compCode+"-%"));
}else
{
//无orgCode条件,通过当前登录用户orgCode过滤
daoCriterias = buildViewDaoCriteria(daoCriterias);
}
}
}
Sort sort = new Sort(Sort.Direction.DESC,"time");
commonPageable.setSort(sort);
Page<NodeToipLogView> toipLogs = nodeLogViewService.findAll(daoCriterias, commonPageable);
return CommonResponseUtil.success(toipLogs);
}
/**
*
* <pre>
* 构建3D视图当前用户orgCode过滤条件(适应于Node3DVo和Link3DVo中拼接的orgCode)
* </pre>
*
* @return
*/
private List<DaoCriteria> buildViewDaoCriteria(List<DaoCriteria> daoCriterias)
{
User currUser = getUserInfo();
if (currUser != null)
{
Company company = currUser.getCompany();
Department department = currUser.getDepartment();
String compCode = company.getCompCode();
if (department == null)
{
//单位用户,查询本单位及子单位下所有部门
daoCriterias.add(new DaoCriteria("orgCode", QueryOperatorEnum.EQUAL.getName(), compCode));
daoCriterias.add(new DaoCriteria("orgCode", QueryOperatorEnum.LIKE.getName(), compCode+"*%"));
daoCriterias.add(new DaoCriteria("orgCode", QueryOperatorEnum.LIKE.getName(), "%,"+compCode+"*%"));
daoCriterias.add(new DaoCriteria("orgCode", QueryOperatorEnum.LIKE.getName(), compCode+"-%"));
daoCriterias.add(new DaoCriteria("orgCode", QueryOperatorEnum.LIKE.getName(), "%,"+compCode+"-%"));
}else
{
//部门用户,查询当前部门
String orgCode = company.getCompCode()+"-"+department.getDepmCode();
daoCriterias.add(new DaoCriteria("orgCode", QueryOperatorEnum.EQUAL.getName(), orgCode));
daoCriterias.add(new DaoCriteria("orgCode", QueryOperatorEnum.LIKE.getName(), orgCode+",%"));
daoCriterias.add(new DaoCriteria("orgCode", QueryOperatorEnum.LIKE.getName(), "%,"+orgCode+",%"));
daoCriterias.add(new DaoCriteria("orgCode", QueryOperatorEnum.LIKE.getName(), "%,"+orgCode));
daoCriterias.add(new DaoCriteria("orgCode", QueryOperatorEnum.LIKE.getName(), compCode+"*%"));
daoCriterias.add(new DaoCriteria("orgCode", QueryOperatorEnum.LIKE.getName(), "%,"+compCode+"*%"));
}
}
return daoCriterias;
}
}
package com.yeejoin.amos.safety.business.controller;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Sort;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.yeejoin.amos.op.core.common.query.CommonPageable;
import com.yeejoin.amos.op.core.common.query.DaoCriteria;
import com.yeejoin.amos.op.core.common.query.QueryOperatorEnum;
import com.yeejoin.amos.op.core.common.request.CommonRequest;
import com.yeejoin.amos.op.core.common.response.CommonResponse;
import com.yeejoin.amos.op.core.util.CommonResponseUtil;
import com.yeejoin.amos.safety.business.service.INodeMsgViewService;
import com.yeejoin.amos.safety.common.cache.CurUserCompanyCache;
import com.yeejoin.amos.safety.common.entity.NodeMessageView;
import com.yeejoin.amos.security.entity.Company;
import com.yeejoin.amos.security.entity.Department;
import com.yeejoin.amos.security.entity.User;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
/**
*
* <pre>
* 消息Controller
* </pre>
*
* @author amos
* @version $Id: NodeMsgViewController.java, v 0.1 2019年1月2日 下午3:37:38 amos Exp $
*/
@RestController
@RequestMapping("/bizMessage")
@Api(value = "bizMessage", tags = { "消息管理API" })
public class NodeMsgViewController extends BaseController
{
@Autowired
private INodeMsgViewService nodeMsgViewService;
@PostMapping(value = "/query",produces = "application/json;charset=UTF-8")
@ApiOperation(value = "分页查询消息", notes = "分页查询消息")
public CommonResponse getMessageInfos(
@ApiParam(value = "查询条件", required = false) @RequestBody(required = false) List<CommonRequest> queryRequests,
@ApiParam(value = "分页参数", required = true) CommonPageable commonPageable)
{
List<DaoCriteria> daoCriterias = buildDaoCriterias(queryRequests);
User currUser = getUserInfo();
if (currUser != null)
{
Department department = currUser.getDepartment();
if (department != null)//部门用户
{
//通过当前登录用户orgCode过滤
daoCriterias = buildViewDaoCriteria(daoCriterias);
}else
{
String compCode = CurUserCompanyCache.getInstance().getCurCompany(getUserId(), getToken());
if (compCode != null)
{
//查询本单位及子单位下所有部门
daoCriterias.add(new DaoCriteria("orgCode", QueryOperatorEnum.EQUAL.getName(), compCode));
daoCriterias.add(new DaoCriteria("orgCode", QueryOperatorEnum.LIKE.getName(), compCode+"*%"));
daoCriterias.add(new DaoCriteria("orgCode", QueryOperatorEnum.LIKE.getName(), "%,"+compCode+"*%"));
daoCriterias.add(new DaoCriteria("orgCode", QueryOperatorEnum.LIKE.getName(), compCode+"-%"));
daoCriterias.add(new DaoCriteria("orgCode", QueryOperatorEnum.LIKE.getName(), "%,"+compCode+"-%"));
}else
{
//无orgCode条件,通过当前登录用户orgCode过滤
daoCriterias = buildViewDaoCriteria(daoCriterias);
}
}
}
Sort sort = new Sort(Sort.Direction.DESC,"time");
commonPageable.setSort(sort);
Page<NodeMessageView> messages = nodeMsgViewService.findAll(daoCriterias, commonPageable);
return CommonResponseUtil.success(messages);
}
/**
*
* <pre>
* 构建3D视图当前用户orgCode过滤条件(适应于Node3DVo和Link3DVo中拼接的orgCode)
* </pre>
*
* @return
*/
private List<DaoCriteria> buildViewDaoCriteria(List<DaoCriteria> daoCriterias)
{
User currUser = getUserInfo();
if (currUser != null)
{
Company company = currUser.getCompany();
Department department = currUser.getDepartment();
String compCode = company.getCompCode();
if (department == null)
{
//单位用户,查询本单位及子单位下所有部门
daoCriterias.add(new DaoCriteria("orgCode", QueryOperatorEnum.EQUAL.getName(), compCode));
daoCriterias.add(new DaoCriteria("orgCode", QueryOperatorEnum.LIKE.getName(), compCode+"*%"));
daoCriterias.add(new DaoCriteria("orgCode", QueryOperatorEnum.LIKE.getName(), "%,"+compCode+"*%"));
daoCriterias.add(new DaoCriteria("orgCode", QueryOperatorEnum.LIKE.getName(), compCode+"-%"));
daoCriterias.add(new DaoCriteria("orgCode", QueryOperatorEnum.LIKE.getName(), "%,"+compCode+"-%"));
}else
{
//部门用户,查询当前部门
String orgCode = company.getCompCode()+"-"+department.getDepmCode();
daoCriterias.add(new DaoCriteria("orgCode", QueryOperatorEnum.EQUAL.getName(), orgCode));
daoCriterias.add(new DaoCriteria("orgCode", QueryOperatorEnum.LIKE.getName(), orgCode+",%"));
daoCriterias.add(new DaoCriteria("orgCode", QueryOperatorEnum.LIKE.getName(), "%,"+orgCode+",%"));
daoCriterias.add(new DaoCriteria("orgCode", QueryOperatorEnum.LIKE.getName(), "%,"+orgCode));
daoCriterias.add(new DaoCriteria("orgCode", QueryOperatorEnum.LIKE.getName(), compCode+"*%"));
daoCriterias.add(new DaoCriteria("orgCode", QueryOperatorEnum.LIKE.getName(), "%,"+compCode+"*%"));
}
}
return daoCriterias;
}
}
package com.yeejoin.amos.safety.business.controller;
import com.yeejoin.amos.op.core.common.query.CommonPageable;
import com.yeejoin.amos.op.core.common.query.DaoCriteria;
import com.yeejoin.amos.op.core.common.query.QueryOperatorEnum;
import com.yeejoin.amos.op.core.common.response.CommonResponse;
import com.yeejoin.amos.op.core.util.CommonResponseUtil;
import com.yeejoin.amos.safety.business.dao.mapper.View3DMapper;
import com.yeejoin.amos.safety.common.cache.CurUserCompanyCache;
import com.yeejoin.amos.safety.common.enums.CheckStateEnum;
import com.yeejoin.amos.safety.common.enums.View3DNodeType;
import com.yeejoin.amos.security.authorization.Authorization;
import com.yeejoin.amos.security.entity.Company;
import com.yeejoin.amos.security.entity.Department;
import com.yeejoin.amos.security.entity.User;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
import org.apache.log4j.Logger;
import org.codehaus.jackson.map.ObjectMapper;
import org.json.JSONArray;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.util.CollectionUtils;
import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
*
* <pre>
* 巡检Controller
* </pre>
*
* @author amos
* @version $Id: PatrolController.java, v 0.1 2018年12月3日 下午5:12:27 amos Exp $
*/
@RestController
@RequestMapping(value = "/view3d")
@Api(value = "view3d", tags = { "3d数据检索" })
public class View3DDataController extends BaseController
{
private static final Logger logger = Logger.getLogger(View3DDataController.class);
@Autowired
private View3DMapper view3DMapper;
ObjectMapper objectMapper = new ObjectMapper();
@Authorization(ingore = true)
@GetMapping(value = "/3ddata/all",produces = "application/json;charset=UTF-8")
@ApiOperation(value = "实景右侧边栏搜索", notes = "实景右侧边栏搜索")
public CommonResponse saveCurrCompany(
@RequestParam(required = false) String type,
@RequestParam(required = false) String inputText,
@RequestParam(required = false) String routeName,
@RequestParam(required = false) String protectObjName,
@RequestParam(required = false) String dataLevel,
@RequestParam(required = false) String nodeState,
@RequestParam(required = true) int current,
@RequestParam(required = true) int pageSize) throws Exception
{
String orgCode = null;
User currUser = getUserInfo();
if (currUser != null)
{
//获取当前用户所选单位
String compCode = CurUserCompanyCache.getInstance().getCurCompany(getUserId(), getToken());
if (compCode != null)
{
//查询本单位及子单位下所有部门
Company company = currUser.getCompany();
orgCode = company.getCompCode();
}else
{
//无orgCode条件,通过当前登录用户orgCode过滤
orgCode = currUser.getOrgCode();
}
}
CommonPageable pageable = new CommonPageable( current, pageSize);
if("fireResource".equals(type)){
type = "hydrant,pool,fireCar,fireEquipment,fireChamber,fireFoamRoom";
}else if("water".equals(type)){
type = "hydrant,pool";
}
long count = view3DMapper.query3dDataPageCount(
StringUtils.trimToNull(type),
StringUtils.trimToNull(inputText),
StringUtils.trimToNull(routeName),
StringUtils.trimToNull(protectObjName),
StringUtils.trimToNull(dataLevel),StringUtils.trimToNull(orgCode),StringUtils.trimToNull(nodeState));
List<Map<String,Object>> mapList = view3DMapper.query3dDataPage(StringUtils.trimToNull(type),StringUtils.trimToNull(inputText),
StringUtils.trimToNull(routeName),
StringUtils.trimToNull(protectObjName),
StringUtils.trimToNull(dataLevel),StringUtils.trimToNull(orgCode),StringUtils.trimToNull(nodeState),pageable.getOffset(),pageable.getPageSize());
List<Map<String,Object>> newList = new ArrayList<Map<String,Object>>();
if(!CollectionUtils.isEmpty(mapList))
{
for(Map<String,Object> map: mapList)
{
Map newMap = new HashMap();
Map<String,Object> rotation = new HashMap<>();
Map<String,Object> config = new HashMap<>();
Map<String,Object> position = new HashMap<>();
Map<String,Object> scale = new HashMap<>();
if(!StringUtils.isEmpty(String.valueOf(map.get("rotation"))))
rotation = objectMapper.readValue(String.valueOf(map.get("rotation")),Map.class);
if(!StringUtils.isEmpty(String.valueOf(map.get("config"))))
config = objectMapper.readValue(String.valueOf(map.get("config")),Map.class);
if(!StringUtils.isEmpty(String.valueOf(map.get("position"))))
position = objectMapper.readValue(String.valueOf(map.get("position")),Map.class);
if(!StringUtils.isEmpty(String.valueOf(map.get("scale"))) )
scale = objectMapper.readValue(String.valueOf(map.get("scale")),Map.class);
if (!ObjectUtils.isEmpty(map.get("remark"))) {
JSONObject remark = new JSONObject(map.get("remark").toString());
JSONArray jsonArr = remark.getJSONArray("users");
if (!ObjectUtils.isEmpty(jsonArr)) {
StringBuffer person = new StringBuffer();
for (int i = 0; i < jsonArr.length(); i++) {
JSONObject userObj = jsonArr.getJSONObject(i);
if (userObj.has("userName")) {
person.append(userObj.get("userName") + ",");
}
}
if (person.length() > 0 && person.toString().endsWith(",")) {
newMap.put("person", person.toString().substring(0, person.lastIndexOf(",")));
}
}
}
if(View3DNodeType.RISK.getName().equals(map.get("type"))){
int le = CheckStateEnum.getEnum(map.get("node_state").toString()).getValue();
newMap.put("level",le);
newMap.put("levelStr", "level_"+le);//前端用于过滤几倍级别
}else{
newMap.put("level",map.get("data_level"));
}
newMap.put("rotation",rotation);
newMap.put("objKey",config.get("belongObjModel"));
newMap.put("inDoor",config.get("isIndoor"));
newMap.put("scale",scale);
newMap.put("label",map.get("display_name"));
newMap.put("code",map.get("data_code"));
newMap.put("title",map.get("node_state"));
newMap.put("routeName",map.get("route_name"));
newMap.put("type",map.get("type"));
newMap.put("typeName",map.get("typeName"));
newMap.put("displayIcon",map.get("display_icon"));
newMap.put("id",map.get("oid"));
newMap.put("position",position);
newMap.put("levelStr","level_"+String.valueOf(map.get("data_level")));
newMap.put("key",map.get("id"));
newList.add(newMap);
}
}
Page result = new PageImpl(newList,pageable,count);
return CommonResponseUtil.success(result);
}
}
package com.yeejoin.amos.safety.business.dao.mapper;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface BaseMapper {
}
package com.yeejoin.amos.safety.business.dao.mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
public interface View3DMapper extends BaseMapper {
Long query3dDataPageCount(@Param("type") String type,
@Param("inputText") String inputText,
@Param("routeName") String routeName,
@Param("protectObjName") String protectObjName,
@Param("dataLevel")String dataLevel,
@Param("orgCode")String orgCode,
@Param("nodeState")String nodeState);
List<Map<String,Object>> query3dDataPage(
@Param("type") String type,
@Param("inputText") String inputText,
@Param("routeName") String routeName,
@Param("protectObjName") String protectObjName,
@Param("dataLevel")String dataLevel,
@Param("orgCode")String orgCode,
@Param("nodeState")String nodeState,
@Param("start")int start,
@Param("length")int length
);
}
package com.yeejoin.amos.safety.business.dao.repository;
import java.util.List;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;
import com.yeejoin.amos.op.core.jpa.IBaseRepository;
import com.yeejoin.amos.safety.common.entity.Link3DVo;
/**
*
* <pre>
* 三维视图链路dao
* </pre>
*
* @author amos
* @version $Id: ILink3DVoRepository.java, v 0.1 2018年11月28日 下午6:11:06 amos Exp
* $
*/
@Repository
public interface ILink3DVoRepository extends IBaseRepository<Link3DVo, String>
{
/**
*
* <pre>
* 查询所有链路,包括path为null的数据
* </pre>
*
* @return
*/
@Query(value="select * from toip_biz_link3dvo where is_delete=0",nativeQuery=true)
List<Link3DVo> findAllInPathNull();
}
package com.yeejoin.amos.safety.business.dao.repository;
import java.util.List;
import org.springframework.stereotype.Repository;
import com.yeejoin.amos.op.core.jpa.IBaseRepository;
import com.yeejoin.amos.safety.common.entity.Node3DVo;
/**
*
* <pre>
* 三维视图节点dao
* </pre>
*
* @author amos
* @version $Id: INode3DVoRepository.java, v 0.1 2018年11月28日 下午6:07:42 amos Exp $
*/
@Repository
public interface INode3DVoRepository extends IBaseRepository<Node3DVo, String>
{
/**
*
* <pre>
* 根据节点类型类型查询视图节点
* </pre>
*
* @param type
* @return
*/
List<Node3DVo> findByType(String type);
/**
*
* <pre>
* 根据业务id和节点类型查询视图节点
* </pre>
*
* @param type
* @param oid
* @return
*/
List<Node3DVo> findByTypeAndOid(String type, String oid);
}
package com.yeejoin.amos.safety.business.dao.repository;
import org.springframework.stereotype.Repository;
import com.yeejoin.amos.op.core.jpa.IBaseRepository;
import com.yeejoin.amos.safety.common.entity.NodeToipLogView;
/**
*
* <pre>
* 三维节点与规则日志实体视图dao
* </pre>
*
* @author amos
* @version $Id: INodeLogViewRepository.java, v 0.1 2019年1月2日 下午2:47:13 amos Exp $
*/
@Repository
public interface INodeLogViewRepository extends IBaseRepository<NodeToipLogView, String>
{
}
package com.yeejoin.amos.safety.business.dao.repository;
import org.springframework.stereotype.Repository;
import com.yeejoin.amos.op.core.jpa.IBaseRepository;
import com.yeejoin.amos.safety.common.entity.NodeMessageView;
/**
*
* <pre>
* 三维节点与规则消息实体视图dao
* </pre>
*
* @author amos
* @version $Id: INodeMsgViewRepository.java, v 0.1 2019年1月2日 下午2:47:13 amos Exp $
*/
@Repository
public interface INodeMsgViewRepository extends IBaseRepository<NodeMessageView, String>
{
}
package com.yeejoin.amos.safety.business.response;
public class PatrolUserRespone {
/**
* 用户id
*/
private String userId;
/**
* 巡检人姓名
*/
private String userName;
/**
* 所属单位部门
*/
private String orgCode;
/**
* 部门名称
*/
private String groupName;
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getOrgCode() {
return orgCode;
}
public void setOrgCode(String orgCode) {
this.orgCode = orgCode;
}
public String getGroupName() {
return groupName;
}
public void setGroupName(String groupName) {
this.groupName = groupName;
}
}
package com.yeejoin.amos.safety.business.response;
import java.util.Date;
import java.util.List;
public class PointInfoResponse {
private int pointId;
private String pointName;
/**
* Ѳ��㼶��
*/
private String pointLevel;
private String status;
private Date time;
private String Address;
private List<PatrolUserRespone> users;
private List <AbnormalContent> abnormalContent;
public int getPointId() {
return pointId;
}
public void setPointId(int pointId) {
this.pointId = pointId;
}
public String getPointName() {
return pointName;
}
public void setPointName(String pointName) {
this.pointName = pointName;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public Date getTime() {
return time;
}
public void setTime(Date time) {
this.time = time;
}
public List<AbnormalContent> getAbnormalContent() {
return abnormalContent;
}
public void setAbnormalContent(List<AbnormalContent> abnormalContent) {
this.abnormalContent = abnormalContent;
}
public List<PatrolUserRespone> getUsers() {
return users;
}
public void setUsers(List<PatrolUserRespone> users) {
this.users = users;
}
public String getAddress() {
return Address;
}
public void setAddress(String address) {
Address = address;
}
public String getPointLevel() {
return pointLevel;
}
public void setPointLevel(String pointLevel) {
this.pointLevel = pointLevel;
}
class AbnormalContent{
private int id;
private int checkItemId;
private String checkItemValue;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getCheckItemId() {
return checkItemId;
}
public void setCheckItemId(int checkItemId) {
this.checkItemId = checkItemId;
}
public String getCheckItemValue() {
return checkItemValue;
}
public void setCheckItemValue(String checkItemValue) {
this.checkItemValue = checkItemValue;
}
}
}
package com.yeejoin.amos.safety.business.response;
import java.util.List;
import com.yeejoin.amos.safety.common.entity.dto.NodeConfigDTO;
public class PointInfoSyn3DRespone
{
private String pointId;
private String pointName;
/**
* 坐标
*/
private String coordinates;
private String pointLevel;
private String status;
private String address;
private Boolean isDelete;
private List<PatrolUserRespone> users;
/**
* 节点配置信息
*/
private NodeConfigDTO nodeConfigDTO;
private String orgCode;
public String getPointId()
{
return pointId;
}
public void setPointId(String pointId)
{
this.pointId = pointId;
}
public String getPointName()
{
return pointName;
}
public void setPointName(String pointName)
{
this.pointName = pointName;
}
public String getCoordinates()
{
return coordinates;
}
public void setCoordinates(String coordinates)
{
this.coordinates = coordinates;
}
public String getPointLevel()
{
return pointLevel;
}
public void setPointLevel(String pointLevel)
{
this.pointLevel = pointLevel;
}
public String getStatus()
{
return status;
}
public void setStatus(String status)
{
this.status = status;
}
public String getAddress()
{
return address;
}
public void setAddress(String address)
{
this.address = address;
}
public List<PatrolUserRespone> getUsers()
{
return users;
}
public void setUsers(List<PatrolUserRespone> users)
{
this.users = users;
}
public NodeConfigDTO getNodeConfigDTO()
{
return nodeConfigDTO;
}
public void setNodeConfigDTO(NodeConfigDTO nodeConfigDTO)
{
this.nodeConfigDTO = nodeConfigDTO;
}
public Boolean getIsDelete() {
return isDelete;
}
public void setIsDelete(Boolean isDelete) {
this.isDelete = isDelete;
}
public String getOrgCode() {
return orgCode;
}
public void setOrgCode(String orgCode) {
this.orgCode = orgCode;
}
}
package com.yeejoin.amos.safety.business.response;
import java.util.List;
/**
* 巡检路线
* @author Administrator
*
*/
public class RouteResponse {
/**
* 巡检路线id
*/
private Integer routeId;
/**
* 巡检路线名称
*/
private String routeName;
/**
* 负责人
*/
private String boss;
/**
* 负责人电话
*/
private String tel;
private Boolean isDelete;
private String orgCode;
/**
* 巡检线路人员信息
*/
private List<PatrolUserRespone> patrolUsers;
public Integer getRouteId() {
return routeId;
}
public void setRouteId(Integer routeId) {
this.routeId = routeId;
}
public String getRouteName() {
return routeName;
}
public void setRouteName(String routeName) {
this.routeName = routeName;
}
public List<PatrolUserRespone> getPatrolUsers() {
return patrolUsers;
}
public void setPatrolUsers(List<PatrolUserRespone> patrolUsers) {
this.patrolUsers = patrolUsers;
}
public String getBoss() {
return boss;
}
public void setBoss(String boss) {
this.boss = boss;
}
public String getTel() {
return tel;
}
public void setTel(String tel) {
this.tel = tel;
}
public Boolean getIsDelete() {
return isDelete;
}
public void setIsDelete(Boolean isDelete) {
this.isDelete = isDelete;
}
public String getOrgCode() {
return orgCode;
}
public void setOrgCode(String orgCode) {
this.orgCode = orgCode;
}
}
package com.yeejoin.amos.safety.business.service;
import java.util.List;
import com.yeejoin.amos.op.core.jpa.IGenericManager;
import com.yeejoin.amos.safety.common.entity.Link3DVo;
/**
*
* <pre>
* 三维视图链路service
* </pre>
*
* @author amos
* @version $Id: ILink3DVoService.java, v 0.1 2018年11月28日 下午6:11:28 amos Exp $
*/
public interface ILink3DVoService extends IGenericManager<Link3DVo,String>
{
/**
*
* <pre>
* 查询所有链路,包括path为null的数据
* </pre>
*
* @return
*/
List<Link3DVo> findAllInPathNull();
}
package com.yeejoin.amos.safety.business.service;
import java.util.List;
import com.yeejoin.amos.op.core.jpa.IGenericManager;
import com.yeejoin.amos.safety.common.entity.Node3DVo;
/**
*
* <pre>
* 三维视图节点service
* </pre>
*
* @author amos
* @version $Id: INode3DVoService.java, v 0.1 2018年11月28日 下午6:07:59 amos Exp $
*/
public interface INode3DVoService extends IGenericManager<Node3DVo,String>
{
/**
*
* <pre>
* 根据节点类型类型查询视图节点
* </pre>
*
* @param type
* @return
*/
List<Node3DVo> findByType(String type);
/**
*
* <pre>
* 根据业务id和节点类型查询视图节点
* </pre>
*
* @param type
* @param oid
* @return
*/
List<Node3DVo> findByTypeAndOid(String type, String oid);
}
package com.yeejoin.amos.safety.business.service;
import com.yeejoin.amos.op.core.jpa.IGenericManager;
import com.yeejoin.amos.safety.common.entity.NodeToipLogView;
/**
*
* <pre>
* 三维节点与规则日志实体视图service
* </pre>
*
* @author amos
* @version $Id: INodeLogViewService.java, v 0.1 2019年1月2日 下午2:48:40 amos Exp $
*/
public interface INodeLogViewService extends IGenericManager<NodeToipLogView,String>
{
}
package com.yeejoin.amos.safety.business.service;
import com.yeejoin.amos.op.core.jpa.IGenericManager;
import com.yeejoin.amos.safety.common.entity.NodeMessageView;
/**
*
* <pre>
* 三维节点与规则消息实体视图service
* </pre>
*
* @author amos
* @version $Id: INodeMsgViewService.java, v 0.1 2019年1月2日 下午2:48:40 amos Exp $
*/
public interface INodeMsgViewService extends IGenericManager<NodeMessageView,String>
{
}
package com.yeejoin.amos.safety.business.service.impl;
import java.util.List;
import org.springframework.stereotype.Service;
import com.yeejoin.amos.op.core.jpa.GenericManagerImpl;
import com.yeejoin.amos.safety.business.dao.repository.ILink3DVoRepository;
import com.yeejoin.amos.safety.business.service.ILink3DVoService;
import com.yeejoin.amos.safety.common.entity.Link3DVo;
/**
*
* <pre>
* 三维视图链路service实现
* </pre>
*
* @author amos
* @version $Id: Link3DVoServiceImpl.java, v 0.1 2018年11月28日 下午6:14:51 amos Exp
* $
*/
@Service
public class Link3DVoServiceImpl extends GenericManagerImpl<Link3DVo, String>
implements ILink3DVoService
{
ILink3DVoRepository link3DVoRepository;
public Link3DVoServiceImpl(ILink3DVoRepository link3DVoRepository)
{
super(link3DVoRepository);
this.link3DVoRepository = link3DVoRepository;
}
@Override
public List<Link3DVo> findAllInPathNull()
{
return link3DVoRepository.findAllInPathNull();
}
}
\ No newline at end of file
package com.yeejoin.amos.safety.business.service.impl;
import java.util.List;
import org.springframework.stereotype.Service;
import com.yeejoin.amos.op.core.jpa.GenericManagerImpl;
import com.yeejoin.amos.safety.business.dao.repository.INode3DVoRepository;
import com.yeejoin.amos.safety.business.service.INode3DVoService;
import com.yeejoin.amos.safety.common.entity.Node3DVo;
/**
*
* <pre>
* 三维视图节点service实现
* </pre>
*
* @author amos
* @version $Id: Node3DVoServiceImpl.java, v 0.1 2018年11月28日 下午6:12:21 amos Exp
* $
*/
@Service
public class Node3DVoServiceImpl extends GenericManagerImpl<Node3DVo, String>
implements INode3DVoService
{
INode3DVoRepository node3DVoRepository;
public Node3DVoServiceImpl(INode3DVoRepository repository)
{
super(repository);
this.node3DVoRepository = repository;
}
@Override
public List<Node3DVo> findByType(String type)
{
return node3DVoRepository.findByType(type);
}
@Override
public List<Node3DVo> findByTypeAndOid(String type, String oid)
{
return node3DVoRepository.findByTypeAndOid(type, oid);
}
}
\ No newline at end of file
package com.yeejoin.amos.safety.business.service.impl;
import org.springframework.stereotype.Service;
import com.yeejoin.amos.op.core.jpa.GenericManagerImpl;
import com.yeejoin.amos.safety.business.dao.repository.INodeLogViewRepository;
import com.yeejoin.amos.safety.business.service.INodeLogViewService;
import com.yeejoin.amos.safety.common.entity.NodeToipLogView;
/**
*
* <pre>
* 三维节点与规则日志实体视图service实现
* </pre>
*
* @author amos
* @version $Id: NodeLogViewServiceImpl.java, v 0.1 2018年11月28日 下午6:14:51 amos Exp
* $
*/
@Service
public class NodeLogViewServiceImpl extends GenericManagerImpl<NodeToipLogView, String>
implements INodeLogViewService
{
public NodeLogViewServiceImpl(INodeLogViewRepository repository)
{
super(repository);
// TODO Auto-generated constructor stub
}
}
\ No newline at end of file
package com.yeejoin.amos.safety.business.service.impl;
import org.springframework.stereotype.Service;
import com.yeejoin.amos.op.core.jpa.GenericManagerImpl;
import com.yeejoin.amos.safety.business.dao.repository.INodeMsgViewRepository;
import com.yeejoin.amos.safety.business.service.INodeMsgViewService;
import com.yeejoin.amos.safety.common.entity.NodeMessageView;
/**
*
* <pre>
* 三维节点与规则消息实体视图service实现
* </pre>
*
* @author amos
* @version $Id: NodeMsgViewServiceImpl.java, v 0.1 2018年11月28日 下午6:14:51 amos Exp
* $
*/
@Service
public class NodeMsgViewServiceImpl extends GenericManagerImpl<NodeMessageView, String>
implements INodeMsgViewService
{
public NodeMsgViewServiceImpl(INodeMsgViewRepository repository)
{
super(repository);
// TODO Auto-generated constructor stub
}
}
\ No newline at end of file
package com.yeejoin.amos.safety.business.websocket;
import java.io.IOException;
import java.util.concurrent.CopyOnWriteArraySet;
import javax.websocket.OnClose;
import javax.websocket.OnError;
import javax.websocket.OnMessage;
import javax.websocket.OnOpen;
import javax.websocket.Session;
import javax.websocket.server.ServerEndpoint;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Component;
/**
*
* <pre>
* 3D视图WebSocket
* </pre>
*
* @author amos
* @version $Id: View3DSocket.java, v 0.1 2018年12月3日 下午6:14:02 amos Exp $
*/
@Component
@ServerEndpoint(value = "/view3d.ws")
public class View3DWebSocket
{
private static final Logger log = Logger.getLogger(View3DWebSocket.class);
// 静态变量,用来记录当前在线连接数。应该把它设计成线程安全的。
private static int onlineCount = 0;
// concurrent包的线程安全Set,用来存放每个客户端对应的MyWebSocket对象。
private static CopyOnWriteArraySet<View3DWebSocket> webSocketSet = new CopyOnWriteArraySet<View3DWebSocket>();
// 与某个客户端的连接会话,需要通过它来给客户端发送数据
private Session session;
/**
* 连接建立成功调用的方法
*/
@OnOpen
public void onOpen(Session session)
{
this.session = session;
webSocketSet.add(this); // 加入set中
addOnlineCount(); // 在线数加1
log.debug("有新连接加入!当前在线人数为" + getOnlineCount());
}
/**
* 连接关闭调用的方法
*/
@OnClose
public void onClose()
{
webSocketSet.remove(this); // 从set中删除
subOnlineCount(); // 在线数减1
log.debug("有一连接关闭!当前在线人数为" + getOnlineCount());
}
/**
* 收到客户端消息后调用的方法
*
* @param message
* 客户端发送过来的消息
*/
@OnMessage
public void onMessage(String message, Session session)
{
log.info("来自客户端的消息:" + message);
}
@OnError
public void onError(Session session, Throwable error)
{
log.error("发生错误", error);
}
public void sendMessage(String message) throws IOException
{
this.session.getBasicRemote().sendText(message);
}
/**
* 群发自定义消息
*/
public static void sendInfo(String message) throws IOException
{
log.debug("——----View3DWebSocket开始群发消息------");
log.debug("消息内容为:" + message);
for (View3DWebSocket item : webSocketSet)
{
try
{
item.sendMessage(message);
}
catch (IOException e)
{
log.error(item.session.getId() + "消息发送失败", e);
continue;
}
}
log.debug("——----View3DWebSocket结束群发消息------");
}
public static synchronized int getOnlineCount()
{
return onlineCount;
}
public static synchronized void addOnlineCount()
{
View3DWebSocket.onlineCount++;
}
public static synchronized void subOnlineCount()
{
View3DWebSocket.onlineCount--;
}
}
package com.yeejoin.amos.safety.common.cache;
import java.util.HashMap;
import java.util.Map;
/**
*
* <pre>
* 当前登录用户单位信息缓存
* </pre>
*
* @author amos
* @version $Id: CurUserCompanyCache.java, v 0.1 2018年12月29日 下午3:37:55 amos Exp $
*/
public class CurUserCompanyCache
{
private static CurUserCompanyCache instance;
//当前登录用户选择的单位的orgCode,第一个key为当前登录userId,第二个key为本次登录token
private Map<Long, Map<String, String>> curCompanyMap = new HashMap<Long, Map<String, String>>();
public static CurUserCompanyCache getInstance()
{
if (instance ==null)
{
instance = new CurUserCompanyCache();
}
return instance;
}
/**
*
* <pre>
* 缓存当前登录单位信息
* </pre>
*
* @param userId
* @param token
* @param company
*/
public void putCurCompanyMap(Long userId, String token, String orgCode)
{
Map<String, String> token_company = new HashMap<String, String>();
token_company.put(token, orgCode);
//一个用户只保存最新的登录信息
curCompanyMap.put(userId, token_company);
}
/**
*
* <pre>
* 获取当前登录单位信息
* </pre>
*
* @param userId
* @param token
* @return
*/
public String getCurCompany(Long userId, String token)
{
String orgCode = null;
Map<String, String> token_company = curCompanyMap.get(userId);
if (token_company != null)
{
orgCode = token_company.get(token);
}
return orgCode;
}
}
package com.yeejoin.amos.safety.common.cache;
import java.util.HashMap;
import java.util.Map;
import com.yeejoin.amos.safety.common.entity.dto.CoordDTO;
/**
*
* <pre>
* 巡检人员上一次巡检位置信息缓存
* </pre>
*
* @author amos
* @version $Id: UserPostionCache.java, v 0.1 2019年1月6日 下午8:34:42 amos Exp $
*/
public class UserPostionCache
{
private static UserPostionCache instance;
//key为userId, value为巡检人上一次巡检位置
private Map<String, CoordDTO> postionMap = new HashMap<String, CoordDTO>();
public static UserPostionCache getInstance()
{
if (instance ==null)
{
instance = new UserPostionCache();
}
return instance;
}
/**
*
* <pre>
* 缓存用户上一次巡检位置
* </pre>
*
* @param userId
* @param CoordDTO
*/
public void putPostionMap(String userId, CoordDTO CoordDTO)
{
postionMap.put(userId, CoordDTO);
}
/**
*
* <pre>
* 获取用户上一次巡检位置
* </pre>
*
* @param userId
* @return
*/
public CoordDTO getPostionMap(String userId)
{
return postionMap.get(userId);
}
}
package com.yeejoin.amos.safety.common.entity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Transient;
import org.hibernate.annotations.GenericGenerator;
import org.hibernate.annotations.Where;
import com.alibaba.fastjson.JSON;
import com.yeejoin.amos.op.core.entity.BusinessEntity;
import com.yeejoin.amos.safety.business.response.RouteResponse;
import com.yeejoin.amos.safety.common.entity.dto.LinkPathDTO;
/**
*
* <pre>
* 三维视图链路元素
* </pre>
*
* @author amos
* @version $Id: Link3DVo.java, v 0.1 2018年11月28日 下午6:23:07 amos Exp $
*/
@Entity
@Table(name = "toip_biz_link3dvo")
@Where(clause="is_delete=0")//表示未删除的数据
public class Link3DVo extends BusinessEntity
{
/**
* <pre>
*
* </pre>
*/
private static final long serialVersionUID = 3610831106560740034L;
/**
* id
*/
@Id
@GeneratedValue(generator = "uuid")
@GenericGenerator(name = "uuid", strategy = "uuid2")
@Column(name = "id", nullable = false, length = 36)
protected String id;
/**
* 显示名
*/
@Column(name = "display_name")
private String displayName;
/**
* 类型
*/
@Column(name = "type")
private String type;
/**
* 所属对象Id
*/
@Column(name = "oid")
private String oid;
/**
* 线路路径
*/
@Column(name = "path")
private String path;
/**
* 组织机构(公司+部门),多个通过“,”进行隔开
*/
@Column(name = "org_code", length = 50)
private String orgCode;
/**
* 备注
*/
@Column(name = "remark")
private String remark;
/**
* 线路业务信息
*/
@Transient
private RouteResponse routeResponse;
/**
* 线路路径
*/
@Transient
private LinkPathDTO linkPathDTO;
public String getId()
{
return id;
}
public void setId(String id)
{
this.id = id;
}
public String getDisplayName()
{
return displayName;
}
public void setDisplayName(String displayName)
{
this.displayName = displayName;
}
public String getType()
{
return type;
}
public void setType(String type)
{
this.type = type;
}
public String getOid()
{
return oid;
}
public void setOid(String oid)
{
this.oid = oid;
}
public String getPath()
{
return path;
}
public void setPath(String path)
{
this.path = path;
}
public String getOrgCode()
{
return orgCode;
}
public void setOrgCode(String orgCode)
{
this.orgCode = orgCode;
}
public String getRemark()
{
return remark;
}
public void setRemark(String remark)
{
this.remark = remark;
}
public LinkPathDTO getLinkPathDTO()
{
return JSON.parseObject(path, LinkPathDTO.class);
}
public void setLinkPathDTO(LinkPathDTO linkPathDTO)
{
this.linkPathDTO = linkPathDTO;
}
public RouteResponse getRouteResponse()
{
return JSON.parseObject(remark, RouteResponse.class);
}
public void setRouteResponse(RouteResponse routeResponse)
{
this.routeResponse = routeResponse;
}
}
\ No newline at end of file
package com.yeejoin.amos.safety.common.entity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Transient;
import org.hibernate.annotations.GenericGenerator;
import org.hibernate.annotations.Where;
import com.alibaba.fastjson.JSON;
import com.yeejoin.amos.op.core.entity.BusinessEntity;
import com.yeejoin.amos.safety.business.response.PointInfoResponse;
import com.yeejoin.amos.safety.common.entity.dto.CoordDTO;
import com.yeejoin.amos.safety.common.entity.dto.NodeConfigDTO;
/**
*
* <pre>
* 三维视图节点元素
* </pre>
*
* @author amos
* @version $Id: Node3DVo.java, v 0.1 2018年11月28日 下午6:23:35 amos Exp $
*/
@Entity
@Table(name = "toip_biz_node3dvo")
@Where(clause="is_delete=0")//表示未删除的数据
public class Node3DVo extends BusinessEntity
{
/**
* <pre>
*
* </pre>
*/
private static final long serialVersionUID = 8645988369602644725L;
/**
* id
*/
@Id
@GeneratedValue(generator = "uuid")
@GenericGenerator(name = "uuid", strategy = "uuid2")
@Column(name = "id", nullable = false, length = 36)
protected String id;
/**
* 显示名
*/
@Column(name = "display_name")
private String displayName;
/**
* 类型,nodeVo中填充View3DNodeType中的name值
*/
@Column(name = "type")
private String type;
/**
* 节点状态,nodeVo中填充View3DNodeState中的name值
*/
@Column(name = "node_state")
private String nodeState;
/**
* 所属对象Id
*/
@Column(name = "oid")
private String oid;
/**
* 任务所属对象Id
*/
@Column(name = "task_oid")
private String taskOid;
/**
* 显示图标
*/
@Column(name = "display_icon")
private String displayIcon;
/**
* 节点位置,包括x,y,z值
*/
@Column(name = "position")
private String position;
/**
* 节点位置,包括x,y,z值
*/
@Column(name = "rotation")
private String rotation;
/**
* 节点位置,包括x,y,z值
*/
@Column(name = "scale")
private String scale;
/**
* 节点配置信息
*/
@Column(name = "config")
private String config;
/**
* 点编号
*/
@Column(name = "dataCode")
private String dataCode;
/**
* 点等级
*/
@Column(name = "data_level")
private String dataLevel;
/**
* 保护对象名称
*/
@Column(name = "protect_obj_name")
private String protectObjName;
/**
* 线路名称
*/
@Column(name = "route_name")
private String routeName;
/**
* 节点配置信息
*/
@Transient
private NodeConfigDTO nodeConfigDTO;
/**
* 节点位置,包括x,y,z值
*/
@Transient
private CoordDTO positionDTO;
/**
* 节点位置,包括x,y,z值
*/
@Transient
private CoordDTO rotationDTO;
/**
* 节点位置,包括x,y,z值
*/
@Transient
private CoordDTO scaleDTO;
/**
* 组织机构(公司+部门),多个通过“,”进行隔开
*/
@Column(name = "org_code", length = 50)
private String orgCode;
/**
* 备注
*/
@Column(name = "remark")
private String remark;
@Transient
private PointInfoResponse pointInfoResponse;
public String getId()
{
return id;
}
public void setId(String id)
{
this.id = id;
}
public String getDisplayName()
{
return displayName;
}
public void setDisplayName(String displayName)
{
this.displayName = displayName;
}
public String getType()
{
return type;
}
public void setType(String type)
{
this.type = type;
}
public String getNodeState()
{
return nodeState;
}
public void setNodeState(String nodeState)
{
this.nodeState = nodeState;
}
public String getOid()
{
return oid;
}
public void setOid(String oid)
{
this.oid = oid;
}
public String getTaskOid()
{
return taskOid;
}
public void setTaskOid(String taskOid)
{
this.taskOid = taskOid;
}
public String getDataCode() {
return dataCode;
}
public void setDataCode(String dataCode) {
this.dataCode = dataCode;
}
public String getDataLevel() {
return dataLevel;
}
public void setDataLevel(String dataLevel) {
this.dataLevel = dataLevel;
}
public String getProtectObjName() {
return protectObjName;
}
public void setProtectObjName(String protectObjName) {
this.protectObjName = protectObjName;
}
public String getRouteName() {
return routeName;
}
public void setRouteName(String routeName) {
this.routeName = routeName;
}
public void setNodeConfigDTO(NodeConfigDTO nodeConfigDTO) {
this.nodeConfigDTO = nodeConfigDTO;
}
public String getDisplayIcon()
{
return displayIcon;
}
public void setDisplayIcon(String displayIcon)
{
this.displayIcon = displayIcon;
}
public String getPosition()
{
return position;
}
public void setPosition(String position)
{
this.position = position;
}
public String getRotation()
{
return rotation;
}
public void setRotation(String rotation)
{
this.rotation = rotation;
}
public String getScale()
{
return scale;
}
public void setScale(String scale)
{
this.scale = scale;
}
public String getOrgCode()
{
return orgCode;
}
public void setOrgCode(String orgCode)
{
this.orgCode = orgCode;
}
public String getRemark()
{
return remark;
}
public void setRemark(String remark)
{
this.remark = remark;
}
public String getConfig()
{
return config;
}
public void setConfig(String config)
{
this.config = config;
}
public NodeConfigDTO getNodeConfigDTO()
{
return config == null?null:JSON.parseObject(config, NodeConfigDTO.class);
}
public CoordDTO getPositionDTO()
{
return position == null?null:JSON.parseObject(position, CoordDTO.class);
}
public void setPositionDTO(CoordDTO positionDTO)
{
this.positionDTO = positionDTO;
}
public CoordDTO getRotationDTO()
{
return rotation == null?null:JSON.parseObject(rotation, CoordDTO.class);
}
public void setRotationDTO(CoordDTO rotationDTO)
{
this.rotationDTO = rotationDTO;
}
public CoordDTO getScaleDTO()
{
return scale == null?null:JSON.parseObject(scale, CoordDTO.class);
}
public void setScaleDTO(CoordDTO scaleDTO)
{
this.scaleDTO = scaleDTO;
}
public PointInfoResponse getPointInfoResponse()
{
return remark == null?null:JSON.parseObject(remark, PointInfoResponse.class);
}
public void setPointInfoResponse(PointInfoResponse pointInfoResponse)
{
this.pointInfoResponse = pointInfoResponse;
}
}
\ No newline at end of file
package com.yeejoin.amos.safety.common.entity;
import java.io.Serializable;
import java.util.Date;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Transient;
import com.yeejoin.amos.op.core.util.DateUtil;
/**
*
* <pre>
* 三维节点与规则消息实体视图
* </pre>
*
* @author amos
* @version $Id: NodeMessageView.java, v 0.1 2019年1月2日 下午2:39:52 amos Exp $
*/
@Entity
@Table(name = "toip_biz_message")
public class NodeMessageView implements Serializable
{
/**
* <pre>
*
* </pre>
*/
private static final long serialVersionUID = 292329658525267887L;
@Id
private String id;
/**
* 时间
*/
private Date time;
@Transient
private String timeStr;
/**
* 标题
*/
private String title;
/**
* 内容
*/
private String content;
/**
* 类型
*/
private String type;
/**
* 发送者
*/
private String sender;
/**
* 接收者
*/
private String receiver;
/**
* 已读者
*/
private String reader;
/**
* 业务id
*/
private String bizId;
/**
* 业务员实体名,例如com.yeejoin.amos.toip.bizrulebridge.entity.Fire
*/
private String bizclassName;
/**
* 组织机构(公司+部门),多个通过“,”进行隔开
*/
private String orgCode;
public String getId()
{
return id;
}
public void setId(String id)
{
this.id = id;
}
public Date getTime()
{
return time;
}
public void setTime(Date time)
{
this.time = time;
}
public String getTitle()
{
return title;
}
public void setTitle(String title)
{
this.title = title;
}
public String getContent()
{
return content;
}
public void setContent(String content)
{
this.content = content;
}
public String getType()
{
return type;
}
public void setType(String type)
{
this.type = type;
}
public String getSender()
{
return sender;
}
public void setSender(String sender)
{
this.sender = sender;
}
public String getReceiver()
{
return receiver;
}
public void setReceiver(String receiver)
{
this.receiver = receiver;
}
public String getReader()
{
return reader;
}
public void setReader(String reader)
{
this.reader = reader;
}
public String getBizId()
{
return bizId;
}
public void setBizId(String bizId)
{
this.bizId = bizId;
}
public String getTimeStr()
{
return DateUtil.getDateTimeFormat(this.time);
}
public String getBizclassName()
{
return bizclassName;
}
public void setBizclassName(String bizclassName)
{
this.bizclassName = bizclassName;
}
public String getOrgCode()
{
return orgCode;
}
public void setOrgCode(String orgCode)
{
this.orgCode = orgCode;
}
}
package com.yeejoin.amos.safety.common.entity;
import java.io.Serializable;
import java.util.Date;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Transient;
import com.yeejoin.amos.op.core.util.DateUtil;
/**
*
* <pre>
* 三维节点与规则日志实体视图
* </pre>
*
* @author amos
* @version $Id: NodeToipLogView.java, v 0.1 2019年1月2日 下午2:40:14 amos Exp $
*/
@Entity
@Table(name = "toip_biz_log")
public class NodeToipLogView implements Serializable
{
/**
* <pre>
*
* </pre>
*/
private static final long serialVersionUID = -4633712954902787071L;
@Id
private String id;
/**
* 时间
*/
private Date time = new Date();
@Transient
private String timeStr;
/**
* 内容
*/
private String context;
/**
* 类型
*/
private String type;
/**
* 业务id
*/
private String bizId;
/**
* 业务员实体名,例如com.yeejoin.amos.toip.bizrulebridge.entity.Fire
*/
private String bizclassName;
/**
* 动作id
*/
private String actionId;
/**
* ip
*/
private String ip;
/**
* 结果
*/
private String result;
/**
* 备注
*/
private String remark;
/**
* 组织机构(公司+部门),多个通过“,”进行隔开
*/
private String orgCode;
public String getId()
{
return id;
}
public void setId(String id)
{
this.id = id;
}
public Date getTime()
{
return time;
}
public void setTime(Date time)
{
this.time = time;
}
public String getContext()
{
return context;
}
public void setContext(String context)
{
this.context = context;
}
public String getType()
{
return type;
}
public void setType(String type)
{
this.type = type;
}
public String getBizId()
{
return bizId;
}
public void setBizId(String bizId)
{
this.bizId = bizId;
}
public String getIp()
{
return ip;
}
public void setIp(String ip)
{
this.ip = ip;
}
public String getResult()
{
return result;
}
public void setResult(String result)
{
this.result = result;
}
public String getRemark()
{
return remark;
}
public void setRemark(String remark)
{
this.remark = remark;
}
public String getActionId()
{
return actionId;
}
public void setActionId(String actionId)
{
this.actionId = actionId;
}
public String getTimeStr()
{
return DateUtil.getDateTimeFormat(this.time);
}
public String getBizclassName()
{
return bizclassName;
}
public void setBizclassName(String bizclassName)
{
this.bizclassName = bizclassName;
}
public String getOrgCode()
{
return orgCode;
}
public void setOrgCode(String orgCode)
{
this.orgCode = orgCode;
}
}
package com.yeejoin.amos.safety.common.entity;
import java.io.Serializable;
/**
*
* <pre>
* Patrol 详情
* </pre>
*
* @author amos
* @version $Id: PatrolInfo.java, v 0.1 2019年1月7日 下午7:28:04 amos Exp $
*/
public class PatrolInfo implements Serializable
{
/**
* <pre>
*
* </pre>
*/
private static final long serialVersionUID = -6019481778977976661L;
private String key;
private String label;
private String value;
public PatrolInfo(String key, String label, String value)
{
super();
this.key = key;
this.label = label;
this.value = value;
}
public String getKey()
{
return key;
}
public void setKey(String key)
{
this.key = key;
}
public String getLabel()
{
return label;
}
public void setLabel(String label)
{
this.label = label;
}
public String getValue()
{
return value;
}
public void setValue(String value)
{
this.value = value;
}
}
package com.yeejoin.amos.safety.common.entity;
import java.util.Date;
import java.util.List;
import com.yeejoin.amos.op.core.entity.Resource;
import com.yeejoin.amos.op.core.util.DateUtil;
import com.yeejoin.amos.safety.common.entity.dto.PatrolCheckInputDTO;
/**
*
* <pre>
* 风险点
* </pre>
*
* @author amos
* @version $Id: RiskPoint.java, v 0.1 2019年1月4日 上午9:27:20 amos Exp $
*/
public class RiskPoint extends Resource
{
/**
* 风险点信息
*/
// 风险点id
private int pointID;
// 风险点编号
private String pointNo;
// 风险点名称
private String pointName;
// 风险点地址
private String address;
// 风险点状态:是否合格
private String status;
/**
* 风险点巡检信息
*/
// 记录编号
private int checkID;
// 巡检人编号
private int userID;
// 巡检时间
private Date checkTime;
// 巡检计划
private String planName;
// 巡检人
private String userName;
// 电话
private String telephone;
// 部门
private String department;
//巡检项
private List<PatrolCheckInputDTO> checkInput;
/**
* 任务信息
*/
// 任务编号
private int taskID;
// 任务名称
private String taskName;
// 安排人
private String arranger;
// 执行人
private String executor;
// 要求完成时间
private Date planTime;
// 要求完成时间
private String planTimeStr;
// 任务内容
private String content;
// 完成时间
private Date fishTime;
public int getCheckID()
{
return checkID;
}
public void setCheckID(int checkID)
{
this.checkID = checkID;
}
public int getUserID()
{
return userID;
}
public void setUserID(int userID)
{
this.userID = userID;
}
public int getPointID()
{
return pointID;
}
public void setPointID(int pointID)
{
this.pointID = pointID;
}
public String getPointNo()
{
return pointNo;
}
public void setPointNo(String pointNo)
{
this.pointNo = pointNo;
}
public String getPointName()
{
return pointName;
}
public void setPointName(String pointName)
{
this.pointName = pointName;
}
public Date getCheckTime()
{
return checkTime;
}
public void setCheckTime(Date checkTime)
{
this.checkTime = checkTime;
}
public String getAddress()
{
return address;
}
public void setAddress(String address)
{
this.address = address;
}
public String getStatus()
{
return status;
}
public void setStatus(String status)
{
this.status = status;
}
public String getPlanName()
{
return planName;
}
public void setPlanName(String planName)
{
this.planName = planName;
}
public String getUserName()
{
return userName;
}
public void setUserName(String userName)
{
this.userName = userName;
}
public String getTelephone()
{
return telephone;
}
public void setTelephone(String telephone)
{
this.telephone = telephone;
}
public String getDepartment()
{
return department;
}
public void setDepartment(String department)
{
this.department = department;
}
public List<PatrolCheckInputDTO> getCheckInput()
{
return checkInput;
}
public void setCheckInput(List<PatrolCheckInputDTO> checkInput)
{
this.checkInput = checkInput;
}
public int getTaskID()
{
return taskID;
}
public void setTaskID(int taskID)
{
this.taskID = taskID;
}
public String getTaskName()
{
return taskName;
}
public void setTaskName(String taskName)
{
this.taskName = taskName;
}
public String getArranger()
{
return arranger;
}
public void setArranger(String arranger)
{
this.arranger = arranger;
}
public String getExecutor()
{
return executor;
}
public void setExecutor(String executor)
{
this.executor = executor;
}
public Date getPlanTime()
{
return planTime;
}
public void setPlanTime(Date planTime)
{
this.planTime = planTime;
}
public String getPlanTimeStr()
{
if (planTime != null)
{
return DateUtil.date2LongStr(planTime);
}
return planTimeStr;
}
public void setPlanTimeStr(String planTimeStr)
{
this.planTimeStr = planTimeStr;
}
public String getContent()
{
return content;
}
public void setContent(String content)
{
this.content = content;
}
public Date getFishTime()
{
return fishTime;
}
public void setFishTime(Date fishTime)
{
this.fishTime = fishTime;
}
}
package com.yeejoin.amos.safety.common.entity.dto;
import java.io.Serializable;
/**
*
* <pre>
* 三维坐标点实体
* </pre>
*
* @author amos
* @version $Id: CoordDTO.java, v 0.1 2018年12月4日 下午4:24:10 amos Exp $
*/
public class CoordDTO implements Serializable
{
/**
* <pre>
*
* </pre>
*/
private static final long serialVersionUID = 6262473276965840710L;
private Double x;
private Double y;
private Double z;
public Double getX()
{
return x;
}
public void setX(Double x)
{
this.x = x;
}
public Double getY()
{
return y;
}
public void setY(Double y)
{
this.y = y;
}
public Double getZ()
{
return z;
}
public void setZ(Double z)
{
this.z = z;
}
}
\ No newline at end of file
package com.yeejoin.amos.safety.common.entity.dto;
import java.io.Serializable;
import java.util.LinkedList;
/**
*
* <pre>
* 三维坐标点线路实体
* </pre>
*
* @author amos
* @version $Id: LinkPathDTO.java, v 0.1 2018年12月4日 下午6:12:35 amos Exp $
*/
public class LinkPathDTO implements Serializable
{
/**
* <pre>
*
* </pre>
*/
private static final long serialVersionUID = 102779609691290473L;
private LinkedList<NodeCoordDTO> nodeCoordDTOs;
public LinkedList<NodeCoordDTO> getNodeCoordDTOs()
{
return nodeCoordDTOs;
}
public void setNodeCoordDTOs(LinkedList<NodeCoordDTO> nodeCoordDTOs)
{
this.nodeCoordDTOs = nodeCoordDTOs;
}
}
\ No newline at end of file
package com.yeejoin.amos.safety.common.entity.dto;
import java.io.Serializable;
/**
*
* <pre>
* 节点配置信息
* </pre>
*
* @author amos
* @version $Id: NodeConfigDTO.java, v 0.1 2019年1月7日 上午9:43:34 amos Exp $
*/
public class NodeConfigDTO implements Serializable
{
/**
* <pre>
*
* </pre>
*/
private static final long serialVersionUID = 6262473276965840710L;
/**
* 是否室内(默认false,为室外)
*/
private Boolean isIndoor = false;
/**
* 所属模型,例如floor_1’,‘floor_2’,‘floor_3’
*/
private String belongObjModel;
public Boolean getIsIndoor()
{
return isIndoor;
}
public void setIsIndoor(Boolean isIndoor)
{
this.isIndoor = isIndoor;
}
public String getBelongObjModel()
{
return belongObjModel;
}
public void setBelongObjModel(String belongObjModel)
{
this.belongObjModel = belongObjModel;
}
}
\ No newline at end of file
package com.yeejoin.amos.safety.common.entity.dto;
import java.io.Serializable;
/**
*
* <pre>
* 三维坐标点实体
* </pre>
*
* @author amos
* @version $Id: NodeCoordDTO.java, v 0.1 2018年12月4日 下午4:24:10 amos Exp $
*/
public class NodeCoordDTO implements Serializable
{
/**
* <pre>
*
* </pre>
*/
private static final long serialVersionUID = 6262473276965840710L;
/**
* 节点位置,包括x,y,z值
*/
private CoordDTO positionDTO;
/**
* 节点位置,包括x,y,z值
*/
private CoordDTO rotationDTO;
/**
* 节点位置,包括x,y,z值
*/
private CoordDTO scaleDTO;
public CoordDTO getPositionDTO()
{
return positionDTO;
}
public void setPositionDTO(CoordDTO positionDTO)
{
this.positionDTO = positionDTO;
}
public CoordDTO getRotationDTO()
{
return rotationDTO;
}
public void setRotationDTO(CoordDTO rotationDTO)
{
this.rotationDTO = rotationDTO;
}
public CoordDTO getScaleDTO()
{
return scaleDTO;
}
public void setScaleDTO(CoordDTO scaleDTO)
{
this.scaleDTO = scaleDTO;
}
}
\ No newline at end of file
package com.yeejoin.amos.safety.common.entity.dto;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
*
* <pre>
* 巡检结果
* </pre>
*
* @author amos
* @version $Id: PatrolCheckDTO.java, v 0.1 2018年12月6日 下午5:03:15 amos Exp $
*/
public class PatrolCheckDTO implements Serializable
{
/**
* <pre>
*
* </pre>
*/
private static final long serialVersionUID = -1417736509422804362L;
// 记录编号
private int checkID;
// 巡检人编号
private int userID;
// 巡检点id
private int pointID;
// 巡检点编号
private String pointNo;
// 巡检点名称
private String pointName;
// 巡检时间
private Date checkTime;
// 地址
private String address;
// 巡检状态:合格、不合格、漏检
private String status;
// 巡检计划
private String planName;
// 巡检人
private String userName;
// 电话
private String telephone;
// 部门
private String department;
// 巡检聚合状态是否改变,如果不改变则只进行规则触发,数据库状态不进行修改
private Boolean isChangeStatus;
//巡检项
private List<PatrolCheckInputDTO> checkInput;
public int getCheckID()
{
return checkID;
}
public void setCheckID(int checkID)
{
this.checkID = checkID;
}
public int getUserID()
{
return userID;
}
public void setUserID(int userID)
{
this.userID = userID;
}
public int getPointID()
{
return pointID;
}
public void setPointID(int pointID)
{
this.pointID = pointID;
}
public String getPointNo()
{
return pointNo;
}
public void setPointNo(String pointNo)
{
this.pointNo = pointNo;
}
public Date getCheckTime()
{
return checkTime;
}
public void setCheckTime(Date checkTime)
{
this.checkTime = checkTime;
}
public String getAddress()
{
return address;
}
public void setAddress(String address)
{
this.address = address;
}
public String getStatus()
{
return status;
}
public void setStatus(String status)
{
this.status = status;
}
public String getPointName()
{
return pointName;
}
public void setPointName(String pointName)
{
this.pointName = pointName;
}
public String getPlanName()
{
return planName;
}
public void setPlanName(String planName)
{
this.planName = planName;
}
public String getUserName()
{
return userName;
}
public void setUserName(String userName)
{
this.userName = userName;
}
public String getTelephone()
{
return telephone;
}
public void setTelephone(String telephone)
{
this.telephone = telephone;
}
public String getDepartment()
{
return department;
}
public void setDepartment(String department)
{
this.department = department;
}
public List<PatrolCheckInputDTO> getCheckInput()
{
return checkInput;
}
public void setCheckInput(List<PatrolCheckInputDTO> checkInput)
{
this.checkInput = checkInput;
}
public Boolean getIsChangeStatus()
{
return isChangeStatus;
}
public void setIsChangeStatus(Boolean isChangeStatus)
{
this.isChangeStatus = isChangeStatus;
}
}
package com.yeejoin.amos.safety.common.entity.dto;
import java.io.Serializable;
import java.util.Date;
/**
*
* <pre>
* 巡检检查项
* </pre>
*
* @author amos
* @version $Id: PatrolCheckInputDTO.java, v 0.1 2019年4月14日 上午9:51:17 amos Exp $
*/
public class PatrolCheckInputDTO implements Serializable
{
/**
* <pre>
*
* </pre>
*/
private static final long serialVersionUID = 8891777788830223056L;
// 巡检项值
private String inputValue;
// 巡检项名称
private String inputItemName;
// 巡检项状态
private String isOK;
// 备注
private Date remark;
public String getInputValue()
{
return inputValue;
}
public void setInputValue(String inputValue)
{
this.inputValue = inputValue;
}
public String getInputItemName()
{
return inputItemName;
}
public void setInputItemName(String inputItemName)
{
this.inputItemName = inputItemName;
}
public String getIsOK()
{
return isOK;
}
public void setIsOK(String isOK)
{
this.isOK = isOK;
}
public Date getRemark()
{
return remark;
}
public void setRemark(Date remark)
{
this.remark = remark;
}
}
package com.yeejoin.amos.safety.common.entity.dto;
import java.io.Serializable;
import java.util.Date;
/**
*
* <pre>
* 巡检任务
* </pre>
*
* @author amos
* @version $Id: PatrolTaskDTO.java, v 0.1 2018年12月19日 下午3:36:14 amos Exp $
*/
public class PatrolTaskDTO implements Serializable
{
/**
* <pre>
*
* </pre>
*/
private static final long serialVersionUID = -7952625137782765238L;
// 任务编号
private int taskID;
// 巡检点id
private int pointID;
// 巡检点名称
private String pointName;
// 任务名称
private String taskName;
// 任务状态
private String status;
// 安排人
private String arranger;
// 执行人
private String executor;
// 要求完成时间
private Date planTime;
// 任务内容
private String content;
// 完成时间
private Date fishTime;
public int getTaskID()
{
return taskID;
}
public void setTaskID(int taskID)
{
this.taskID = taskID;
}
public String getTaskName()
{
return taskName;
}
public void setTaskName(String taskName)
{
this.taskName = taskName;
}
public String getStatus()
{
return status;
}
public void setStatus(String status)
{
this.status = status;
}
public String getArranger()
{
return arranger;
}
public void setArranger(String arranger)
{
this.arranger = arranger;
}
public String getExecutor()
{
return executor;
}
public void setExecutor(String executor)
{
this.executor = executor;
}
public Date getPlanTime()
{
return planTime;
}
public void setPlanTime(Date planTime)
{
this.planTime = planTime;
}
public String getContent()
{
return content;
}
public void setContent(String content)
{
this.content = content;
}
public int getPointID()
{
return pointID;
}
public void setPointID(int pointID)
{
this.pointID = pointID;
}
public String getPointName()
{
return pointName;
}
public void setPointName(String pointName)
{
this.pointName = pointName;
}
public Date getFishTime()
{
return fishTime;
}
public void setFishTime(Date fishTime)
{
this.fishTime = fishTime;
}
}
package com.yeejoin.amos.safety.common.enums;
/**
*
* <pre>
* 巡检状态枚举
* </pre>
*
* @author amos
* @version $Id: CheckStateEnum.java, v 0.1 2018年12月11日 下午6:27:15 amos Exp $
*/
public enum CheckStateEnum{
UNPLAN("未纳入巡检计划", 0, "", "unplanned"),
QUALIFIED("合格", 1, "", "pass"), //巡检点合格
UNQUALIFIED("不合格", 2, "#DF7400", "offGrade"), //巡检点不合格
MISSPATROL("漏检", 3, "#FF0000", "miss"); //巡检点漏检
// normal NORMAL("正常")
/**
* 名称
*/
private String name;
/**
* 值
*/
private int value;
/**
* 状态颜色
*/
private String color;
/**
* 三维点上显示图标名
*/
private String showInfo;
// 构造方法
private CheckStateEnum(String name, int value, String color, String showInfo) {
this.name = name;
this.value = value;
this.color = color;
this.showInfo = showInfo;
}
/**
*
* <pre>
* 获取索引名称
* </pre>
*
* @param value
* @return
*/
public static String getName(int value) {
for (CheckStateEnum c : CheckStateEnum.values()) {
if (c.getValue() == value) {
return c.name;
}
}
return null;
}
/**
*
* <pre>
* 获取索引
* </pre>
*
* @param value
* @return
*/
public static CheckStateEnum getEnum(int value) {
for (CheckStateEnum c : CheckStateEnum.values()) {
if (c.getValue() == value) {
return c;
}
}
return null;
}
/**
*
* <pre>
* 获取索引
* </pre>
*
* @param name
* @return
*/
public static CheckStateEnum getEnum(String name) {
for (CheckStateEnum c : CheckStateEnum.values()) {
if (c.getName().equals(name)) {
return c;
}
}
return null;
}
/**
* Getter method for property <tt>name</tt>.
*
* @return property value of name
*/
public String getName() {
return name;
}
/**
* Setter method for property <tt>name</tt>.
*
* @param name
* value to be assigned to property name
*/
public void setName(String name) {
this.name = name;
}
/**
* Getter method for property <tt>value</tt>.
*
* @return property value of value
*/
public int getValue() {
return value;
}
/**
* Setter method for property <tt>value</tt>.
*
* @param value
* value to be assigned to property value
*/
public void setValue(int value) {
this.value = value;
}
public String getColor()
{
return color;
}
public void setColor(String color)
{
this.color = color;
}
public String getShowInfo()
{
return showInfo;
}
public void setShowInfo(String showInfo)
{
this.showInfo = showInfo;
}
}
package com.yeejoin.amos.safety.common.enums;
/**
*
* <pre>
* 3D视图节点类型
* </pre>
*
* @author amos
* @version $Id: View3DNodeType.java, v 0.1 2018年12月3日 上午11:56:55 amos Exp $
*/
public enum View3DNodeType {
PATROL("patrol", 1), //巡检点
RISK("risk", 2), //风险点
DATA("data", 3), //数据点
VIDEO("video", 4), //视频点
CROOM("croom", 5), //控制室
PERSON("person", 6), //人员点
TRAJECTORY("trajectory", 7); //轨迹点
/**
* 名称
*/
private String name;
/**
* 值
*/
private int value;
// 构造方法
private View3DNodeType(String name, int value) {
this.name = name;
this.value = value;
}
/**
*
* <pre>
* 获取索引名称
* </pre>
*
* @param value
* @return
*/
public static String getName(int value) {
for (View3DNodeType c : View3DNodeType.values()) {
if (c.getValue() == value) {
return c.name;
}
}
return null;
}
/**
*
* <pre>
* 获取索引
* </pre>
*
* @param value
* @return
*/
public static View3DNodeType getEnum(int value) {
for (View3DNodeType c : View3DNodeType.values()) {
if (c.getValue() == value) {
return c;
}
}
return null;
}
/**
*
* <pre>
* 获取索引
* </pre>
*
* @param name
* @return
*/
public static View3DNodeType getEnum(String name) {
for (View3DNodeType c : View3DNodeType.values()) {
if (c.getName().equals(name)) {
return c;
}
}
return null;
}
/**
* Getter method for property <tt>name</tt>.
*
* @return property value of name
*/
public String getName() {
return name;
}
/**
* Setter method for property <tt>name</tt>.
*
* @param name
* value to be assigned to property name
*/
public void setName(String name) {
this.name = name;
}
/**
* Getter method for property <tt>value</tt>.
*
* @return property value of value
*/
public int getValue() {
return value;
}
/**
* Setter method for property <tt>value</tt>.
*
* @param value
* value to be assigned to property value
*/
public void setValue(int value) {
this.value = value;
}
}
package com.yeejoin.amos.safety.core.remote.service;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;
import com.yeejoin.amos.op.core.common.response.CommonResponse;
import com.yeejoin.amos.op.core.util.ApplicationConfig;
import com.yeejoin.amos.op.core.util.Constants;
/**
*
* <pre>
* 巡检系统远程调用
* </pre>
*
* @author amos
* @version $Id: RemotePatrolServer.java, v 0.1 2018年12月5日 下午4:38:27 amos Exp $
*/
@Service("remotePatrolServer")
public class RemotePatrolServer
{
@Autowired
private ApplicationConfig applicationConfig;
private final RestTemplate restTemplate;
public RemotePatrolServer()
{
this.restTemplate = new RestTemplate();
}
/**
*
* <pre>
* 初始化巡检系统巡检点状态、巡检人员数据
* </pre>
*
* @return
*/
public Object initViewNode()
{
String url = applicationConfig.getParamValueStr("params.remotePatrolUrl");
HttpHeaders headers = new HttpHeaders();
MediaType type = MediaType
.parseMediaType("application/json; charset=UTF-8");
headers.setContentType(type);
headers.add("Accept", MediaType.APPLICATION_JSON.toString());
headers.add("X-From-Service", "true");
HttpEntity<String> formEntity = new HttpEntity<String>(headers);
CommonResponse commonResponse = (CommonResponse)restTemplate.exchange(url + "api/check/viewModule/initData",
HttpMethod.GET, formEntity, CommonResponse.class).getBody();
if (commonResponse != null && commonResponse.getResult().equals(Constants.RESULT_SUCCESS) )
{
return commonResponse.getDataList();
}
return null;
}
/**
*
* <pre>
* 初始化巡检系统巡检点状态、巡检人员数据
* </pre>
*
* @return
*/
public Object getPatrolInfo(String patrolId, String token)
{
Map<String, Integer> map = new HashMap<String, Integer>();
map.put("pointID", Integer.valueOf(patrolId));
String url = applicationConfig.getParamValueStr("params.remotePatrolUrl");
HttpHeaders headers = new HttpHeaders();
MediaType type = MediaType
.parseMediaType("application/json; charset=UTF-8");
headers.setContentType(type);
headers.add("Accept", MediaType.APPLICATION_JSON.toString());
headers.add("X-Access-Token", token);
headers.add("X-From-Service", "true");
HttpEntity<Map<String, Integer>> formEntity = new HttpEntity<Map<String, Integer>>(map, headers);
CommonResponse commonResponse = (CommonResponse)restTemplate.exchange(url + "api/spc/check-detail",
HttpMethod.POST, formEntity, CommonResponse.class).getBody();
if (commonResponse != null && commonResponse.getResult().equals(Constants.RESULT_SUCCESS) )
{
return commonResponse.getDataList();
}
return null;
}
/**
*
* <pre>
* 根据线路Id查询巡检点信息
* </pre>
*
* @param routeId
* @return
*/
public Object getPointsByRouteId(List<String> routeIds, String token)
{
Map<String, List<String>> map = new HashMap<String, List<String>>();
map.put("routeIDs", routeIds);
String url = applicationConfig.getParamValueStr("params.remotePatrolUrl");
HttpHeaders headers = new HttpHeaders();
MediaType type = MediaType
.parseMediaType("application/json; charset=UTF-8");
headers.setContentType(type);
headers.add("Accept", MediaType.APPLICATION_JSON.toString());
headers.add("X-Access-Token", token);
headers.add("X-From-Service", "true");
HttpEntity<Map<String, List<String>>> formEntity = new HttpEntity<Map<String, List<String>>>(map, headers);
CommonResponse commonResponse = (CommonResponse)restTemplate.exchange(url + "api/route/points",
HttpMethod.POST, formEntity, CommonResponse.class).getBody();
if (commonResponse != null && commonResponse.getResult().equals(Constants.RESULT_SUCCESS) )
{
return commonResponse.getDataList();
}
return null;
}
}
\ No newline at end of file
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>YeeSafety3DStart</artifactId>
<name>YeeSafety3DStart</name>
<parent>
<groupId>com.yeejoin.amos</groupId>
<artifactId>YeeSafety3DRoot</artifactId>
<version>1.1.0</version>
</parent>
<dependencies>
<!-- 业务模块jar -->
<dependency>
<groupId>com.yeejoin.amos</groupId>
<artifactId>YeeSafety3DServer</artifactId>
<version>1.1.0</version>
</dependency>
</dependencies>
<!-- maven打包时将lib提取到jar同目录,将配置文件提取到jar目录/config/下 -->
<build>
<resources>
<!-- 先指定 src/main/resources下所有文件及文件夹为资源文件 -->
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*</include>
</includes>
<!-- 过滤不需要引用的文件 -->
<excludes>
<exclude>package.xml</exclude>
</excludes>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<!-- 添加index则不从mainfest中读取classpath,而是从Index.list中读取 -->
<!-- <index>true</index> -->
<manifest>
<mainClass>com.yeejoin.amos.AmosSafetyStart</mainClass>
<!-- to create a class path to your dependecies you have to fill true
in this field -->
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
<!--<classpathLayoutType>custom</classpathLayoutType> <customClasspathLayout>
lib/ artifact.groupId. {artifact.artifactId}.$${artifact.extension} </customClasspathLayout> -->
</manifest>
<manifestEntries>
<Class-Path>./</Class-Path>
</manifestEntries>
</archive>
<!-- <excludes> <exclude>config/**</exclude> </excludes> -->
<includes>
<include>**/**.class</include>
</includes>
</configuration>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<!-- not append assembly id in release file name -->
<appendAssemblyId>false</appendAssemblyId>
<descriptors>
<descriptor>src/main/resources/package.xml</descriptor>
</descriptors>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
\ No newline at end of file
package com.yeejoin.amos;
import java.io.IOException;
import java.net.URISyntaxException;
import org.apache.log4j.Logger;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.boot.web.servlet.ServletComponentScan;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.netflix.feign.EnableFeignClients;
import org.springframework.cloud.netflix.hystrix.EnableHystrix;
import org.springframework.core.env.Environment;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
/**
*
* <pre>
* 服务启动类
* </pre>
*
* @author amos
* @version $Id: AmosSafetyStart.java, v 0.1 2018年11月26日 下午4:56:29 amos Exp $
*/
@SpringBootApplication
@EnableTransactionManagement
@EnableConfigurationProperties
@EnableSwagger2
@ServletComponentScan
@EnableDiscoveryClient
@EnableFeignClients
@EnableHystrix
// @Configuration
// @EnableApolloConfig
@MapperScan(basePackages = { "com.yeejoin.amos.safety.business.dao.mapper" })
public class AmosSafetyStart
{
private static final Logger log = Logger.getLogger(AmosSafetyStart.class);
/**
* 启动amosop-server
*
* @param args
* @throws IOException
* @throws URISyntaxException
*/
public static void main(String[] args)
{
log.info("start Service..........");
try
{
SpringApplication application = new SpringApplication(
AmosSafetyStart.class);
Environment environment = application.run(args).getEnvironment();
log.info("SwaggerUI: http://localhost:"
+ environment.getProperty("server.port") + "/swagger-ui.html");
}
catch (Exception e)
{
System.out.println("error occur when run server! " + e);
}
}
}
\ No newline at end of file
package com.yeejoin.amos.filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.core.annotation.Order;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.stereotype.Component;
/**
* <pre>
* 跨域处理
* </pre>
*
* @author SmartRay
* @version CrossDomainFilter.java v0.1
* @time 2016-9-7 9:48:10
*/
@Component(value = "crossDomainFilter")
@EnableScheduling
@Order(0)
public class CrossDomainFilter implements Filter
{
public void destroy()
{
}
public void doFilter(ServletRequest req, ServletResponse res,
FilterChain chain) throws IOException, ServletException
{
HttpServletResponse response = (HttpServletResponse) res;
HttpServletRequest request = (HttpServletRequest) req;
// 允许所有域进行访问
response.setHeader("Access-Control-Allow-Origin", request.getHeader("Origin") == null ? "*" : request.getHeader("Origin"));
// 允许的方法
response.setHeader("Access-Control-Allow-Credentials", "true");
response.setHeader("Access-Control-Allow-Methods","GET,POST,DELETE,OPTIONS,PUT");
response.setHeader("Access-Control-Max-Age", "3600");
response.setHeader("Access-Control-Allow-Headers","Origin, X-Requested-With, X-Access-Token, X-Api-Key, Content-Type, Accept, Cache-Control, Cookie");
chain.doFilter(req, res);
}
public void init(FilterConfig arg0) throws ServletException
{
}
}
app.id=YeejoinAmosIot
\ No newline at end of file
dev.meta=http://172.16.11.35:10101
fat.meta=http://172.16.11.35:10103
pro.meta=http://172.16.11.35:10105
\ No newline at end of file
spring.application.name = AmosSafety3D
eureka.client.serviceUrl.defaultZone = http://172.16.3.3:10500/eureka/
eureka.client.register-with-eureka = true
eureka.client.fetch-registry = true
eureka.client.healthcheck.enabled = true
eureka.instance.hostname = ${spring.cloud.client.ipAddress}
eureka.instance.statusPageUrlPath = ${management.context-path}/info
eureka.instance.healthCheckUrlPath = ${management.context-path}/health
eureka.instance.preferIpAddress = true
eureka.instance.instance-id = ${spring.cloud.client.ipAddress}:${server.port}
eureka.instance.lease-expiration-duration-in-seconds = 10
eureka.instance.lease-renewal-interval-in-seconds = 5
server.port = 9000
#DB properties:
spring.datasource.url = jdbc:mysql://172.16.11.33:3306/fire_auto_system?useSSL=false&&allowMultiQueries=true
spring.datasource.username = root
spring.datasource.password = admin_1234
# HikariCP settings
# spring.datasource.hikari.*
# contection life time (ms)
spring.datasource.hikari.maxLifetime = 1765000
#((core_count*2)+effective_spindle_count
spring.datasource.hikari.maximum-pool-size = 10
# Keep the connection alive if idle for a long time (needed in production)
spring.datasource.testWhileIdle = true
spring.datasource.validationQuery = SELECT 1
#JPA Configuration:
# Show or not log for each sql query
spring.jpa.show-sql = true
# Hibernate ddl auto (create, create-drop, update): with "update" the database
# schema will be automatically updated accordingly to java entities found in
# the project
spring.jpa.hibernate.ddl-auto = none
# Naming strategy
#spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.ImprovedNamingStrategy
# Allows Hibernate to generate SQL optimized for a particular DBMS
spring.jpa.database-platform = org.hibernate.dialect.MySQLDialect
#mybatis mapper file
mybatis.mapper-locations = classpath:db/mapper/*.xml
# mybatis entity package
mybatis.type-aliases-package = com.yeejoin.amos.op.business.entity.mybatis
#liquibase
liquibase.change-log = classpath:/db/changelog/changelog-master.xml
params.remoteurl=http://127.0.0.1:8800/
params.time = 5
params.period = 1800
#Activiti
spring.activiti.check-process-definitions=false
spring.activiti.process-definition-location-suffixes=**.bpmn20.xml", **.bpmn,**.drl
spring.aop.auto=true
# xss security filter\uFF1ARequestBodyDecode\u3001RequestGetDecode\u3001XssSecurity\u3001SqlInputSecurity
params.xssSecurity = false
#
params.remotePatrolUrl=http://127.0.0.1:8081/
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<databaseChangeLog
xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.4.xsd">
<!-- 基结构及初始化数据-->
<include file="./init_structure.sql" relativeToChangelogFile="true"/>
<!-- 初始化数据 V1.0.0-->
<include file="initdata-1.0.0.xml" relativeToChangelogFile="true" />
<!-- 规则数据改变脚本-->
<include file="./rule_update.sql" relativeToChangelogFile="true"/>
<!-- V1.1.0-->
<include file="initdata-1.1.0.xml" relativeToChangelogFile="true" />
</databaseChangeLog>
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
<?xml version="1.0" encoding="UTF-8"?>
<databaseChangeLog
xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-2.0.xsd
http://www.liquibase.org/xml/ns/dbchangelog-ext
http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd">
<changeSet author="guowubin" id="1546826243025-1">
<preConditions onFail="MARK_RAN">
<not>
<columnExists tableName="toip_biz_node3dvo" columnName="config" />
</not>
</preConditions>
<comment>add column config</comment>
<sql>
ALTER TABLE `toip_biz_node3dvo` ADD COLUMN `config` varchar(255) DEFAULT NULL COMMENT '节点配置信息' AFTER `scale`;
</sql>
</changeSet>
<changeSet author="guowubin" id="1546826243025-2">
<preConditions onFail="MARK_RAN">
<columnExists tableName="toip_biz_link3dvo" columnName="path" />
</preConditions>
<comment>alter column path</comment>
<sql>
alter table `toip_biz_link3dvo` modify column `path` varchar(2000);
</sql>
</changeSet>
<changeSet author="guowubin" id="1548244858654-2">
<preConditions onFail="MARK_RAN">
<tableExists tableName="toip_sys_log" />
</preConditions>
<comment>delete data table toip_sys_log</comment>
<sql>
delete from toip_sys_log where context like '触发了%_%';
</sql>
</changeSet>
</databaseChangeLog>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<databaseChangeLog
xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-2.0.xsd
http://www.liquibase.org/xml/ns/dbchangelog-ext
http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd">
<changeSet author="guowubin" id="1555213056033-1">
<preConditions onFail="MARK_RAN">
<not>
<columnExists tableName="toip_biz_node3dvo" columnName="task_oid" />
</not>
</preConditions>
<comment>add column config</comment>
<sql>
ALTER TABLE `toip_biz_node3dvo` ADD COLUMN `task_oid` varchar(36) DEFAULT NULL COMMENT '节点任务id' AFTER `oid`;
</sql>
</changeSet>
<changeSet author="guowubin" id="1555213056033-2">
<preConditions onFail="MARK_RAN">
<columnExists tableName="toip_rm_action" columnName="text_hints_data" />
</preConditions>
<comment>update column text_hints_data</comment>
<sql>
UPDATE `toip_rm_action` SET `text_hints_data` = '[{\"name\":\"title\",\"displayname\":\"标题\",\"value\":\"巡检合格\",\"enable\":true},{\"name\":\"content\",\"displayname\":\"内容\",\"value\":\"{#bizobj.department}-{#bizobj.userName}:{#bizobj.pointName}({#bizobj.pointNo})巡检合格!\",\"enable\":true}]' WHERE `name` = '巡检合格';
UPDATE `toip_rm_action` SET `text_hints_data` = '[{\"name\":\"title\",\"displayname\":\"标题\",\"value\":\"巡检不合格\",\"enable\":true},{\"name\":\"content\",\"displayname\":\"内容\",\"value\":\"{#bizobj.department}-{#bizobj.userName}:{#bizobj.pointName}({#bizobj.pointNo})巡检不合格!\",\"enable\":true}]' WHERE `name` = '巡检不合格';
UPDATE `toip_rm_action` SET `text_hints_data` = '[{\"name\":\"title\",\"displayname\":\"标题\",\"value\":\"巡检点漏检\",\"enable\":true},{\"name\":\"content\",\"displayname\":\"内容\",\"value\":\"{#bizobj.department}-{#bizobj.userName}:{#bizobj.pointName}({#bizobj.pointNo})漏检!\",\"enable\":true}]' WHERE `name` = '漏检';
</sql>
</changeSet>
<changeSet author="maoying" id="1557133365000-1">
<preConditions onFail="MARK_RAN">
<not>
<columnExists tableName="toip_biz_node3dvo" columnName="data_level" />
</not>
</preConditions>
<comment>add column data_level</comment>
<sql>
ALTER TABLE `toip_biz_node3dvo` ADD COLUMN `data_level` varchar(32) DEFAULT NULL COMMENT '级别';
</sql>
</changeSet>
<changeSet author="maoying" id="1557133365000-2">
<preConditions onFail="MARK_RAN">
<not>
<columnExists tableName="toip_biz_node3dvo" columnName="data_code" />
</not>
</preConditions>
<comment>add column data_code</comment>
<sql>
ALTER TABLE `toip_biz_node3dvo` ADD COLUMN `data_code` varchar(32) DEFAULT NULL COMMENT '编号';
</sql>
</changeSet>
<changeSet author="maoying" id="1557133365000-3">
<preConditions onFail="MARK_RAN">
<not>
<columnExists tableName="toip_biz_node3dvo" columnName="protect_obj_name" />
</not>
</preConditions>
<comment>add column protect_obj_name</comment>
<sql>
ALTER TABLE `toip_biz_node3dvo` ADD COLUMN `protect_obj_name` varchar(512) DEFAULT NULL COMMENT '保护对象名称';
</sql>
</changeSet>
<changeSet author="maoying" id="1557133365000-4">
<preConditions onFail="MARK_RAN">
<not>
<columnExists tableName="toip_biz_node3dvo" columnName="route_name" />
</not>
</preConditions>
<comment>add column route_name</comment>
<sql>
ALTER TABLE `toip_biz_node3dvo` ADD COLUMN `route_name` varchar(512) DEFAULT NULL COMMENT '线路的名称';
</sql>
</changeSet>
</databaseChangeLog>
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yeejoin.amos.safety.business.dao.mapper.View3DMapper">
<select id="query3dDataPageCount" resultType="long">
SELECT
count(1)
FROM
toip_biz_node3dvo bn
WHERE
1 = 1
<if test="inputText!=null" >
AND (
bn.display_name LIKE '%${inputText}%'
OR bn.data_code LIKE '%${inputText}%'
)
</if>
<if test="protectObjName!=null">
AND bn.protect_obj_name LIKE '%${protectObjName}%'
</if>
<if test="routeName!=null">
AND bn.route_name LIKE '%${routeName}%'
</if>
<if test="dataLevel!=null" >
AND bn.data_level = '${dataLevel}'
</if>
<if test="orgCode!=null" >
AND bn.org_code LIKE '%${orgCode}%'
</if>
<if test="nodeState!=null" >
AND bn.node_state = ${nodeState}
</if>
<if test="type!=null" >
AND bn.type = '${type}'
</if>
</select>
<select id="query3dDataPage" resultType="java.util.Map">
SELECT
IFNULL(`id`,'')id,
IFNULL(`display_name`,'')display_name,
IFNULL(`type`,'')type,
case
when `type` = 'riskSource' then
'风险点'
when `type` = 'risk' then
'巡检点'
when `type` = 'impEquipment' then
'重点设备'
when `type` = 'monitorEquipment' then
'探测器'
when `type` = 'hydrant' then
'消防栓'
when `type` = 'pool' then
'消防池'
when `type` = 'fireCar' then
'消防车'
when `type` = 'fureEquipment' then
'灭火器材'
when `type` = 'fireChamber' then
'消防小室'
when `type` = 'fireFoamRoom' then
'消防泡沫间'
when `type` = 'video' then
'监控设备'
else
'其他'
end typeName,
IFNULL(`node_state`,'')node_state,
IFNULL(`oid`,'')oid,
IFNULL(`task_oid`,'')task_oid,
IFNULL(`org_code`,'')org_code,
IFNULL(`remark`,'')remark,
IFNULL(`display_icon`,'')display_icon,
IFNULL(`position`,'')position,
IFNULL(`rotation`,'')rotation,
IFNULL(`scale`,'')scale,
IFNULL(`config`,'')config,
IFNULL(`create_date`,'')create_date,
IFNULL(`update_date`,'')update_date,
IFNULL(`create_user`,'')create_user,
IFNULL(`update_user`,'')update_user,
IFNULL(`is_delete`,'')is_delete,
IFNULL(`data_level`,'')data_level,
IFNULL(`data_code`,'')data_code,
IFNULL(`protect_obj_name`,'')protect_obj_name,
IFNULL(`route_name`,'') route_name
FROM
toip_biz_node3dvo bn
WHERE
1 = 1
<if test="inputText!=null" >
AND (
bn.display_name LIKE '%${inputText}%'
OR bn.data_code LIKE '%${inputText}%'
)
</if>
<if test="protectObjName!=null">
AND bn.protect_obj_name LIKE '%${protectObjName}%'
</if>
<if test="routeName!=null">
AND bn.route_name LIKE '%${routeName}%'
</if>
<if test="dataLevel!=null" >
AND bn.data_level = '${dataLevel}'
</if>
<if test="orgCode!=null" >
AND bn.org_code LIKE '%${orgCode}%'
</if>
<!-- <if test="nodeState!=null" >
AND bn.node_state = ${nodeState}
</if> -->
<choose>
<when test="nodeState== 0" >
AND bn.node_state = "未纳入巡检计划"
</when>
<when test="nodeState== 1" >
AND bn.node_state = "合格"
</when>
<when test="nodeState== 2" >
AND bn.node_state = "不合格"
</when>
<when test="nodeState== 3" >
AND bn.node_state = "漏检"
</when>
</choose>
<if test="type!=null" >
AND bn.type in
<foreach collection="type.split(',')" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
LIMIT ${start},${length}
</select>
</mapper>
\ No newline at end of file
log4j.rootLogger=DEBUG, stdout, logfile
log4j.logger.io.netty=info
log4j.logger.org.hibernate=info
log4j.logger.com.mchange=info
log4j.logger.org.springframework=info
log4j.logger.com.mangofactory=info
log4j.logger.org.apache=info
log4j.logger.com.zaxxer.hikari.pool=info
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %t %-5p [%c{1}:%L] %m%n
log4j.appender.logfile=org.apache.log4j.RollingFileAppender
log4j.appender.logfile.File=logs/YeeSafety3DServer.log
log4j.appender.logfile.MaxFileSize=10240KB
log4j.appender.logfile.MaxBackupIndex=30
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d %t %-5p [%c{1}:%L] %m%n
<?xml version="1.0" encoding="UTF-8"?>
<assembly
xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3 http://maven.apache.org/xsd/assembly-1.1.3.xsd">
<id>package</id>
<formats>
<format>zip</format>
</formats>
<includeBaseDirectory>true</includeBaseDirectory>
<fileSets>
<fileSet>
<directory>bin</directory>
<outputDirectory>/</outputDirectory>
</fileSet>
<fileSet>
<directory>src/main/resources/db</directory>
<outputDirectory>/db</outputDirectory>
</fileSet>
<fileSet>
<directory>src/main/resources</directory>
<includes>
<include>application.properties</include>
<include>apollo-env.properties</include>
<include>log4j.properties</include>
<include>META-INF/app.properties</include>
</includes>
<outputDirectory>/</outputDirectory>
</fileSet>
<fileSet>
<directory>${project.build.directory}</directory>
<outputDirectory>/</outputDirectory>
<includes>
<include>*.jar</include>
</includes>
</fileSet>
</fileSets>
<dependencySets>
<dependencySet>
<outputDirectory>lib</outputDirectory>
<scope>runtime</scope>
<!-- <unpack>false</unpack> -->
<excludes>
<!-- <exclude>${project.name}-${project.version}</exclude> -->
<exclude>${groupId}:${artifactId}</exclude>
</excludes>
</dependencySet>
</dependencySets>
</assembly>
\ No newline at end of file
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.yeejoin.amos</groupId>
<artifactId>YeeSafety3DRoot</artifactId>
<version>1.1.0</version>
<packaging>pom</packaging>
<name>YeeSafety3DRoot</name>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.2.RELEASE</version>
</parent>
<modules>
<module>YeeSafety3DStart</module>
<module>YeeSafety3DServer</module>
</modules>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<liquibase.version>3.5.3</liquibase.version>
<swagger.version>2.7.0</swagger.version>
<spring-cloud.version>Dalston.SR5</spring-cloud.version>
<YeeSecurity.version>2.0.3</YeeSecurity.version>
<YeeOp.version>2.0.2</YeeOp.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-feign</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-hystrix</artifactId>
</dependency>
<!-- Swagger2模块 -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>${swagger.version}</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>${swagger.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
<exclusions>
<exclusion>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-jdbc</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j</artifactId>
<version>1.3.8.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<!-- 添加fastjson 依赖包. -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.15</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.0</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.6</version>
</dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>3.7.5</version>
</dependency>
<dependency>
<groupId>com.github.jsqlparser</groupId>
<artifactId>jsqlparser</artifactId>
<version>0.9.1</version>
</dependency>
<!-- 通用Mapper -->
<dependency>
<groupId>com.github.abel533</groupId>
<artifactId>mapper</artifactId>
<version>3.0.1</version>
</dependency>
<!-- 添加commons-lang依赖包 -->
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.4</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.3.1</version>
</dependency>
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
</dependency>
<dependency>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-core</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>com.ctrip.framework.apollo</groupId>
<artifactId>apollo-client</artifactId>
<version>0.10.2</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-1.2-api</artifactId>
<version>2.8.2</version>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<distributionManagement>
<repository>
<id>analyse-operate-release</id>
<name>analyse-operate Porject Release</name>
<url>http://172.16.1.6:8081/nexus/content/repositories/releases/</url>
</repository>
</distributionManagement>
<repositories>
<repository>
<id>spring-snapshots</id>
<url>http://172.16.1.6:8081/nexus/content/repositories/spring.io/</url>
</repository>
<repository>
<id>nexus</id>
<name>Team Nexus Repository</name>
<url>http://172.16.1.6:8081/nexus/content/groups/public</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>spring-snapshots</id>
<url>http://172.16.1.6:8081/nexus/content/repositories/spring.io/</url>
</pluginRepository>
<pluginRepository>
<id>nexus</id>
<name>Team Nexus Repository</name>
<url>http://172.16.1.6:8081/nexus/content/groups/public</url>
</pluginRepository>
</pluginRepositories>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<!-- 打包时跳过单元测试 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skipTests>true</skipTests><!-- true跳过 false不跳过 -->
</configuration>
</plugin>
</plugins>
</build>
</project>
\ No newline at end of file
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