Browse Source

火灾事故说明相关接口开发

jichaobo 2 years ago
parent
commit
204325fef6

+ 25 - 3
service-fire/service-fire-biz/src/main/java/com/usky/fire/controller/web/DemFileLabelController.java

@@ -1,21 +1,43 @@
 package com.usky.fire.controller.web;
 
 
+import com.usky.common.core.bean.ApiResult;
+import com.usky.fire.domain.DemFileLabel;
+import com.usky.fire.service.DemFileLabelService;
+import org.springframework.beans.factory.annotation.Autowired;
+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 org.springframework.stereotype.Controller;
+import java.util.List;
 
 /**
  * <p>
- *  前端控制器
+ * 前端控制器
  * </p>
  *
  * @author JCB
  * @since 2022-09-14
  */
-@Controller
+@RestController
 @RequestMapping("/demFileLabel")
 public class DemFileLabelController {
 
+    @Autowired
+    private DemFileLabelService demFileLabelService;
+
+    /**
+     * 标签-列表/下拉框查询
+     *
+     * @param fid       父ID
+     * @param labelName 标签ID
+     * @return
+     */
+    @GetMapping("demFileLabelList")
+    public ApiResult<List<DemFileLabel>> demFileLabelList(@RequestParam(value = "fid", required = false) Integer fid,
+                                                          @RequestParam(value = "labelName", required = false) String labelName) {
+        return ApiResult.success(demFileLabelService.demFileLabelList(fid, labelName, null));
+    }
 }
 

+ 81 - 5
service-fire/service-fire-biz/src/main/java/com/usky/fire/controller/web/DemFireAccidentDescController.java

@@ -3,12 +3,14 @@ package com.usky.fire.controller.web;
 
 import com.usky.common.core.bean.ApiResult;
 import com.usky.common.core.bean.CommonPage;
+import com.usky.common.log.annotation.Log;
+import com.usky.common.log.enums.BusinessType;
+import com.usky.fire.domain.DemFileLabel;
 import com.usky.fire.service.DemFireStatisticsService;
+import com.usky.fire.service.vo.DemFireStatisticsVo;
+import com.usky.fire.service.vo.ParameterVo;
 import org.springframework.beans.factory.annotation.Autowired;
-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 org.springframework.web.bind.annotation.*;
 
 /**
  * <p>
@@ -39,9 +41,83 @@ public class DemFireAccidentDescController {
     public ApiResult<CommonPage<Object>> fireAccidentStatistic(@RequestParam(value = "fireNumber", required = false) String fireNumber,
                                                                @RequestParam(value = "labelId", required = false, defaultValue = "0") Integer labelId,
                                                                @RequestParam(value = "classifyId", required = false, defaultValue = "0") Integer classifyId,
+                                                               @RequestParam(value = "id", required = false, defaultValue = "0") Integer id,
                                                                @RequestParam(value = "pageNum", required = false, defaultValue = "1") Integer pageNum,
                                                                @RequestParam(value = "pageSize", required = false, defaultValue = "10") Integer pageSize) {
-        return ApiResult.success(demFireStatisticsService.fireAccidentStatistic(fireNumber, labelId, classifyId, pageNum, pageSize));
+        return ApiResult.success(demFireStatisticsService.fireAccidentStatistic(fireNumber, labelId, classifyId, id, pageNum, pageSize));
     }
+
+    /**
+     * 火灾数据管理-添加标签
+     *
+     * @param demFileLabel
+     * @return
+     */
+    @Log(title = "火灾数据-添加标签", businessType = BusinessType.INSERT)
+    @PostMapping("addLabel")
+    public ApiResult<Void> addLabel(@RequestBody DemFileLabel demFileLabel) {
+        demFireStatisticsService.addLabel(demFileLabel);
+        return ApiResult.success();
+    }
+
+    /**
+     * 火灾数据管理-绑定弹窗列表查询
+     *
+     * @param fireNumber     火灾序号
+     * @param fireCauseType1 起火原因
+     * @param pageNum        当前页
+     * @param pageSize       每页条数
+     * @return
+     */
+    @GetMapping("fireStatisticList")
+    public ApiResult<CommonPage<Object>> fireStatisticList(@RequestParam(value = "fireNumber", required = false) String fireNumber,
+                                                           @RequestParam(value = "fireCauseType1", required = false) String fireCauseType1,
+                                                           @RequestParam(value = "pageNum", required = false, defaultValue = "1") Integer pageNum,
+                                                           @RequestParam(value = "pageSize", required = false, defaultValue = "10") Integer pageSize) {
+        return ApiResult.success(demFireStatisticsService.fireStatisticList(fireNumber, fireCauseType1, pageNum, pageSize));
+    }
+
+    /**
+     * 火灾数据管理-绑定标签
+     *
+     * @param parameterVo
+     * @return
+     */
+    @Log(title = "火灾数据-绑定标签", businessType = BusinessType.UPDATE)
+    @PutMapping("bindingLabel")
+    public ApiResult<Void> bindingLabel(@RequestBody ParameterVo parameterVo) {
+        demFireStatisticsService.bindingLabel(parameterVo);
+        return ApiResult.success();
+    }
+
+    /**
+     * 火灾数据管理-修改
+     *
+     * @param demFireStatisticsVo
+     * @return
+     */
+    @Log(title = "火灾数据-修改", businessType = BusinessType.UPDATE)
+    @PutMapping("updateDemFireStatistics")
+    public ApiResult<Void> updateDemFireStatistics(@RequestBody DemFireStatisticsVo demFireStatisticsVo) {
+        demFireStatisticsService.updateDemFireStatistics(demFireStatisticsVo);
+        return ApiResult.success();
+    }
+
+    /**
+     * 火灾数据管理-删除
+     *
+     * @param id  主键ID
+     * @param zid 关联表ID
+     * @return
+     */
+    @Log(title = "火灾数据-删除", businessType = BusinessType.DELETE)
+    @DeleteMapping("delDemFireStatistics")
+    public ApiResult<Void> delDemFireStatistics(@RequestParam(value = "id") Integer id,
+                                                @RequestParam(value = "zid") Integer zid) {
+        demFireStatisticsService.delDemFireStatistics(id, zid);
+        return ApiResult.success();
+    }
+
+
 }
 

