From cd2cfd37366002f790a2ed1435962d4eff7d5cec Mon Sep 17 00:00:00 2001
From: zengh <123456>
Date: Tue, 01 Jun 2021 09:39:30 +0800
Subject: [PATCH] 版本合并

---
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/riskreporting/controller/RiskReportingController.java    |   45 ++++
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/riskreporting/service/RiskReportingService.java          |   14 +
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/riskreporting/service/impl/RiskReportingServiceImpl.java |   20 ++
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/equipment/mapper/EquipmentMapper.xml                     |   47 ++++
 blade-service/blade-system/src/main/java/org/springblade/system/service/impl/TenantServiceImpl.java                   |   89 ++++++++
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/riskreporting/entity/RiskReporting.java                  |   97 +++++++++
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/visitrecord/entity/Visitrecord.java                      |    5 
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/riskreporting/mapper/RiskReportingMapper.java            |   14 +
 blade-service/blade-system/src/main/java/org/springblade/system/service/ITenantService.java                           |    7 
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/equipment/controller/EquipmentController.java            |   28 ++
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/equipment/entity/EquipmentPlayInfo.java                  |   57 +++++
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/equipment/service/IEquipmentService.java                 |   15 +
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/equipment/service/impl/EquipmentServiceImpl.java         |   76 ++++---
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/equipment/feign/OneNetStudioApi.java                     |   25 ++
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/riskreporting/mapper/RiskReportingMapper.xml             |   15 +
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/equipment/mapper/EquipmentMapper.java                    |   27 ++
 16 files changed, 544 insertions(+), 37 deletions(-)

diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/equipment/controller/EquipmentController.java b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/equipment/controller/EquipmentController.java
index abcc748..25b0bf9 100644
--- a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/equipment/controller/EquipmentController.java
+++ b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/equipment/controller/EquipmentController.java
@@ -32,6 +32,7 @@
 import org.springblade.jfpt.catalog.service.catalogService;
 import org.springblade.jfpt.deploy.service.IDeployService;
 import org.springblade.jfpt.equipment.entity.Equipment;
+import org.springblade.jfpt.equipment.entity.EquipmentPlayInfo;
 import org.springblade.jfpt.equipment.feign.DeptFeignApi;
 import org.springblade.jfpt.equipment.feign.RegionFeignApi;
 import org.springblade.jfpt.equipment.service.IEquipmentService;
@@ -569,4 +570,31 @@
 		return R.data(equipmentService.selEqTypeSum());
 	}
 
+	/**
+	 * 获取设备视频播放的信息
+	 * @param equipmentPlayInfo 视频播放地址对象,只需包含设备编号,以及视频播放格式即可
+	 * @param response 响应域,设置跨域
+	 * @return
+	 */
+	@GetMapping("/selectEquimentPlayInfo")
+	public R selectEquimentPlayInfo(EquipmentPlayInfo equipmentPlayInfo,HttpServletResponse response){
+		response.setHeader("Access-Control-Allow-Origin", "*");
+		response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
+		response.setHeader("Access-Control-Allow-Credentials", "true");
+		//返回
+		return R.data(equipmentService.selectEquimentPlayInfo(equipmentPlayInfo));
+	}
+
+
+
+	/**
+	 * 新增或修改设备视频播放的信息
+	 * @param equipmentPlayInfo 视频播放地址对象
+	 * @return
+	 */
+	@PostMapping("/submitEquimentPlayInfo")
+	public R submitEquimentPlayInfo(EquipmentPlayInfo equipmentPlayInfo){
+		return R.status(equipmentService.saveOrUpdateEquipmentPlayInfo(equipmentPlayInfo));
+	}
+
 }
diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/equipment/entity/EquipmentPlayInfo.java b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/equipment/entity/EquipmentPlayInfo.java
new file mode 100644
index 0000000..407fb25
--- /dev/null
+++ b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/equipment/entity/EquipmentPlayInfo.java
@@ -0,0 +1,57 @@
+package org.springblade.jfpt.equipment.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 设备播放地址管理实体
+ * @author zhongrj
+ * @time 2021-05-21
+ */
+@Data
+@TableName("equipment_play_info")
+public class EquipmentPlayInfo implements Serializable {
+	/**
+	 * 主键id
+	 */
+	@TableId(value = "id",type = IdType.AUTO)
+	private Integer id;
+
+	/**
+	 * 设备编号
+	 */
+	private String number;
+
+	/**
+	 * 设备序列号
+	 */
+	@TableField("serial_number")
+	private String serialNumber;
+
+	/**
+	 * 设备厂商名称
+	 */
+	private String manufacturer;
+
+	/**
+	 * 视频播放格式
+	 */
+	private String bmp;
+
+	/**
+	 * 视频播放地址
+	 */
+	private String address;
+
+	/**
+	 * 创建时间
+	 */
+	@TableField("create_time")
+	private Date createTime;
+}
diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/equipment/feign/OneNetStudioApi.java b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/equipment/feign/OneNetStudioApi.java
new file mode 100644
index 0000000..0318375
--- /dev/null
+++ b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/equipment/feign/OneNetStudioApi.java
@@ -0,0 +1,25 @@
+package org.springblade.jfpt.equipment.feign;
+
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import java.util.List;
+
+@FeignClient("blade-onenetstudio")
+public interface OneNetStudioApi {
+	/**
+	 * 去上线
+	 * @param equipmentListz 设备 id 集合
+	 */
+	@PostMapping("/onenet/equipmentUp")
+    void equipmentUp(@RequestBody List<Long> equipmentListz);
+
+	/**
+	 * 去下线
+	 * @param equipmentListl 设备 id 集合
+	 */
+	@PostMapping("/onenet/equipmentDown")
+	void equipmentDown(@RequestBody List<Long> equipmentListl);
+}
diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/equipment/mapper/EquipmentMapper.java b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/equipment/mapper/EquipmentMapper.java
index e438149..35d3fe0 100644
--- a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/equipment/mapper/EquipmentMapper.java
+++ b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/equipment/mapper/EquipmentMapper.java
@@ -21,6 +21,7 @@
 import org.apache.ibatis.annotations.Param;
 import org.springblade.jfpt.alarm.vo.AlarmVO;
 import org.springblade.jfpt.equipment.entity.Equipment;
+import org.springblade.jfpt.equipment.entity.EquipmentPlayInfo;
 import org.springblade.jfpt.equipment.vo.EquipmentVO;
 import org.springblade.jfpt.equipment.vo.EquipmentVOS;
 
@@ -110,4 +111,30 @@
 	 */
 	void updateEqListl(@Param("equipmentListl") List<Long> equipmentListl);
 
+	/**
+	 * 查询在线设备数量
+	 * @return
+	 */
+	Integer selectOnlineEqNum();
+
+	/**
+	 * 获取设备视频播放的信息
+	 * @param equipmentPlayInfo 视频播放地址对象,只需包含设备编号,以及视频播放格式即可
+	 * @return
+	 */
+	EquipmentPlayInfo selectEquimentPlayInfo(EquipmentPlayInfo equipmentPlayInfo);
+
+	/**
+	 * 新增设备视频播放的信息
+	 * @param equipmentPlayInfo 视频播放地址对象
+	 * @return
+	 */
+	int saveEquipmentPlayInfo(EquipmentPlayInfo equipmentPlayInfo);
+
+	/**
+	 * 修改设备视频播放的信息
+	 * @param equipmentPlayInfo 视频播放地址对象
+	 * @return
+	 */
+	int updateEquipmentPlayInfo(EquipmentPlayInfo equipmentPlayInfo);
 }
diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/equipment/mapper/EquipmentMapper.xml b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/equipment/mapper/EquipmentMapper.xml
index b798a74..dcc2a4e 100644
--- a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/equipment/mapper/EquipmentMapper.xml
+++ b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/equipment/mapper/EquipmentMapper.xml
@@ -202,7 +202,10 @@
             and heartbeat >= DATE_SUB(NOW(),INTERVAL 1 DAY) and dtype=2
         </if>
         <if test="dxtype!=null and dxtype == 3">
-            and heartbeat >= DATE_SUB(NOW(),INTERVAL 1 DAY)  and dtype=3
+            and dtype=3
+        </if>
+        <if test="dxtype!=null and dxtype == 4">
+            and dtype!=0
         </if>
         <if test="pid!=null and pid!=''">
             and deptId like concat('%',#{pid},'%')
@@ -412,9 +415,9 @@
    dept.id,
    dept.deviceName,
    dept.deviceNumber,
-   dept.deviceType,
-   dept.serialNumber,
+    dept.serialNumber,
    dept.channelNumber,
+   dept.deviceType,
    dept.ownership,
    dept.ownerId,
    dept.devicestate,
@@ -482,7 +485,7 @@
 
     <!--查询设故障数量-->
     <select id="selectEqCg" resultType="Integer">
-        select COUNT(*) from sys_equipment where heartbeat >= DATE_SUB(NOW(),INTERVAL 1 DAY) and dtype=3
+        select COUNT(*) from sys_equipment where dtype=3
     </select>
 
     <!--查询所有的设备,不包含故障和警情状态-->
@@ -510,4 +513,40 @@
         </foreach>
     </update>
 
+    <!--查询在线设备数量-->
+    <select id="selectOnlineEqNum" resultType="java.lang.Integer">
+        select COUNT(*) from sys_equipment where dtype=1 or dtype=2 or dtype=3
+    </select>
+
+    <!--获取设备视频播放的信息-->
+    <select id="selectEquimentPlayInfo" resultType="org.springblade.jfpt.equipment.entity.EquipmentPlayInfo">
+        select * from equipment_play_info
+            where
+        bmp=#{bmp}
+            and
+        number=#{number}
+            and
+        manufacturer =#{manufacturer}
+    </select>
+
+<!--    select id,number,serial_number serialNumber,bmp,address from equipment_play_info-->
+
+    <!--新增设备视频播放的信息-->
+    <insert id="saveEquipmentPlayInfo">
+        INSERT INTO equipment_play_info
+        (number, serial_number, manufacturer, bmp, address, create_time)
+            VALUES
+        (#{number}, #{serialNumber}, #{manufacturer}, #{bmp}, #{address}, #{createTime});
+    </insert>
+
+    <!--修改设备视频播放的信息-->
+    <update id="updateEquipmentPlayInfo">
+        update equipment_play_info
+            set
+        bmp=#{bmp},address=#{address}
+
+            where
+        id=#{id}
+    </update>
+
 </mapper>
diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/equipment/service/IEquipmentService.java b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/equipment/service/IEquipmentService.java
index 4d465d5..f5978f2 100644
--- a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/equipment/service/IEquipmentService.java
+++ b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/equipment/service/IEquipmentService.java
@@ -20,6 +20,7 @@
 import com.baomidou.mybatisplus.extension.service.IService;
 import org.springblade.jfpt.alarm.vo.AlarmVO;
 import org.springblade.jfpt.equipment.entity.Equipment;
+import org.springblade.jfpt.equipment.entity.EquipmentPlayInfo;
 import org.springblade.jfpt.equipment.vo.EquipmentVO;
 import org.springblade.jfpt.equipment.vo.EquipmentVOS;
 import org.springblade.jfpt.parcel.vo.ConditionVo;
@@ -105,4 +106,18 @@
 	 * 更新设备状态
 	 */
 	void updateEquipmentDtype();
+
+	/**
+	 * 获取设备视频播放的信息
+	 * @param equipmentPlayInfo 视频播放地址对象,只需包含设备编号,以及视频播放格式即可
+	 * @return
+	 */
+    EquipmentPlayInfo selectEquimentPlayInfo(EquipmentPlayInfo equipmentPlayInfo);
+
+	/**
+	 * 新增或修改设备视频播放的信息
+	 * @param equipmentPlayInfo 视频播放地址对象
+	 * @return
+	 */
+	boolean saveOrUpdateEquipmentPlayInfo(EquipmentPlayInfo equipmentPlayInfo);
 }
diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/equipment/service/impl/EquipmentServiceImpl.java b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/equipment/service/impl/EquipmentServiceImpl.java
index e89a178..afa4666 100644
--- a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/equipment/service/impl/EquipmentServiceImpl.java
+++ b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/equipment/service/impl/EquipmentServiceImpl.java
@@ -16,25 +16,24 @@
  */
 package org.springblade.jfpt.equipment.service.impl;
 
-import com.baomidou.dynamic.datasource.annotation.DS;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springblade.core.tool.node.ForestNodeMerger;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.jfpt.alarm.service.IAlarmService;
-import org.springblade.jfpt.alarm.vo.AlarmVO;
 import org.springblade.jfpt.equipment.entity.Equipment;
+import org.springblade.jfpt.equipment.entity.EquipmentPlayInfo;
+import org.springblade.jfpt.equipment.feign.OneNetStudioApi;
 import org.springblade.jfpt.equipment.mapper.EquipmentMapper;
 import org.springblade.jfpt.equipment.service.IEquipmentService;
 import org.springblade.jfpt.equipment.vo.EquipmentVO;
 import org.springblade.jfpt.equipment.vo.EquipmentVOS;
 import org.springblade.jfpt.parcel.vo.ConditionVo;
-import org.springblade.system.cache.SysCache;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import javax.annotation.Resource;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.*;
@@ -51,6 +50,9 @@
 
 	//时间差
 	private long TIME_DIFFERENCE = 150*1000;
+
+	@Resource
+	private OneNetStudioApi oneNetStudioApi;
 
 	@Autowired
 	private IAlarmService iAlarmService;
@@ -158,30 +160,8 @@
 	public Integer selectEquipmentCount(ConditionVo conditionVo) {
 		//更新设备状态
 		updateEquipmentDtype();
-		//先查询所有的设备
-		Integer equipmentCount = baseMapper.selectEqCz();
-		System.out.println("equipmentCount = " + equipmentCount);
-//		long time = new Date().getTime();
-//		long hearbeat = 0;
-//		//遍历集合数据,对比心跳时间,得出在线的设备数量
-//		int status =0;
-//		if (status==0 && equipmentVOS.size()>0){
-//			for (EquipmentVO e:equipmentVOS) {
-//				try {
-//					if(null!=e.getHeartbeat()) {
-//						hearbeat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(e.getHeartbeat()).getTime();
-//					}
-//				} catch (ParseException parseException) {
-//					parseException.printStackTrace();
-//				}
-//				//对比心跳时间
-//				if (null!=e.getDtype()) {
-//					if (time - hearbeat < TIME_DIFFERENCE && e.getDtype()!="2" && e.getDtype()!="3") {
-//						equipmentCount += 1;
-//					}
-//				}
-//			}
-//		}
+		//查询在线设备数量
+		Integer equipmentCount = baseMapper.selectOnlineEqNum();
 		//返回数据
 		return equipmentCount;
 	}
@@ -271,7 +251,7 @@
 	public void updateEquipmentDtype() {
 		//查询所有的设备,不包含故障和警情状态
 		List<Equipment> equipment = baseMapper.selAllEq();
-		long time = new Date().getTime();
+		long time = System.currentTimeMillis();
 		long hearbeat = 0;
 		List<Long> equipmentListz = new ArrayList<>();
 		List<Long> equipmentListl = new ArrayList<>();
@@ -284,14 +264,16 @@
 				parseException.printStackTrace();
 			}
 			//对比心跳时间,在线
-			if (time-hearbeat<TIME_DIFFERENCE){
-				if (null==e.getDtype() || e.getDtype()!="1"){
+			if (time-hearbeat< TIME_DIFFERENCE){
+				if (null==e.getDtype() || !e.getDtype().equals("1")){
+					//需要修改为上线
 					equipmentListz.add(e.getId());
 				}
 			}
 			//不在线
 			if (time-hearbeat>=TIME_DIFFERENCE){
-				if (null==e.getDtype() || e.getDtype()!="0"){
+				if (null==e.getDtype() || !e.getDtype().equals("0")){
+					//需要修改为下线
 					equipmentListl.add(e.getId());
 				}
 			}
@@ -299,9 +281,39 @@
 		//批量更新数据
 		if (equipmentListz.size()>0){
 			baseMapper.updateEqListz(equipmentListz);
+			// 在 onenet 平台上线
+			oneNetStudioApi.equipmentUp(equipmentListz);
 		}
 		if (equipmentListl.size()>0){
 			baseMapper.updateEqListl(equipmentListl);
+			//去 onenet 平台下线
+			oneNetStudioApi.equipmentDown(equipmentListl);
 		}
 	}
+
+	/**
+	 * 获取设备视频播放的信息
+	 * @param equipmentPlayInfo 视频播放地址对象,只需包含设备编号,以及视频播放格式即可
+	 * @return
+	 */
+	@Override
+	public EquipmentPlayInfo selectEquimentPlayInfo(EquipmentPlayInfo equipmentPlayInfo) {
+		return baseMapper.selectEquimentPlayInfo(equipmentPlayInfo);
+	}
+
+	/**
+	 * 新增或修改设备视频播放的信息
+	 * @param equipmentPlayInfo 视频播放地址对象
+	 * @return
+	 */
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public boolean saveOrUpdateEquipmentPlayInfo(EquipmentPlayInfo equipmentPlayInfo) {
+		equipmentPlayInfo.setCreateTime(new Date());
+		//新增或修改
+		int result = null==equipmentPlayInfo.getId()? baseMapper.saveEquipmentPlayInfo(equipmentPlayInfo)
+																	  :baseMapper.updateEquipmentPlayInfo(equipmentPlayInfo);
+		//返回
+		return result>0? true:false;
+	}
 }
diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/riskreporting/controller/RiskReportingController.java b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/riskreporting/controller/RiskReportingController.java
new file mode 100644
index 0000000..4d68ba1
--- /dev/null
+++ b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/riskreporting/controller/RiskReportingController.java
@@ -0,0 +1,45 @@
+package org.springblade.jfpt.riskreporting.controller;
+
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.tool.api.R;
+import org.springblade.jfpt.riskreporting.entity.RiskReporting;
+import org.springblade.jfpt.riskreporting.service.RiskReportingService;
+import org.springblade.jfpt.visitrecord.entity.Visitrecord;
+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 javax.validation.Valid;
+import java.util.Date;
+
+/**
+ * 风险记录控制层
+ * @author zhongrj
+ * @time 2021-05-26
+ */
+
+@RestController
+@AllArgsConstructor
+@RequestMapping("/riskReporting")
+public class RiskReportingController extends BladeController {
+
+	private final RiskReportingService riskReportingService;
+
+	/**
+	 * 新增风险记录信息
+	 * @param riskReporting  风险记录对象
+	 */
+	@PostMapping("/save")
+	@ApiOperationSupport(order = 4)
+	@ApiOperation(value = "新增", notes = "传入riskReporting")
+	public R save(@Valid @RequestBody RiskReporting riskReporting) {
+		//设置信息
+		riskReporting.setCreateTime(new Date());
+		//请求新增并返回
+		return R.status(riskReportingService.insert(riskReporting));
+	}
+}
diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/riskreporting/entity/RiskReporting.java b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/riskreporting/entity/RiskReporting.java
new file mode 100644
index 0000000..b952bf4
--- /dev/null
+++ b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/riskreporting/entity/RiskReporting.java
@@ -0,0 +1,97 @@
+package org.springblade.jfpt.riskreporting.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 风险记录实体类
+ */
+@Data
+@TableName("tb_risk_reporting")
+public class RiskReporting implements Serializable {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 主键id
+	 */
+	@TableId(value = "id",type = IdType.AUTO)
+	private Long id;
+
+	/**
+	 * 租户主键id
+	 */
+	@TableField(value = "tenant_id")
+	private String tenantId;
+
+	/**
+	 * 客户名称
+	 */
+	@TableField(value = "tenant_name")
+	private String tenantName;
+
+	/**
+	 * 客户地址
+	 */
+	private String address;
+
+	/**
+	 * 联系人
+	 */
+	private String linkman;
+
+	/**
+	 * 联系电话
+	 */
+	@TableField(value = "contact_number")
+	private String contactNumber;
+
+	/**
+	 * 上报人编号
+	 */
+	@TableField(value = "risk_number")
+	private String riskNumber;
+
+	/**
+	 * 上报人名称
+	 */
+	@TableField(value = "risk_person")
+	private String riskPerson;
+
+	/**
+	 * 风险等级
+	 */
+	@TableField(value = "risk_class")
+	private String riskClass;
+
+	/**
+	 * 风险描述
+	 */
+	@TableField(value = "risk_describe")
+	private String riskDescribe;
+
+	/**
+	 * 上报时间
+	 */
+	@TableField(value = "risk_time")
+	@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
+	private Date riskTime;
+
+	/**
+	 * 创建时间
+	 */
+	@TableField(value = "create_time")
+	private Date createTime;
+
+	/**
+	 * 备注信息
+	 */
+	@TableField(value = "desc_info")
+	private String descInfo;
+}
diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/riskreporting/mapper/RiskReportingMapper.java b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/riskreporting/mapper/RiskReportingMapper.java
new file mode 100644
index 0000000..4eb3f0d
--- /dev/null
+++ b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/riskreporting/mapper/RiskReportingMapper.java
@@ -0,0 +1,14 @@
+package org.springblade.jfpt.riskreporting.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.springblade.jfpt.riskreporting.entity.RiskReporting;
+
+public interface RiskReportingMapper extends BaseMapper<RiskReporting> {
+
+	/**
+	 * 新增
+	 * @param riskReporting
+	 * @return
+	 */
+    int insertRis(RiskReporting riskReporting);
+}
diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/riskreporting/mapper/RiskReportingMapper.xml b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/riskreporting/mapper/RiskReportingMapper.xml
new file mode 100644
index 0000000..e344194
--- /dev/null
+++ b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/riskreporting/mapper/RiskReportingMapper.xml
@@ -0,0 +1,15 @@
+<?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="org.springblade.jfpt.riskreporting.mapper.RiskReportingMapper">
+    <!--查询是否存在安保人员位置-->
+    <insert id="insertRis">
+        insert into jfpth0.tb_risk_reporting
+        (tenant_id,tenant_name,address,linkman,contact_number,risk_number,
+            risk_person,risk_class,risk_describe,risk_time,create_time,desc_info)
+            VALUES
+        (#{tenantId},#{tenantName},#{address},#{linkman},#{contactNumber},#{riskNumber},
+            #{riskPerson},#{riskClass},#{riskDescribe},#{riskTime},#{createTime},#{descInfo})
+    </insert>
+
+
+</mapper>
diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/riskreporting/service/RiskReportingService.java b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/riskreporting/service/RiskReportingService.java
new file mode 100644
index 0000000..20c2ee1
--- /dev/null
+++ b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/riskreporting/service/RiskReportingService.java
@@ -0,0 +1,14 @@
+package org.springblade.jfpt.riskreporting.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.springblade.jfpt.riskreporting.entity.RiskReporting;
+
+public interface RiskReportingService extends IService<RiskReporting> {
+
+	/**
+	 * 新增
+	 * @param riskReporting
+	 * @return
+	 */
+    boolean insert(RiskReporting riskReporting);
+}
diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/riskreporting/service/impl/RiskReportingServiceImpl.java b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/riskreporting/service/impl/RiskReportingServiceImpl.java
new file mode 100644
index 0000000..fab67fd
--- /dev/null
+++ b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/riskreporting/service/impl/RiskReportingServiceImpl.java
@@ -0,0 +1,20 @@
+package org.springblade.jfpt.riskreporting.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springblade.jfpt.riskreporting.entity.RiskReporting;
+import org.springblade.jfpt.riskreporting.mapper.RiskReportingMapper;
+import org.springblade.jfpt.riskreporting.service.RiskReportingService;
+import org.springframework.stereotype.Service;
+
+@Service
+public class RiskReportingServiceImpl extends ServiceImpl<RiskReportingMapper, RiskReporting> implements RiskReportingService {
+	/**
+	 * 新增风险上报信息
+	 * @param riskReporting
+	 * @return
+	 */
+	@Override
+	public boolean insert(RiskReporting riskReporting) {
+		return baseMapper.insertRis(riskReporting)>0?true:false;
+	}
+}
diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/visitrecord/entity/Visitrecord.java b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/visitrecord/entity/Visitrecord.java
index 42838c4..acf56fc 100644
--- a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/visitrecord/entity/Visitrecord.java
+++ b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/visitrecord/entity/Visitrecord.java
@@ -19,12 +19,14 @@
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.io.Serializable;
 import java.time.LocalDateTime;
+import java.util.Date;
 
 /**
  * 实体类
@@ -55,7 +57,8 @@
 	* 拜访时间
 	*/
 		@ApiModelProperty(value = "拜访时间")
-		private LocalDateTime vistime;
+		@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
+		private Date vistime;
 	/**
 	* 业主编号
 	*/
diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/service/ITenantService.java b/blade-service/blade-system/src/main/java/org/springblade/system/service/ITenantService.java
index ed3acbe..5ab0ba1 100644
--- a/blade-service/blade-system/src/main/java/org/springblade/system/service/ITenantService.java
+++ b/blade-service/blade-system/src/main/java/org/springblade/system/service/ITenantService.java
@@ -50,6 +50,13 @@
 	Tenant getByTenantId(String tenantId);
 
 	/**
+	 * 新增租户信息
+	 * @param tenant 租户对象信息
+	 * @return
+	 */
+	boolean insert(Tenant tenant);
+
+	/**
 	 * 新增
 	 *
 	 * @param tenant
diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/TenantServiceImpl.java b/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/TenantServiceImpl.java
index 95eda8f..87abdef 100644
--- a/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/TenantServiceImpl.java
+++ b/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/TenantServiceImpl.java
@@ -160,6 +160,95 @@
 		}
 	}
 
+	/**
+	 * 新增租户信息
+	 * @param tenant 租户对象信息
+	 * @return
+	 */
+	@Override
+	public boolean insert(Tenant tenant) {
+		CacheUtil.clear(SYS_CACHE);
+		if (Func.isEmpty(tenant.getId())) {
+			List<Tenant> tenants = baseMapper.selectList(Wrappers.<Tenant>query().lambda().eq(Tenant::getIsDeleted, BladeConstant.DB_NOT_DELETED));
+			List<String> codes = tenants.stream().map(Tenant::getTenantId).collect(Collectors.toList());
+			String tenantId = getTenantId(codes);
+			tenant.setTenantId(tenantId);
+			// 获取参数配置的账号额度
+			int accountNumber = Func.toInt(ParamCache.getValue(ACCOUNT_NUMBER_KEY), DEFAULT_ACCOUNT_NUMBER);
+			tenant.setAccountNumber(accountNumber);
+			// 新建租户对应的默认角色
+			Role role = new Role();
+			role.setTenantId(tenantId);
+			role.setParentId(BladeConstant.TOP_PARENT_ID);
+			role.setRoleName("管理员");
+			role.setRoleAlias("admin");
+			role.setSort(2);
+			role.setIsDeleted(BladeConstant.DB_NOT_DELETED);
+			roleService.save(role);
+			// 新建租户对应的角色菜单权限
+			LinkedList<Menu> userMenus = new LinkedList<>();
+			// 获取参数配置的默认菜单集合,逗号隔开
+			List<String> menuCodes = Func.toStrList(ParamCache.getValue(ACCOUNT_MENU_CODE_KEY));
+			List<Menu> menus = getMenus((menuCodes.size() > 0 ? menuCodes : MENU_CODES), userMenus);
+			List<RoleMenu> roleMenus = new ArrayList<>();
+			menus.forEach(menu -> {
+				RoleMenu roleMenu = new RoleMenu();
+				roleMenu.setMenuId(menu.getId());
+				roleMenu.setRoleId(role.getId());
+				roleMenus.add(roleMenu);
+			});
+			roleMenuService.saveBatch(roleMenus);
+			// 新建租户对应的默认部门
+			Dept dept = new Dept();
+			dept.setTenantId(tenantId);
+			dept.setParentId(BladeConstant.TOP_PARENT_ID);
+			dept.setAncestors(String.valueOf(BladeConstant.TOP_PARENT_ID));
+			dept.setDeptName(tenant.getTenantName());
+			dept.setFullName(tenant.getTenantName());
+			dept.setDeptCategory(1);
+			dept.setSort(2);
+			dept.setIsDeleted(BladeConstant.DB_NOT_DELETED);
+			deptService.save(dept);
+			// 新建租户对应的默认岗位
+			Post post = new Post();
+			post.setTenantId(tenantId);
+			post.setCategory(1);
+			post.setPostCode("ceo");
+			post.setPostName("首席执行官");
+			post.setSort(1);
+			postService.save(post);
+			// 新建租户对应的默认业务字典
+//			LinkedList<DictBiz> dictBizs = new LinkedList<>();
+//			List<DictBiz> dictBizList = getDictBizs(tenantId, dictBizs);
+//			dictBizService.saveBatch(dictBizList);
+			// 新建租户对应的默认管理用户
+			User user = new User();
+			user.setTenantId(tenantId);
+			user.setName("admin");
+			user.setRealName("admin");
+			user.setAccount("admin");
+			// 获取参数配置的密码
+			String password = Func.toStr(ParamCache.getValue(PASSWORD_KEY), DEFAULT_PASSWORD);
+			user.setPassword(password);
+			user.setRoleId(String.valueOf(role.getId()));
+			user.setDeptId(String.valueOf(dept.getId()));
+			user.setPostId(String.valueOf(post.getId()));
+			user.setBirthday(new Date());
+			user.setSex(1);
+			user.setUserType(UserEnum.WEB.getCategory());
+			user.setIsDeleted(BladeConstant.DB_NOT_DELETED);
+			boolean temp = super.saveOrUpdate(tenant);
+			R<Boolean> result = userClient.saveUser(user);
+			System.out.println("result = " + result);
+			if (!result.isSuccess()) {
+				throw new ServiceException(result.getMsg());
+			}
+			return temp;
+		} else {
+			return super.saveOrUpdate(tenant);
+		}
+	}
+
 	@Override
 	@Transactional(rollbackFor = Exception.class)
 	public boolean removeTenant(List<Long> ids) {

--
Gitblit v1.9.3