lin 3 gadi atpakaļ
vecāks
revīzija
8d2eda9a1f
17 mainītis faili ar 546 papildinājumiem un 29 dzēšanām
  1. 63 0
      zoniot-rmcp/zoniot-rmcp-api/src/main/java/com/zcxk/rmcp/api/vo/DeviceDetailVo.java
  2. 1 10
      zoniot-rmcp/zoniot-rmcp-api/src/main/java/com/zcxk/rmcp/api/vo/DeviceVo.java
  3. 4 5
      zoniot-rmcp/zoniot-rmcp-core/src/main/java/com/zcxk/rmcp/core/dao/DeviceMapper.java
  4. 19 0
      zoniot-rmcp/zoniot-rmcp-core/src/main/java/com/zcxk/rmcp/core/dao/FileLogMapper.java
  5. 52 0
      zoniot-rmcp/zoniot-rmcp-core/src/main/java/com/zcxk/rmcp/core/entity/FileLog.java
  6. 53 1
      zoniot-rmcp/zoniot-rmcp-core/src/main/java/com/zcxk/rmcp/core/mapper/DeviceMapper.xml
  7. 149 0
      zoniot-rmcp/zoniot-rmcp-core/src/main/java/com/zcxk/rmcp/core/mapper/FileLogMapper.xml
  8. 1 1
      zoniot-rmcp/zoniot-rmcp-web/src/main/java/com/zcxk/rmcp/web/config/ResourceServerConfig.java
  9. 45 0
      zoniot-rmcp/zoniot-rmcp-web/src/main/java/com/zcxk/rmcp/web/config/WebMvcConfig.java
  10. 3 2
      zoniot-rmcp/zoniot-rmcp-web/src/main/java/com/zcxk/rmcp/web/controller/DeviceController.java
  11. 43 0
      zoniot-rmcp/zoniot-rmcp-web/src/main/java/com/zcxk/rmcp/web/controller/FileController.java
  12. 3 2
      zoniot-rmcp/zoniot-rmcp-web/src/main/java/com/zcxk/rmcp/web/service/DeviceService.java
  13. 19 0
      zoniot-rmcp/zoniot-rmcp-web/src/main/java/com/zcxk/rmcp/web/service/FileLogService.java
  14. 3 3
      zoniot-rmcp/zoniot-rmcp-web/src/main/java/com/zcxk/rmcp/web/service/impl/DeviceServiceImpl.java
  15. 82 0
      zoniot-rmcp/zoniot-rmcp-web/src/main/java/com/zcxk/rmcp/web/service/impl/FileLogServiceImpl.java
  16. 5 5
      zoniot-rmcp/zoniot-rmcp-web/src/main/java/com/zcxk/rmcp/web/service/impl/MeterReplaceLogServiceImpl.java
  17. 1 0
      zoniot-rmcp/zoniot-rmcp-web/src/main/resources/application-dev.properties

+ 63 - 0
zoniot-rmcp/zoniot-rmcp-api/src/main/java/com/zcxk/rmcp/api/vo/DeviceDetailVo.java

@@ -0,0 +1,63 @@
+package com.zcxk.rmcp.api.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+ * @author linqingwei
+ * @date 2021-07-29 16:40
+ */
+@Data
+public class DeviceDetailVo extends DeviceVo{
+    @ApiModelProperty(value="用户姓名")
+    private String userName;
+
+    @ApiModelProperty(value="用户手机号")
+    private String userPhone;
+
+    @ApiModelProperty(value="身份证号")
+    private String idCard;
+
+    @ApiModelProperty(value="旧表止度")
+    private String oldEndDegree;
+
+    @ApiModelProperty(value="旧表照片")
+    private String oldImageUrl;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value="最后告警时间")
+    private LocalDateTime lastAlarmDate;
+
+    @ApiModelProperty(value="离线天数")
+    private Integer offlineDays;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value="验收时间")
+    private LocalDateTime acceptDate;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value="安装时间")
+    private LocalDateTime installDate;
+
+    @ApiModelProperty(value="是否安装,0否1是")
+    private Integer isInstall;
+
+    @ApiModelProperty(value="是否验收,0否1是")
+    private Integer isAccept;
+
+    @ApiModelProperty(value = "省名称")
+    private String provinceName;
+
+    @ApiModelProperty(value = "市名称")
+    private String cityName;
+
+    @ApiModelProperty(value = "区名称")
+    private String regionName;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value="创建时间")
+    private LocalDateTime createDate;
+}