+ 11 - 1
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/DemFileLabelService.java

@@ -22,7 +22,17 @@ public interface DemFileLabelService extends CrudService<DemFileLabel> {
      * @param labelName 标签名称
      * @return
      */
-    List<DemFileLabel> demFileLabelList(Integer fid, String labelName,List<Integer> idList);
+    List<DemFileLabel> demFileLabelList(Integer fid, String labelName, List<Integer> idList);
+
+    /**
+     * 标签-数量
+     *
+     * @param fid       父ID
+     * @param labelName 标签名称
+     * @param id        主键ID
+     * @return
+     */
+    int demFileLabelCount(Integer fid, String labelName, Integer id);
 
     /**
      * 标签-新增

+ 43 - 1
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/DemFireStatisticsService.java

@@ -2,7 +2,10 @@ package com.usky.fire.service;
 
 import com.usky.common.core.bean.CommonPage;
 import com.usky.common.mybatis.core.CrudService;
+import com.usky.fire.domain.DemFileLabel;
 import com.usky.fire.domain.DemFireStatistics;
+import com.usky.fire.service.vo.DemFireStatisticsVo;
+import com.usky.fire.service.vo.ParameterVo;
 
 /**
  * <p>
@@ -25,6 +28,45 @@ public interface DemFireStatisticsService extends CrudService<DemFireStatistics>
      * @param pageSize   每页条数
      * @return
      */
-    CommonPage<Object> fireAccidentStatistic(String fireNumber, Integer labelId, Integer classifyId, Integer pageNum, Integer pageSize);
+    CommonPage<Object> fireAccidentStatistic(String fireNumber, Integer labelId, Integer classifyId, Integer id, Integer pageNum, Integer pageSize);
 
+    /**
+     * 火灾数据管理-添加标签
+     *
+     * @param demFileLabel
+     */
+    void addLabel(DemFileLabel demFileLabel);
+
+    /**
+     * 火灾数据管理-绑定弹窗列表查询
+     *
+     * @param fireNumber     火灾序号
+     * @param fireCauseType1 起火原因
+     * @param pageNum        当前页
+     * @param pageSize       每页条数
+     * @return
+     */
+    CommonPage<Object> fireStatisticList(String fireNumber, String fireCauseType1, Integer pageNum, Integer pageSize);
+
+    /**
+     * 火灾数据管理-绑定标签
+     *
+     * @param parameterVo
+     */
+    void bindingLabel(ParameterVo parameterVo);
+
+    /**
+     * 火灾数据管理-修改
+     *
+     * @param demFireStatisticsVo
+     */
+    void updateDemFireStatistics(DemFireStatisticsVo demFireStatisticsVo);
+
+    /**
+     * 火灾数据管理-删除
+     *
+     * @param id  主键ID
+     * @param zid 关联表ID
+     */
+    void delDemFireStatistics(Integer id, Integer zid);
 }

