Explorar o código

企业自主管理-历史案件相关接口开发

jichaobo %!s(int64=2) %!d(string=hai) anos
pai
achega
5dc148ad0b

+ 1 - 1
service-fire/service-fire-biz/src/main/java/com/usky/fire/controller/MybatisGeneratorUtils.java

@@ -71,7 +71,7 @@ public class MybatisGeneratorUtils {
         // strategy.setTablePrefix("t_"); // 表名前缀
         strategy.setEntityLombokModel(true); //使用lombok
         //修改自己想要生成的表
-        strategy.setInclude("bsc_enterprise_street_town");  // 逆向工程使用的表   如果要生成多个,这里可以传入String[]
+        strategy.setInclude("dem_case");  // 逆向工程使用的表   如果要生成多个,这里可以传入String[]
         mpg.setStrategy(strategy);
 
         // 关闭默认 xml 生成,调整生成 至 根目录

+ 67 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/controller/web/DemCaseController.java

@@ -0,0 +1,67 @@
+package com.usky.fire.controller.web;
+
+
+import com.usky.common.core.bean.ApiResult;
+import com.usky.common.core.bean.CommonPage;
+import com.usky.fire.domain.DemCase;
+import com.usky.fire.service.DemCaseService;
+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 java.util.Map;
+
+/**
+ * <p>
+ * 设备案件 前端控制器
+ * </p>
+ *
+ * @author JCB
+ * @since 2022-10-12
+ */
+@RestController
+@RequestMapping("/demCase")
+public class DemCaseController {
+
+    @Autowired
+    private DemCaseService demCaseService;
+
+    /**
+     * 企业自主管理-历史案件-列表查询
+     *
+     * @param streetTown  街镇
+     * @param companyName 单位名称
+     * @param deviceType  设备类型
+     * @param id          主键ID
+     * @param pageNum     当前页
+     * @param pageSize    每页条数
+     * @return
+     */
+    @GetMapping("caseList")
+    public ApiResult<CommonPage<DemCase>> caseList(@RequestParam(value = "streetTown", required = false) String streetTown,
+                                                   @RequestParam(value = "companyName", required = false) String companyName,
+                                                   @RequestParam(value = "deviceType", required = false) String deviceType,
+                                                   @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(demCaseService.caseList(streetTown, companyName, deviceType, id, pageNum, pageSize));
+    }
+
+    /**
+     * 企业自主管理-历史案件-统计
+     *
+     * @param streetTown 街镇
+     * @param companyId  单位ID
+     * @return
+     */
+    @GetMapping("caseStatistics")
+    public ApiResult<Map<String, Object>> caseStatistics(@RequestParam(value = "streetTown", required = false) String streetTown,
+                                                         @RequestParam(value = "companyId", required = false) String companyId) {
+        return ApiResult.success(demCaseService.caseStatistics(streetTown, companyId));
+    }
+
+
+}
+

+ 113 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/domain/DemCase.java

@@ -0,0 +1,113 @@
+package com.usky.fire.domain;
+
+import java.time.LocalDateTime;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 设备案件
+ * </p>
+ *
+ * @author JCB
+ * @since 2022-10-12
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class DemCase implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 案件编号
+     */
+    private Long id;
+
+    /**
+     * 发生时间
+     */
+    private LocalDateTime createTime;
+
+    /**
+     * 案件类型
+     */
+    private String caseType;
+
+    /**
+     * 所属街道
+     */
+    private String street;
+
+    /**
+     * 案发地址
+     */
+    private String address;
+
+    /**
+     * 网格
+     */
+    private String grid;
+
+    /**
+     * 案件描述
+     */
+    private String caseDescribe;
+
+    /**
+     * 责任部门
+     */
+    private String dutyGroup;
+
+    /**
+     * 0立案1派遣2处理3结案
+     */
+    private Integer caseFlag;
+
+    /**
+     * 截止时间
+     */
+    private LocalDateTime endTime;
+
+    /**
+     * 附件
+     */
+    private String enclosure;
+
+    /**
+     * 图片
+     */
+    private String image;
+
+    /**
+     * 设备编号
+     */
+    private String deviceCode;
+
+    /**
+     * 设备类型
+     */
+    private String deviceType;
+
+    /**
+     * 处理人
+     */
+    private String disposePerson;
+
+    /**
+     * 处理电话
+     */
+    private String disposePhone;
+
+    /**
+     * 责任人
+     */
+    private String chargePerson;
+
+    /**
+     * 责任电话
+     */
+    private String chargePhone;
+
+
+}

+ 16 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/mapper/DemCaseMapper.java