+ 1 - 10
zoniot-rmcp/zoniot-rmcp-api/src/main/java/com/zcxk/rmcp/api/vo/DeviceVo.java

@@ -13,12 +13,9 @@ import java.time.LocalDateTime;
  */
 @Data
 public class DeviceVo {
-    @ApiModelProperty(value="")
+    @ApiModelProperty(value="id")
     private Long id;
 
-    @ApiModelProperty(value="租户")
-    private String tenantId;
-
     @ApiModelProperty(value="公司")
     private Integer companyOrgId;
 
@@ -68,12 +65,6 @@ public class DeviceVo {
     @ApiModelProperty(value="最后上报时间")
     private LocalDateTime lastReceiveTime;
 
-    @ApiModelProperty(value="状态")
-    private Integer status;
-
-    @ApiModelProperty(value="创建人")
-    private String createBy;
-
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @ApiModelProperty(value="创建时间")
     private LocalDateTime createDate;

+ 4 - 5
zoniot-rmcp/zoniot-rmcp-core/src/main/java/com/zcxk/rmcp/core/dao/DeviceMapper.java

@@ -6,10 +6,7 @@ import com.zcxk.rmcp.api.dto.device.DeviceQueryDto;
 import com.zcxk.rmcp.api.dto.install.InstallDeviceDto;
 import com.zcxk.rmcp.api.dto.measurementSettlement.MeasurementSettlementDto;
 import com.zcxk.rmcp.api.query.CommonQueryCondition;
-import com.zcxk.rmcp.api.vo.DeviceCommunityVo;
-import com.zcxk.rmcp.api.vo.DeviceNoCellVo;
-import com.zcxk.rmcp.api.vo.DeviceStatusVo;
-import com.zcxk.rmcp.api.vo.DeviceVo;
+import com.zcxk.rmcp.api.vo.*;
 import com.zcxk.rmcp.core.entity.Device;
 import org.apache.ibatis.annotations.Param;
 import org.mapstruct.Mapper;
@@ -26,7 +23,9 @@ public interface DeviceMapper {
 
     int updateByPrimaryKeySelective(Device record);
 
-    DeviceVo findById(@Param("id") Long id);
+    Device findById(@Param("id") Long id);
+
+    DeviceDetailVo findDetail(@Param("id") Long id);
 
     List<DeviceVo> findList(@Param("dto") DeviceQueryDto dto, @Param("userCondition") UserCondition userCondition);
 

+ 19 - 0
zoniot-rmcp/zoniot-rmcp-core/src/main/java/com/zcxk/rmcp/core/dao/FileLogMapper.java

@@ -0,0 +1,19 @@
+package com.zcxk.rmcp.core.dao;
+
+import com.zcxk.rmcp.core.entity.FileLog;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * @author linqingwei
+ * @date 2021-07-29 17:54
+ */
+@Mapper
+public interface FileLogMapper {
+
+    int insertSelective(FileLog record);
+
+    int updateByPrimaryKeySelective(FileLog record);
+
+    FileLog getById(@Param("id") String id);
+}

+ 52 - 0
zoniot-rmcp/zoniot-rmcp-core/src/main/java/com/zcxk/rmcp/core/entity/FileLog.java

@@ -0,0 +1,52 @@
+package com.zcxk.rmcp.core.entity;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.time.LocalDateTime;
+import lombok.Data;
+
+/**
+ * 
+ * @author linqingwei
+ * @date 2021-07-29 17:54
+ */
+@ApiModel(value="文件")
+@Data
+public class FileLog {
+
+    @ApiModelProperty(value="id")
+    private String id;
+
+    @ApiModelProperty(value="fileType")
+    private String fileType;
+
+    @ApiModelProperty(value="size")
+    private Long size;
+
+    @ApiModelProperty(value="name")
+    private String name;
+
+    @ApiModelProperty(value="path")
+    private String path;
+
+    @ApiModelProperty(value="url")
+    private String url;
+
+    @ApiModelProperty(value="type")
+    private Integer type;
+
+    @ApiModelProperty(value="status")
+    private Integer status;
+
+    @ApiModelProperty(value="createDate")
+    private LocalDateTime createDate;
+
+    @ApiModelProperty(value="createBy")
+    private String createBy;
+
+    @ApiModelProperty(value="updateDate")
+    private LocalDateTime updateDate;
+
+    @ApiModelProperty(value="updateBy")
+    private String updateBy;
+}

+ 53 - 1
zoniot-rmcp/zoniot-rmcp-core/src/main/java/com/zcxk/rmcp/core/mapper/DeviceMapper.xml

@@ -376,10 +376,60 @@
     where id = #{id}
   </update>
 
-  <select id="findById" resultType="com.zcxk.rmcp.api.vo.DeviceVo">
+  <select id="findById" resultType="com.zcxk.rmcp.core.entity.Device">
   select <include refid="Base_Column_List"/> from rmcp_device where status = 1 and id = #{id}
   </select>
 
+  <select id="findDetail" resultType="com.zcxk.rmcp.api.vo.DeviceDetailVo">
+    select
+      rd.id,
+      rd.company_org_id,
+      rd.dept_org_id,
+      rd.product_id,
+      rd.community_id,
+      rd.device_no,
+      rd.meter_no,
+      rd.file_no,
+      rd.seal_no,
+      rd.device_status,
+      rd.read_data,
+      rd.valve_status,
+      rd.last_receive_time,
+      rd.address,
+      rd.lng,
+      rd.lat,
+      rd.user_name,
+      rd.user_phone,
+      rd.id_card,
+      rd.old_end_degree,
+      rd.old_image_url,
+      rd.is_install,
+      rd.install_date,
+      rd.is_accept,
+      rd.accept_date,
+      rd.create_date,
+      rp.product_name,
+      rp.product_model,
+      rp.is_support_valve,
+      rm.name as manufacturer_name,
+      roc.ORG_NAME as company_name,
+      rod.ORG_NAME as dept_name,
+      rc.name as community_name,
+      sa1.name as province_name,
+      sa2.name as city_name,
+      sa3.name as region_name
+    from rmcp_device rd
+    left join rmcp_product rp on (rp.id = rd.product_id)
+    left join rmcp_manufacturer rm on (rm.id = rp.manufacturer_id)
+    left join rmcp_org roc on (roc.ID = rd.company_org_id)
+    left join rmcp_org rod on (rod.ID = rd.dept_org_id)
+    left join rmcp_community rc on (rc.id = rd.community_id)
+    left join rmcp_area sa1 on sa1.id = rc.province
+    left join rmcp_area sa2 on sa2.id = rc.city
+    left join rmcp_area sa3 on sa3.id = rc.region
+    where rd.status = 1 and rd.id = #{id}
+  </select>
+
   <sql id="permissionCondition">
     <if test="userCondition.tenantId != null">and rd.tenant_id = #{userCondition.tenantId}</if>
     <if test="userCondition.userType!=null and userCondition.userType!=-999 and userCondition.userType!=-9999 and  userCondition.programItems != null and userCondition.programItems.size() > 0">
@@ -563,4 +613,6 @@
     <if test="productId != null">and rd.product_id = #{productId}</if>
     order by rd.create_date desc
   </select>
+
+
 </mapper>

+ 149 - 0
zoniot-rmcp/zoniot-rmcp-core/src/main/java/com/zcxk/rmcp/core/mapper/FileLogMapper.xml

@@ -0,0 +1,149 @@
+<?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.zcxk.rmcp.core.dao.FileLogMapper">
+  <resultMap id="BaseResultMap" type="com.zcxk.rmcp.core.entity.FileLog">
+    <!--@mbg.generated-->
+    <!--@Table rmcp_file_log-->
+    <id column="id" property="id" />
+    <result column="file_type" property="fileType" />
+    <result column="size" property="size" />
+    <result column="name" property="name" />
+    <result column="path" property="path" />
+    <result column="url" property="url" />
+    <result column="type" property="type" />
+    <result column="status" property="status" />
+    <result column="create_date" property="createDate" />
+    <result column="create_by" property="createBy" />
+    <result column="update_date" property="updateDate" />
+    <result column="update_by" property="updateBy" />
+  </resultMap>
+  <sql id="Base_Column_List">
+    <!--@mbg.generated-->
+    id, file_type, `size`, `name`, `path`, url, `type`, `status`, create_date, create_by, 
+    update_date, update_by
+  </sql>
+  <insert id="insertSelective" keyColumn="id" keyProperty="id" parameterType="com.zcxk.rmcp.core.entity.FileLog" useGeneratedKeys="true">
+    <!--@mbg.generated-->
+    insert into rmcp_file_log
+    <trim prefix="(" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        id,
+      </if>
+      <if test="fileType != null">
+        file_type,
+      </if>
+      <if test="size != null">
+        `size`,
+      </if>
+      <if test="name != null">
+        `name`,
+      </if>
+      <if test="path != null">
+        `path`,
+      </if>
+      <if test="url != null">
+        url,
+      </if>
+      <if test="type != null">
+        `type`,
+      </if>
+      <if test="status != null">
+        `status`,
+      </if>
+      <if test="createDate != null">
+        create_date,
+      </if>
+      <if test="createBy != null">
+        create_by,
+      </if>
+      <if test="updateDate != null">
+        update_date,
+      </if>
+      <if test="updateBy != null">
+        update_by,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        #{id},
+      </if>
+      <if test="fileType != null">
+        #{fileType},
+      </if>
+      <if test="size != null">
+        #{size},
+      </if>
+      <if test="name != null">
+        #{name},
+      </if>
+      <if test="path != null">
+        #{path},
+      </if>
+      <if test="url != null">
+        #{url},
+      </if>
+      <if test="type != null">
+        #{type},
+      </if>
+      <if test="status != null">
+        #{status},
+      </if>
+      <if test="createDate != null">
+        #{createDate},
+      </if>
+      <if test="createBy != null">
+        #{createBy},
+      </if>
+      <if test="updateDate != null">
+        #{updateDate},
+      </if>
+      <if test="updateBy != null">
+        #{updateBy},
+      </if>
+    </trim>
+  </insert>
+  <update id="updateByPrimaryKeySelective" parameterType="com.zcxk.rmcp.core.entity.FileLog">
+    <!--@mbg.generated-->
+    update rmcp_file_log
+    <set>
+      <if test="fileType != null">
+        file_type = #{fileType},
+      </if>
+      <if test="size != null">
+        `size` = #{size},
+      </if>
+      <if test="name != null">
+        `name` = #{name},
+      </if>
+      <if test="path != null">
+        `path` = #{path},
+      </if>
+      <if test="url != null">
+        url = #{url},
+      </if>
+      <if test="type != null">
+        `type` = #{type},
+      </if>
+      <if test="status != null">
+        `status` = #{status},
+      </if>
+      <if test="createDate != null">
+        create_date = #{createDate},
+      </if>
+      <if test="createBy != null">
+        create_by = #{createBy},
+      </if>
+      <if test="updateDate != null">
+        update_date = #{updateDate},
+      </if>
+      <if test="updateBy != null">
+        update_by = #{updateBy},
+      </if>
+    </set>
+    where id = #{id}
+  </update>
+
+  <select id="getById" resultMap="BaseResultMap">
+    select <include refid="Base_Column_List"/> from rmcp_file_log where  id = #{id}
+  </select>
+</mapper>

+ 1 - 1
zoniot-rmcp/zoniot-rmcp-web/src/main/java/com/zcxk/rmcp/web/config/ResourceServerConfig.java

@@ -17,7 +17,7 @@ public class ResourceServerConfig extends ResourceServerConfigurerAdapter {
             .and()
             .authorizeRequests()
             .antMatchers("/swagger-ui.html","/webjars/**", "/swagger-resources/**",
-                   "/test/test",
+                    "/file/**","/test/test",
                    "/v2/**")
             .permitAll() //配置不需要身份认证的请求路径
             .anyRequest().authenticated() //其他所有访问路径都需要身份认证

+ 45 - 0
zoniot-rmcp/zoniot-rmcp-web/src/main/java/com/zcxk/rmcp/web/config/WebMvcConfig.java

@@ -0,0 +1,45 @@
+package com.zcxk.rmcp.web.config;
+
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.http.CacheControl;
+import org.springframework.util.ResourceUtils;
+import org.springframework.web.servlet.config.annotation.CorsRegistry;
+import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+
+import java.io.File;
+import java.util.concurrent.TimeUnit;
+
+@Configuration
+public class WebMvcConfig implements WebMvcConfigurer {
+    /**
+     * 跨域支持
+     *
+     * @return
+     */
+    @Bean
+    public WebMvcConfigurer corsConfigurer() {
+        return new WebMvcConfigurer() {
+            @Override
+            public void addCorsMappings(CorsRegistry registry) {
+                registry.addMapping("/**").allowedMethods("*");
+            }
+        };
+    }
+    /**
+     * 上传文件根路径
+     */
+    @Value("${files.path}")
+    private String filesPath;
+
+    /**
+     * 外部文件访问
+     */
+    @Override
+    public void addResourceHandlers(ResourceHandlerRegistry registry) {
+        registry.addResourceHandler("/file/**").setCacheControl(CacheControl.maxAge(30, TimeUnit.DAYS))
+                .addResourceLocations(ResourceUtils.FILE_URL_PREFIX + filesPath + File.separator);
+    }
+}

+ 3 - 2
zoniot-rmcp/zoniot-rmcp-web/src/main/java/com/zcxk/rmcp/web/controller/DeviceController.java

@@ -9,6 +9,7 @@ import com.zcxk.rmcp.api.dto.BasePageDto;
 import com.zcxk.rmcp.api.dto.device.DeviceInputDto;
 import com.zcxk.rmcp.api.dto.device.DeviceQueryDto;
 import com.zcxk.rmcp.api.query.CommonQueryCondition;
+import com.zcxk.rmcp.api.vo.DeviceDetailVo;
 import com.zcxk.rmcp.api.vo.DeviceMapDataVo;
 import com.zcxk.rmcp.api.vo.DeviceStatisticsVo;
 import com.zcxk.rmcp.api.vo.DeviceVo;
@@ -64,10 +65,10 @@ public class DeviceController {
 
     @GetMapping("/detail")
     @ApiOperation(value = "设备详情")
-    public AjaxMessage<DeviceVo> deviceDetail(
+    public AjaxMessage<DeviceDetailVo> deviceDetail(
             @ApiParam(value = "设备id", required = true) @RequestParam(required = true) Long deviceId
     ) {
-        DeviceVo device = deviceService.deviceDetail(deviceId);
+        DeviceDetailVo device = deviceService.deviceDetail(deviceId);
         return AjaxMessage.success(device);
     }
 

+ 43 - 0
zoniot-rmcp/zoniot-rmcp-web/src/main/java/com/zcxk/rmcp/web/controller/FileController.java

@@ -0,0 +1,43 @@
+package com.zcxk.rmcp.web.controller;
+
+import com.zcxk.core.common.pojo.AjaxMessage;
+import com.zcxk.rmcp.core.entity.FileLog;
+import com.zcxk.rmcp.web.service.FileLogService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.HashMap;
+import java.util.Map;
+
+@Controller
+@ResponseBody
+@RequestMapping("file")
+@Api(tags = "文件")
+public class FileController {
+
+    @Autowired
+    private FileLogService fileLogService;
+    @Value("${rmcp.url}")
+    private String rmcpUrl;
+
+
+    @PostMapping
+    @ApiOperation(value = "文件上传")
+    public AjaxMessage<Map<String,String>> uploadFile(MultipartFile file) {
+        String url = fileLogService.uploadFile(file);
+        Map<String,String> map = new HashMap<>();
+        map.put("url",rmcpUrl+"/file"+url);
+        return AjaxMessage.success(map);
+    }
+
+
+
+}

+ 3 - 2
zoniot-rmcp/zoniot-rmcp-web/src/main/java/com/zcxk/rmcp/web/service/DeviceService.java

@@ -6,6 +6,7 @@ import com.zcxk.rmcp.api.dto.BasePageDto;
 import com.zcxk.rmcp.api.dto.device.DeviceInputDto;
 import com.zcxk.rmcp.api.dto.device.DeviceQueryDto;
 import com.zcxk.rmcp.api.query.CommonQueryCondition;
+import com.zcxk.rmcp.api.vo.DeviceDetailVo;
 import com.zcxk.rmcp.api.vo.DeviceMapDataVo;
 import com.zcxk.rmcp.api.vo.DeviceStatisticsVo;
 import com.zcxk.rmcp.api.vo.DeviceVo;
@@ -28,7 +29,7 @@ public interface DeviceService{
 
     int updateByPrimaryKeySelective(Device record);
 
-    DeviceVo findById(Long id);
+    Device findById(Long id);
 
     Pagination<DeviceVo> getPage(DeviceQueryDto dto, BasePageDto page);
 
@@ -36,7 +37,7 @@ public interface DeviceService{
 
     void edit(DeviceInputDto device);
 
-    DeviceVo deviceDetail(Long deviceId);
+    DeviceDetailVo deviceDetail(Long deviceId);
 
     void batchDelele(List<Long> ids);
 

+ 19 - 0
zoniot-rmcp/zoniot-rmcp-web/src/main/java/com/zcxk/rmcp/web/service/FileLogService.java

@@ -0,0 +1,19 @@
+package com.zcxk.rmcp.web.service;
+
+import com.zcxk.rmcp.core.entity.FileLog;
+import org.springframework.web.multipart.MultipartFile;
+
+/**
+ * 
+ * @author linqingwei
+ * @date 2021-07-29 17:54
+ */
+public interface FileLogService{
+
+
+    int insertSelective(FileLog record);
+
+    int updateByPrimaryKeySelective(FileLog record);
+
+    String uploadFile(MultipartFile file);
+}

+ 3 - 3
zoniot-rmcp/zoniot-rmcp-web/src/main/java/com/zcxk/rmcp/web/service/impl/DeviceServiceImpl.java

@@ -95,7 +95,7 @@ public class DeviceServiceImpl implements DeviceService{
     }
 
     @Override
-    public DeviceVo findById(Long id) {
+    public Device findById(Long id) {
         return deviceMapper.findById(id);
     }
 
@@ -182,8 +182,8 @@ public class DeviceServiceImpl implements DeviceService{
     }
 
     @Override
-    public DeviceVo deviceDetail(Long deviceId) {
-        DeviceVo device = findById(deviceId);
+    public DeviceDetailVo deviceDetail(Long deviceId) {
+        DeviceDetailVo device = deviceMapper.findDetail(deviceId);
         return device;
     }
 

+ 82 - 0
zoniot-rmcp/zoniot-rmcp-web/src/main/java/com/zcxk/rmcp/web/service/impl/FileLogServiceImpl.java

@@ -0,0 +1,82 @@
+package com.zcxk.rmcp.web.service.impl;
+
+import com.zcxk.core.common.util.FileUtil;
+import com.zcxk.rmcp.web.service.FileLogService;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+import javax.annotation.Resource;
+import com.zcxk.rmcp.core.dao.FileLogMapper;
+import com.zcxk.rmcp.core.entity.FileLog;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.IOException;
+import java.time.LocalDateTime;
+
+/**
+ * 
+ * @author linqingwei
+ * @date 2021-07-29 17:54
+ */
+@Service
+public class FileLogServiceImpl implements FileLogService {
+
+    @Resource
+    private FileLogMapper fileLogMapper;
+    @Value("${files.path}")
+    private String filesPath;
+
+    @Override
+    public int insertSelective(FileLog record) {
+        return fileLogMapper.insertSelective(record);
+    }
+
+    @Override
+    public int updateByPrimaryKeySelective(FileLog record) {
+        return fileLogMapper.updateByPrimaryKeySelective(record);
+    }
+
+    @Override
+    public String uploadFile(MultipartFile file) {
+        String fileOrigName = file.getOriginalFilename();
+        if (fileOrigName!=null&&!fileOrigName.contains(".")) {
+            throw new IllegalArgumentException("缺少后缀名");
+        }
+
+        String md5 = null;
+        try {
+            md5 = FileUtil.fileMd5(file.getInputStream());
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        FileLog fileInfo = fileLogMapper.getById(md5);
+        if (fileInfo != null) {
+            return fileInfo.getUrl();
+        }
+        if(fileOrigName!=null){
+            fileOrigName = fileOrigName.substring(fileOrigName.lastIndexOf("."));
+        }
+        String pathname = FileUtil.getPath() + md5 + fileOrigName;
+        String fullPath = filesPath + pathname;
+        System.out.println(fullPath);
+        FileUtil.saveFile(file, fullPath);
+
+        long size = file.getSize();
+        String contentType = file.getContentType();
+
+        fileInfo = new FileLog();
+        fileInfo.setId(md5);
+        fileInfo.setFileType(contentType);
+        fileInfo.setName(file.getName());
+        fileInfo.setSize(size);
+        fileInfo.setPath(fullPath);
+        fileInfo.setUrl(pathname);
+        if(contentType!=null){
+            fileInfo.setType(contentType.startsWith("image/") ? 1 : 0);
+        }
+        fileInfo.setStatus(1);
+        fileInfo.setCreateBy("system");
+        fileInfo.setCreateDate(LocalDateTime.now());
+        fileLogMapper.insertSelective(fileInfo);
+        return fileInfo.getUrl();
+    }
+}

+ 5 - 5
zoniot-rmcp/zoniot-rmcp-web/src/main/java/com/zcxk/rmcp/web/service/impl/MeterReplaceLogServiceImpl.java

@@ -90,7 +90,7 @@ public class MeterReplaceLogServiceImpl implements MeterReplaceLogService {
     public void submitWaterMeterReplace(WaterMeterReplaceInputDto waterMeterReplaceDto) {
         log.info("begin submitWaterMeterReplace waterMeterReplaceInputDto:{}", JSON.toJSON(waterMeterReplaceDto));
         Boolean remoteMeterFlag = false;
-        DeviceVo device = deviceMapper.findById(waterMeterReplaceDto.getDeviceId());
+        Device device = deviceMapper.findById(waterMeterReplaceDto.getDeviceId());
         // 判断设备编号和电子号是否已经存在
         if (ZoniotStringUtils.isNotEmpty(waterMeterReplaceDto.getNewDeviceNo())) {
             int resultDeviceNo = deviceMapper.findByDeviceNoUnique(waterMeterReplaceDto.getDeviceId(), waterMeterReplaceDto.getNewDeviceNo());
@@ -105,9 +105,9 @@ public class MeterReplaceLogServiceImpl implements MeterReplaceLogService {
             }
         }
         // 1. 添加换表记录
-        //insertSelective(waterMeterReplaceDto, device);
+        insertSelective(waterMeterReplaceDto, device);
         // 2、更改设备信息
-        //updateDevice(waterMeterReplaceDto, device);
+        updateDevice(waterMeterReplaceDto, device);
 
         // TODO  waterRelatedDeviceMapper.realDelByDeviceId(waterMeterReplaceInputDto.getDeviceId());
         /*if (remoteMeterFlag) {
@@ -159,7 +159,7 @@ public class MeterReplaceLogServiceImpl implements MeterReplaceLogService {
     * @param waterMeterReplaceDto:换标记录, device, deviceTypeId]
     * @return void
     **/
-    private void insertSelective(WaterMeterReplaceInputDto waterMeterReplaceDto, DeviceVo device){
+    private void insertSelective(WaterMeterReplaceInputDto waterMeterReplaceDto, Device device){
         Integer deviceTypeId = waterMeterReplaceDto.getNewDeviceTypeId() != null ? waterMeterReplaceDto.getNewDeviceTypeId() : device.getProductId();
         LoginUser loginUser = UserUtil.getCurrentUser();
         String username  = loginUser.getUsername();
@@ -192,7 +192,7 @@ public class MeterReplaceLogServiceImpl implements MeterReplaceLogService {
     * @param waterMeterReplaceDto:换表信息, device:设备信息]
     * @return void
     **/
-    private void updateDevice(WaterMeterReplaceInputDto waterMeterReplaceDto, DeviceVo device){
+    private void updateDevice(WaterMeterReplaceInputDto waterMeterReplaceDto, Device device){
         Device newDevice = new Device();
         newDevice.setId(device.getId());
         if (ZoniotStringUtils.isNotEmpty(waterMeterReplaceDto.getNewDeviceNo())) {

+ 1 - 0
zoniot-rmcp/zoniot-rmcp-web/src/main/resources/application-dev.properties

@@ -3,6 +3,7 @@ spring.application.name=zoniot-rmcp-web
 logging.level.root=info
 logging.path=./logs/zoniot-rmcp-web
 files.path=E:/test
+rmcp.url=http://localhost:8325
 
 
 # mysql