+ 10 - 17
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/impl/DemFileLabelServiceImpl.java

@@ -27,7 +27,7 @@ import java.util.List;
 public class DemFileLabelServiceImpl extends AbstractCrudService<DemFileLabelMapper, DemFileLabel> implements DemFileLabelService {
 
     @Override
-    public List<DemFileLabel> demFileLabelList(Integer fid,String labelName,List<Integer> idList) {
+    public List<DemFileLabel> demFileLabelList(Integer fid, String labelName, List<Integer> idList) {
         LambdaQueryWrapper<DemFileLabel> queryWrapper = Wrappers.lambdaQuery();
         queryWrapper.select(DemFileLabel::getId, DemFileLabel::getFid, DemFileLabel::getLabelName)
                 .eq(fid != null, DemFileLabel::getFid, fid)
@@ -39,15 +39,17 @@ public class DemFileLabelServiceImpl extends AbstractCrudService<DemFileLabelMap
     }
 
     @Override
-    public void addDemFileLabel(DemFileLabel demFileLabel) {
+    public int demFileLabelCount(Integer fid, String labelName, Integer id) {
         LambdaQueryWrapper<DemFileLabel> queryWrapper = Wrappers.lambdaQuery();
-        queryWrapper.select(DemFileLabel::getId, DemFileLabel::getFid, DemFileLabel::getLabelName)
-                .eq(DemFileLabel::getFid, demFileLabel.getFid())
-                .eq(DemFileLabel::getLabelName, demFileLabel.getLabelName());
+        queryWrapper.eq(DemFileLabel::getFid, fid)
+                .eq(DemFileLabel::getLabelName, labelName)
+                .ne(id != null & id != 0, DemFileLabel::getId, id);
         int count = this.count(queryWrapper);
-        if (count > 0) {
-            throw new BusinessException("表签名/分类名不可重复");
-        }
+        return count;
+    }
+
+    @Override
+    public void addDemFileLabel(DemFileLabel demFileLabel) {
         demFileLabel.setCreateTime(LocalDateTime.now());
         demFileLabel.setCreator(SecurityUtils.getUsername());
         this.save(demFileLabel);
@@ -55,15 +57,6 @@ public class DemFileLabelServiceImpl extends AbstractCrudService<DemFileLabelMap
 
     @Override
     public void updateDemFileLabel(DemFileLabel demFileLabel) {
-        LambdaQueryWrapper<DemFileLabel> queryWrapper = Wrappers.lambdaQuery();
-        queryWrapper.select(DemFileLabel::getId, DemFileLabel::getFid, DemFileLabel::getLabelName)
-                .eq(DemFileLabel::getFid, demFileLabel.getFid())
-                .eq(DemFileLabel::getLabelName, demFileLabel.getLabelName())
-                .ne(DemFileLabel::getId, demFileLabel.getId());
-        int count = this.count(queryWrapper);
-        if (count > 0) {
-            throw new BusinessException("表签名/分类名不可重复");
-        }
         demFileLabel.setUpdatePerson(SecurityUtils.getUsername());
         demFileLabel.setUpdateTime(LocalDateTime.now());
         this.updateById(demFileLabel);

+ 144 - 13
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/impl/DemFireStatisticsServiceImpl.java

@@ -7,7 +7,9 @@ import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.usky.common.core.bean.CommonPage;
+import com.usky.common.core.exception.BusinessException;
 import com.usky.common.mybatis.core.AbstractCrudService;
+import com.usky.common.security.utils.SecurityUtils;
 import com.usky.fire.domain.DemFileLabel;
 import com.usky.fire.domain.DemFireStatistics;
 import com.usky.fire.domain.DemFireStatisticsAttach;
@@ -15,9 +17,14 @@ import com.usky.fire.mapper.DemFireStatisticsMapper;
 import com.usky.fire.service.DemFileLabelService;
 import com.usky.fire.service.DemFireStatisticsAttachService;
 import com.usky.fire.service.DemFireStatisticsService;
+import com.usky.fire.service.util.OnlineMethod;
+import com.usky.fire.service.vo.DemFireStatisticsVo;
+import com.usky.fire.service.vo.ParameterVo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
+import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -41,7 +48,7 @@ public class DemFireStatisticsServiceImpl extends AbstractCrudService<DemFireSta
     private DemFileLabelService demFileLabelService;
 
     @Override
-    public CommonPage<Object> fireAccidentStatistic(String fireNumber, Integer labelId, Integer classifyId, Integer pageNum, Integer pageSize) {
+    public CommonPage<Object> fireAccidentStatistic(String fireNumber, Integer labelId, Integer classifyId, Integer id, Integer pageNum, Integer pageSize) {
         IPage<DemFireStatistics> page = new Page<>(pageNum, pageSize);
         LambdaQueryWrapper<DemFireStatistics> queryWrapper = Wrappers.lambdaQuery();
         queryWrapper.select(DemFireStatistics::getBurnedArea, DemFireStatistics::getDirectPropertyLoss, DemFireStatistics::getVictimNumber,
@@ -52,6 +59,7 @@ public class DemFireStatisticsServiceImpl extends AbstractCrudService<DemFireSta
                 .like(StringUtils.isNotBlank(fireNumber), DemFireStatistics::getFireNumber, fireNumber)
                 .eq(labelId != null && labelId != 0, DemFireStatistics::getLabelId, labelId)
                 .eq(classifyId != null & classifyId != 0, DemFireStatistics::getClassifyId, classifyId)
+                .eq(id != null & id != 0, DemFireStatistics::getId, id)
                 .orderByDesc(DemFireStatistics::getId);
         page = this.page(page, queryWrapper);
         List<Object> list = new ArrayList<>();
@@ -110,39 +118,162 @@ public class DemFireStatisticsServiceImpl extends AbstractCrudService<DemFireSta
         return new CommonPage<>(list, page.getTotal(), pageSize, pageNum);
     }
 
-
-    public void addLabel(DemFileLabel demFileLabel){
-        if (demFileLabel.getId()==0){
+    @Transactional
+    @Override
+    public void addLabel(DemFileLabel demFileLabel) {
+        if (demFileLabel.getId() == 0) {
+            int count = demFileLabelService.demFileLabelCount(0, demFileLabel.getLabelName(), 0);
+            if (count > 0) {
+                throw new BusinessException("标签名不可重复");
+            }
             demFileLabelService.addDemFileLabel(demFileLabel);
-        }else {
+        } else {
+            int count = demFileLabelService.demFileLabelCount(0, demFileLabel.getLabelName(), demFileLabel.getId());
+            if (count > 0) {
+                throw new BusinessException("标签名不可重复");
+            }
             demFileLabelService.updateDemFileLabel(demFileLabel);
         }
         int fid = demFileLabel.getId();
         List<DemFileLabel> demFileLabel1 = demFileLabel.getSubset();
-        if (CollectionUtils.isNotEmpty(demFileLabel1)){
+        if (CollectionUtils.isNotEmpty(demFileLabel1)) {
             List<DemFileLabel> demFileLabel2 = new ArrayList<>();
             List<DemFileLabel> demFileLabel3 = new ArrayList<>();
-            List<Integer> idList1 = new ArrayList<>();
-            List<Integer> idList2 = new ArrayList<>();
+            List<String> idList1 = new ArrayList<>();
+            List<String> idList2 = new ArrayList<>();
             for (int i = 0; i < demFileLabel1.size(); i++) {
-                if (demFileLabel1.get(i).getId()==0){
+                if (demFileLabel1.get(i).getId() == 0) {
                     demFileLabel2.add(demFileLabel1.get(i));
-                }else {
+                } else {
                     demFileLabel3.add(demFileLabel1.get(i));
-                    idList1.add(demFileLabel1.get(i).getId());
+                    idList1.add(demFileLabel1.get(i).getId() + "");
                 }
             }
             List<DemFileLabel> demFileLabels = demFileLabelService.demFileLabelList(fid, null, null);
-            if (CollectionUtils.isNotEmpty(demFileLabels)){
+            if (CollectionUtils.isNotEmpty(demFileLabels)) {
                 for (int i = 0; i < demFileLabels.size(); i++) {
-                    idList2.add(demFileLabels.get(i).getId());
+                    idList2.add(demFileLabels.get(i).getId() + "");
+                }
+            }
+            List<String> idlist = OnlineMethod.subList2(idList2, idList1);
+            if (CollectionUtils.isNotEmpty(idlist)) {
+                for (int i = 0; i < idlist.size(); i++) {
+                    demFileLabelService.delDemFileLabel(Integer.parseInt(idlist.get(i)));
                 }
             }
 
+            if (CollectionUtils.isNotEmpty(demFileLabel3)) {
+                for (int i = 0; i < demFileLabel3.size(); i++) {
+                    int count = demFileLabelService.demFileLabelCount(fid, demFileLabel3.get(i).getLabelName(), demFileLabel3.get(i).getId());
+                    if (count > 0) {
+                        throw new BusinessException("分类名不可重复");
+                    }
+                    demFileLabelService.updateDemFileLabel(demFileLabel3.get(i));
+                }
+            }
 
+            if (CollectionUtils.isNotEmpty(demFileLabel2)) {
+                for (int i = 0; i < demFileLabel2.size(); i++) {
+                    demFileLabel2.get(i).setFid(fid);
+                    int count = demFileLabelService.demFileLabelCount(fid, demFileLabel2.get(i).getLabelName(), 0);
+                    if (count > 0) {
+                        throw new BusinessException("分类名不可重复");
+                    }
+                    demFileLabelService.addDemFileLabel(demFileLabel2.get(i));
+                }
+            }
+        }
+    }
 
+    @Override
+    public CommonPage<Object> fireStatisticList(String fireNumber, String fireCauseType1, Integer pageNum, Integer pageSize) {
+        IPage<DemFireStatisticsAttach> page = new Page<>(pageNum, pageSize);
+        LambdaQueryWrapper<DemFireStatisticsAttach> queryWrapper = Wrappers.lambdaQuery();
+        queryWrapper.select(DemFireStatisticsAttach::getFireCauseType1, DemFireStatisticsAttach::getFireNumber,
+                DemFireStatisticsAttach::getId)
+                .like(StringUtils.isNotBlank(fireNumber), DemFireStatisticsAttach::getFireNumber, fireNumber)
+                .eq(StringUtils.isNotBlank(fireCauseType1), DemFireStatisticsAttach::getFireCauseType1, fireCauseType1)
+                .orderByDesc(DemFireStatisticsAttach::getId);
+        page = demFireStatisticsAttachService.page(page, queryWrapper);
+        List<Object> list = new ArrayList<>();
+        if (page.getTotal() > 0) {
+            LambdaQueryWrapper<DemFireStatistics> queryWrapper1 = Wrappers.lambdaQuery();
+            queryWrapper1.select(DemFireStatistics::getFireGrade, DemFireStatistics::getAdministrativeDivision,
+                    DemFireStatistics::getFireNumber, DemFireStatistics::getFireTime, DemFireStatistics::getId)
+                    .like(StringUtils.isNotBlank(fireNumber), DemFireStatistics::getFireNumber, fireNumber)
+                    .orderByDesc(DemFireStatistics::getId);
+            List<DemFireStatistics> list1 = this.list(queryWrapper1);
+            for (int i = 0; i < page.getTotal(); i++) {
+                Map<String, Object> map = new HashMap<>();
+                map.put("id", null);
+                map.put("administrativeDivision", null);
+                map.put("fireGrade", null);
+                map.put("fireTime", null);
+                map.put("zid", page.getRecords().get(i).getId());
+                map.put("fireCauseType1", page.getRecords().get(i).getFireCauseType1());
+                map.put("fireNumber", page.getRecords().get(i).getFireNumber());
+                for (int j = 0; j < list1.size(); j++) {
+                    if (page.getRecords().get(i).getFireNumber().equals(list1.get(j).getFireNumber())) {
+                        map.put("id", list1.get(j).getId());
+                        map.put("fireGrade", list1.get(j).getFireGrade());
+                        map.put("administrativeDivision", list1.get(j).getAdministrativeDivision());
+                        map.put("fireTime", list1.get(j).getFireTime());
+                    }
+                }
+                list.add(map);
+            }
         }
+        return new CommonPage<>(list, page.getTotal(), pageSize, pageNum);
+    }
 
+    @Transactional
+    @Override
+    public void bindingLabel(ParameterVo parameterVo) {
+        for (int i = 0; i < parameterVo.getIdList().size(); i++) {
+            DemFireStatistics demFireStatistics = new DemFireStatistics();
+            demFireStatistics.setId(parameterVo.getIdList().get(i));
+            demFireStatistics.setLabelId(parameterVo.getLabelId());
+            demFireStatistics.setClassifyId(parameterVo.getClassifyId());
+            this.updateById(demFireStatistics);
+        }
+    }
+
+
+    @Transactional
+    @Override
+    public void updateDemFireStatistics(DemFireStatisticsVo demFireStatisticsVo) {
+        DemFireStatistics demFireStatistics = new DemFireStatistics();
+        demFireStatistics.setId(demFireStatisticsVo.getId());
+        demFireStatistics.setFireGrade(demFireStatisticsVo.getFireGrade());
+        demFireStatistics.setFireAddress(demFireStatisticsVo.getFireAddress());
+        demFireStatistics.setBurnedArea(demFireStatisticsVo.getBurnedArea());
+        demFireStatistics.setAdministrativeDivision(demFireStatisticsVo.getAdministrativeDivision());
+        demFireStatistics.setFillTime(demFireStatisticsVo.getFireTime());
+        demFireStatistics.setClassifyId(demFireStatisticsVo.getClassifyId());
+        demFireStatistics.setDeathToll(demFireStatisticsVo.getDeathToll());
+        demFireStatistics.setFileCase(demFireStatisticsVo.getFileCase());
+        demFireStatistics.setDirectPropertyLoss(demFireStatisticsVo.getDirectPropertyLoss());
+        demFireStatistics.setLabelId(demFireStatisticsVo.getLabelId());
+        demFireStatistics.setInjuredNumber(demFireStatisticsVo.getInjuredNumber());
+        demFireStatistics.setSubordinateDetachment(demFireStatisticsVo.getSubordinateDetachment());
+        demFireStatistics.setVictimNumber(demFireStatisticsVo.getVictimNumber());
+        demFireStatistics.setUpdateTime(LocalDateTime.now());
+        demFireStatistics.setUpdatePerson(SecurityUtils.getUsername());
+        this.updateById(demFireStatistics);
+        DemFireStatisticsAttach demFireStatisticsAttach = new DemFireStatisticsAttach();
+        demFireStatisticsAttach.setId(demFireStatisticsVo.getZid());
+        demFireStatisticsAttach.setFireCauseType1(demFireStatisticsVo.getFireCauseType1());
+        demFireStatisticsAttach.setFireSiteType1(demFireStatisticsVo.getFireSiteType1());
+        demFireStatisticsAttach.setUpdateTime(LocalDateTime.now());
+        demFireStatisticsAttach.setUpdatePerson(SecurityUtils.getUsername());
+        demFireStatisticsAttachService.updateById(demFireStatisticsAttach);
+    }
+
+    @Transactional
+    @Override
+    public void delDemFireStatistics(Integer id, Integer zid) {
+        this.removeById(id);
+        demFireStatisticsAttachService.removeById(zid);
     }
 
 }

+ 42 - 7
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/util/OnlineMethod.java

@@ -13,45 +13,81 @@ import java.time.ZoneId;
 import java.time.format.DateTimeFormatter;
 import java.time.temporal.ChronoUnit;
 import java.util.*;
+import java.util.function.Function;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
+import java.util.stream.Collectors;
 
 public class OnlineMethod {
 
+    /**
+     * 差集(基于java8新特性)优化解法2 适用于大数据量
+     * 求List1中有的但是List2中没有的元素
+     */
+    public static List<String> subList2(List<String> list1, List<String> list2) {
+        Map<String, String> tempMap = list2.parallelStream().collect(Collectors.toMap(Function.identity(), Function.identity(), (oldData, newData) -> newData));
+        return list1.parallelStream().filter(str -> {
+            return !tempMap.containsKey(str);
+        }).collect(Collectors.toList());
+    }
+
+    /**
+     * 差集(基于常规解法)优化解法1 适用于中等数据量
+     * 求List1中有的但是List2中没有的元素
+     * 空间换时间降低时间复杂度
+     * 时间复杂度O(Max(list1.size(),list2.size()))
+     */
+    public static List<String> subList1(List<String> list1, List<String> list2) {
+        //空间换时间 降低时间复杂度
+        Map<String, String> tempMap = new HashMap<>();
+        for (String str : list2) {
+            tempMap.put(str, str);
+        }
+        //LinkedList 频繁添加删除 也可以ArrayList容量初始化为List1.size(),防止数据量过大时频繁扩容以及数组复制
+        List<String> resList = new LinkedList<>();
+        for (String str : list1) {
+            if (!tempMap.containsKey(str)) {
+                resList.add(str);
+            }
+        }
+        return resList;
+    }
+
     /**
      * 获取过去时间点
+     *
      * @param type
      * @return
      */
-    public static long getLastPeroid(int type, Date date){
+    public static long getLastPeroid(int type, Date date) {
 //        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 //        String day = format.format(Date);
         Calendar c = Calendar.getInstance();
-        if (0 == type){
+        if (0 == type) {
             //过去1天
             c.setTime(date);
             c.add(Calendar.DATE, -1);
             Date d = c.getTime();
             return d.getTime();
-        }else if (1 == type){
+        } else if (1 == type) {
             //过去7天
             c.setTime(date);
             c.add(Calendar.DATE, -7);
             Date d = c.getTime();
             return d.getTime();
-        }else if (2 == type){
+        } else if (2 == type) {
             //过去一月
             c.setTime(date);
             c.add(Calendar.MONTH, -1);
             Date m = c.getTime();
             return m.getTime();
-        }else if (3 == type){
+        } else if (3 == type) {
             //过去一年
             c.setTime(date);
             c.add(Calendar.YEAR, -1);
             Date y = c.getTime();
             return y.getTime();
-        }else if (4 == type){
+        } else if (4 == type) {
             //过去二十年
             c.setTime(date);
             c.add(Calendar.YEAR, -20);
@@ -67,7 +103,6 @@ public class OnlineMethod {
     }
 
 
-
     /**
      * 获取当前月的上一个月
      *

+ 116 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/vo/DemFireStatisticsVo.java

@@ -0,0 +1,116 @@
+package com.usky.fire.service.vo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 火灾统计表
+ * </p>
+ *
+ * @author JCB
+ * @since 2022-09-13
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class DemFireStatisticsVo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键ID
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 火灾序号
+     */
+    private String fireNumber;
+
+    /**
+     * 起火时间_日期型
+     */
+    private LocalDateTime fireTime;
+
+    /**
+     * 起火地点
+     */
+    private String fireAddress;
+
+    /**
+     * 直接财产损失
+     */
+    private String directPropertyLoss;
+
+    /**
+     * 过火面积
+     */
+    private String burnedArea;
+
+    /**
+     * 受灾人数
+     */
+    private String victimNumber;
+
+    /**
+     * 死亡人数
+     */
+    private String deathToll;
+
+    /**
+     * 受伤人数
+     */
+    private String injuredNumber;
+
+    /**
+     * 是否立案
+     */
+    private String fileCase;
+
+    /**
+     * 火灾等级
+     */
+    private String fireGrade;
+
+    /**
+     * 所属支队
+     */
+    private String subordinateDetachment;
+
+    /**
+     * 行政区域
+     */
+    private String administrativeDivision;
+
+    /**
+     * 标签ID
+     */
+    private Integer labelId;
+
+    /**
+     * 分类ID
+     */
+    private Integer classifyId;
+
+    /**
+     * 火灾原因分类(一级)
+     */
+    private String fireCauseType1;
+
+    /**
+     * 起火场所(一级)
+     */
+    private String fireSiteType1;
+
+    /**
+     * 关联表ID
+     */
+    private Integer zid;
+
+}

+ 29 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/vo/ParameterVo.java

@@ -0,0 +1,29 @@
+package com.usky.fire.service.vo;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author JCB
+ * @since 2022-07-12
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class ParameterVo implements Serializable {
+
+    private Integer labelId;
+
+    private Integer classifyId;
+
+    private List<Integer> idList;
+
+}