@@ -0,0 +1,16 @@
+package com.usky.fire.mapper;
+
+import com.usky.fire.domain.DemCase;
+import com.usky.common.mybatis.core.CrudMapper;
+
+/**
+ * <p>
+ * 设备案件 Mapper 接口
+ * </p>
+ *
+ * @author JCB
+ * @since 2022-10-12
+ */
+public interface DemCaseMapper extends CrudMapper<DemCase> {
+
+}

+ 80 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/DemCaseService.java

@@ -0,0 +1,80 @@
+package com.usky.fire.service;
+
+import com.usky.common.core.bean.CommonPage;
+import com.usky.common.mybatis.core.CrudService;
+import com.usky.fire.domain.BaseCompany;
+import com.usky.fire.domain.DemCase;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 设备案件 服务类
+ * </p>
+ *
+ * @author JCB
+ * @since 2022-10-12
+ */
+public interface DemCaseService extends CrudService<DemCase> {
+
+    /**
+     * 企业自主管理-历史案件-列表查询
+     *
+     * @param streetTown  街镇
+     * @param companyName 单位名称
+     * @param deviceType  设备类型
+     * @param id          主键ID
+     * @param pageNum     当前页
+     * @param pageSize    每页条数
+     * @return
+     */
+    CommonPage<DemCase> caseList(String streetTown, String companyName, String deviceType, Integer id, Integer pageNum, Integer pageSize);
+
+    /**
+     * 企业自主管理-历史案件-统计
+     *
+     * @param streetTown 街镇
+     * @param companyId  单位ID
+     * @return
+     */
+    Map<String, Object> caseStatistics(String streetTown, String companyId);
+
+    /**
+     * 根据街镇单位ID查询不同状态下案件数据量
+     *
+     * @param streetTown 街镇
+     * @param companyId  单位ID
+     * @param caseFlag   0立案1派遣2处理3结案
+     * @return
+     */
+    Integer caseCount(String streetTown, String companyId, Integer caseFlag);
+
+    /**
+     * 根据设备状态获取设备数量
+     *
+     * @param deviceCodeList 设备编号
+     * @param deviceStatus   设备状态(0:离线、1:正常、2:故障、3:告警)
+     * @return
+     */
+    int deviceStatusCount(List<String> deviceCodeList, Integer deviceStatus);
+
+    /**
+     * 根据街区单位获取单位信息
+     *
+     * @param streetTown 街镇
+     * @param companyId  单位ID
+     * @return
+     */
+    List<BaseCompany> companyList(String streetTown, String companyId);
+
+    /**
+     * 根据街区单位获取不同类型的设备编号
+     *
+     * @param streetTown 街镇
+     * @param companyId  单位ID
+     * @param deviceType 设备类型
+     * @return
+     */
+    List<String> deviceList(String streetTown, String companyId, Integer deviceType);
+}

+ 31 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/impl/BscEnterpriseAutonomyServiceImpl.java

@@ -65,6 +65,12 @@ public class BscEnterpriseAutonomyServiceImpl extends AbstractCrudService<BscEnt
     @Autowired
     private BscEnterpriseStreetTownService bscEnterpriseStreetTownService;
 
+    @Autowired
+    private BaseCompanyPersonService baseCompanyPersonService;
+
+    @Autowired
+    private BaseCompanyAttach1Service baseCompanyAttach1Service;
+
     @Override
     public Object enterpriseAutonomy(String moduleType, String dataType) {
         LambdaQueryWrapper<BscEnterpriseAutonomy> queryWrapper = Wrappers.lambdaQuery();
@@ -127,6 +133,31 @@ public class BscEnterpriseAutonomyServiceImpl extends AbstractCrudService<BscEnt
     }
 
 
+    public void erpData(String companyId) {
+        LambdaQueryWrapper<BaseCompany> queryWrapper1 = Wrappers.lambdaQuery();
+        queryWrapper1.select(BaseCompany::getId, BaseCompany::getCompanyId, BaseCompany::getCompanyName, BaseCompany::getFoundTime,
+                BaseCompany::getCompanyType, BaseCompany::getLinkPhone, BaseCompany::getAddress, BaseCompany::getOrganization,
+                BaseCompany::getCompanyNature)
+                .eq(BaseCompany::getEnable, 0)
+                .eq(BaseCompany::getCompanyId, companyId)
+                .orderByDesc(BaseCompany::getId);
+        List<BaseCompany> list1 = baseCompanyService.list(queryWrapper1);
+
+        LambdaQueryWrapper<BaseCompanyPerson> queryWrapper2 = Wrappers.lambdaQuery();
+        queryWrapper2.select(BaseCompanyPerson::getCompanyId, BaseCompanyPerson::getDelegateName, BaseCompanyPerson::getFireManageName,
+                BaseCompanyPerson::getFireDutyName)
+                .eq(BaseCompanyPerson::getCompanyId, companyId);
+        List<BaseCompanyPerson> list2 = baseCompanyPersonService.list(queryWrapper2);
+
+        LambdaQueryWrapper<BaseCompanyAttach1> queryWrapper3 = Wrappers.lambdaQuery();
+        queryWrapper3.select(BaseCompanyAttach1::getCompanyId, BaseCompanyAttach1::getBuildArea, BaseCompanyAttach1::getEmployeeNum)
+                .eq(BaseCompanyAttach1::getCompanyId, companyId);
+        List<BaseCompanyAttach1> list3 = baseCompanyAttach1Service.list(queryWrapper3);
+
+
+    }
+
+
     @Override
     public Map<String, Object> enterpriseAutonomyData() {
         String LastMonthDate = OnlineMethod.getLastMonth(new Date());

+ 170 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/impl/DemCaseServiceImpl.java

@@ -0,0 +1,170 @@
+package com.usky.fire.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+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.mybatis.core.AbstractCrudService;
+import com.usky.fire.domain.BaseCompany;
+import com.usky.fire.domain.BaseDevice;
+import com.usky.fire.domain.BaseDeviceStatus;
+import com.usky.fire.domain.DemCase;
+import com.usky.fire.mapper.DemCaseMapper;
+import com.usky.fire.service.BaseCompanyService;
+import com.usky.fire.service.BaseDeviceService;
+import com.usky.fire.service.BaseDeviceStatusService;
+import com.usky.fire.service.DemCaseService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 设备案件 服务实现类
+ * </p>
+ *
+ * @author JCB
+ * @since 2022-10-12
+ */
+@Service
+public class DemCaseServiceImpl extends AbstractCrudService<DemCaseMapper, DemCase> implements DemCaseService {
+
+    @Autowired
+    private BaseDeviceService baseDeviceService;
+
+    @Autowired
+    private BaseCompanyService baseCompanyService;
+
+    @Autowired
+    private BaseDeviceStatusService baseDeviceStatusService;
+
+    @Override
+    public CommonPage<DemCase> caseList(String streetTown, String companyName, String deviceType,Integer id, Integer pageNum, Integer pageSize) {
+        IPage<DemCase> page = new Page<>(pageNum, pageSize);
+        LambdaQueryWrapper<DemCase> queryWrapper = Wrappers.lambdaQuery();
+        queryWrapper.eq(StringUtils.isNotBlank(deviceType), DemCase::getDeviceType, deviceType)
+                .eq(StringUtils.isNotBlank(streetTown), DemCase::getStreet, streetTown)
+                .eq(StringUtils.isNotBlank(companyName), DemCase::getDutyGroup, companyName)
+                .orderByDesc(DemCase::getId);
+        page = this.page(page, queryWrapper);
+        return new CommonPage<>(page.getRecords(), page.getTotal(), pageSize, pageNum);
+    }
+
+    @Override
+    public Map<String, Object> caseStatistics(String streetTown, String companyId) {
+        int deviceCount = 0;
+        int onLineDeviceCount = 0;
+        int caseCount = 0;
+        int handleCaseCount = 0;
+        int closureCaseCount = 0;
+        List<String> deviceCodeList = this.deviceList(streetTown, companyId, 2);
+        if (CollectionUtils.isNotEmpty(deviceCodeList)) {
+            this.deviceStatusCount(deviceCodeList, 1);
+        }
+        deviceCount = deviceCodeList.size();
+        caseCount = caseCount(streetTown, companyId, null);
+        handleCaseCount = caseCount(streetTown, companyId, 2);
+        closureCaseCount = caseCount(streetTown, companyId, 3);
+
+        Map<String, Object> map = new HashMap<>();
+        map.put("deviceCount", deviceCount);
+        if (onLineDeviceCount != 0 && deviceCount != 0) {
+            map.put("onLineDeviceRatio", onLineDeviceCount / deviceCount);
+        } else {
+            map.put("onLineDeviceRatio", "0%");
+        }
+
+        if (handleCaseCount != 0 && caseCount != 0) {
+            map.put("handleCaseRatio", handleCaseCount / caseCount + "%");
+        } else {
+            map.put("handleCaseRatio", "0%");
+        }
+
+        if (closureCaseCount != 0 && caseCount != 0) {
+            map.put("closureCaseRatio", closureCaseCount / caseCount + "%");
+        } else {
+            map.put("closureCaseRatio", "0%");
+        }
+        return map;
+    }
+
+    @Override
+    public Integer caseCount(String streetTown, String companyId, Integer caseFlag) {
+        List<String> companyNameList = new ArrayList<>();
+        if (StringUtils.isNotBlank(streetTown)||StringUtils.isNotBlank(companyId)){
+            List<BaseCompany> companyList = this.companyList(streetTown, companyId);
+            if (CollectionUtils.isNotEmpty(companyList)) {
+                for (int i = 0; i < companyList.size(); i++) {
+                    companyNameList.add(companyList.get(i).getCompanyName());
+                }
+            }
+        }
+
+        LambdaQueryWrapper<DemCase> queryWrapper = Wrappers.lambdaQuery();
+        queryWrapper.eq(StringUtils.isNotBlank(streetTown), DemCase::getStreet, streetTown)
+                .in(CollectionUtils.isNotEmpty(companyNameList), DemCase::getDutyGroup, companyNameList)
+                .eq(caseFlag != null, DemCase::getCaseFlag, caseFlag);
+        int count = this.count(queryWrapper);
+        return count;
+    }
+
+
+    @Override
+    public int deviceStatusCount(List<String> deviceCodeList, Integer deviceStatus) {
+        LambdaQueryWrapper<BaseDeviceStatus> queryWrapper = Wrappers.lambdaQuery();
+        queryWrapper.eq(CollectionUtils.isNotEmpty(deviceCodeList), BaseDeviceStatus::getDeviceCode, deviceCodeList)
+                .eq(deviceStatus != null, BaseDeviceStatus::getDeviceStatus, deviceStatus);
+        int count = baseDeviceStatusService.count(queryWrapper);
+        return count;
+    }
+
+    @Override
+    public List<BaseCompany> companyList(String streetTown, String companyId) {
+        LambdaQueryWrapper<BaseCompany> queryWrapper = Wrappers.lambdaQuery();
+        queryWrapper.select(BaseCompany::getCompanyId, BaseCompany::getCompanyName)
+                .eq(StringUtils.isNotBlank(streetTown), BaseCompany::getStreetTown, streetTown)
+                .eq(StringUtils.isNotBlank(companyId), BaseCompany::getCompanyId, companyId)
+                .eq(BaseCompany::getEnable, 0)
+                .orderByDesc(BaseCompany::getId);
+        List<BaseCompany> companyList = baseCompanyService.list(queryWrapper);
+        return companyList;
+    }
+
+
+    @Override
+    public List<String> deviceList(String streetTown, String companyId, Integer deviceType) {
+        List<String> companyIdList = new ArrayList<>();
+        if (StringUtils.isNotBlank(streetTown)) {
+            List<BaseCompany> companyList = this.companyList(streetTown, null);
+            if (CollectionUtils.isNotEmpty(companyList)) {
+                for (int i = 0; i < companyList.size(); i++) {
+                    companyIdList.add(companyList.get(i).getCompanyId());
+                }
+            }
+        } else if (StringUtils.isNotBlank(companyId)) {
+            companyIdList.add(companyId);
+        }
+
+        LambdaQueryWrapper<BaseDevice> queryWrapper = Wrappers.lambdaQuery();
+        queryWrapper.select(BaseDevice::getDeviceType, BaseDevice::getDeviceCode)
+                .eq(BaseDevice::getEnable, 1)
+                .eq(deviceType != null && deviceType != 0, BaseDevice::getDeviceType, deviceType)
+                .in(CollectionUtils.isNotEmpty(companyIdList), BaseDevice::getCompanyId, companyIdList);
+        List<BaseDevice> deviceList = baseDeviceService.list(queryWrapper);
+        List<String> deviceCodeList = new ArrayList<>();
+        if (CollectionUtils.isNotEmpty(deviceList)) {
+            for (int i = 0; i < deviceList.size(); i++) {
+                deviceCodeList.add(deviceList.get(i).getDeviceCode());
+            }
+        }
+        return deviceCodeList;
+    }
+
+}

+ 27 - 0
service-fire/service-fire-biz/src/main/resources/mapper/fire/DemCaseMapper.xml

@@ -0,0 +1,27 @@
+<?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.usky.fire.mapper.DemCaseMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.usky.fire.domain.DemCase">
+        <id column="id" property="id" />
+        <result column="create_time" property="createTime" />
+        <result column="case_type" property="caseType" />
+        <result column="street" property="street" />
+        <result column="address" property="address" />
+        <result column="grid" property="grid" />
+        <result column="case_describe" property="caseDescribe" />
+        <result column="duty_group" property="dutyGroup" />
+        <result column="case_flag" property="caseFlag" />
+        <result column="end_time" property="endTime" />
+        <result column="enclosure" property="enclosure" />
+        <result column="image" property="image" />
+        <result column="device_code" property="deviceCode" />
+        <result column="device_type" property="deviceType" />
+        <result column="dispose_person" property="disposePerson" />
+        <result column="dispose_phone" property="disposePhone" />
+        <result column="charge_person" property="chargePerson" />
+        <result column="charge_phone" property="chargePhone" />
+    </resultMap>
+
+</mapper>