5 Commits 19de9629ea ... a458d5605f

Auteur SHA1 Bericht Datum
  xuxiaodong a458d5605f Merge branch '大屏统计' 7 maanden geleden
  xuxiaodong d7de5aafb5 [修复]添加外部接口获取单位 7 maanden geleden
  xuxiaodong 78dc32e343 Merge remote-tracking branch 'origin/master' 8 maanden geleden
  Mr.Yang dd61d8a34b 大屏统计sql 11 maanden geleden
  xuxiaodong 6d5a14bba6 [修复]直方图数据美化 1 jaar geleden

+ 23 - 0
zfjg-api/zfjg-api-manage/src/main/java/com/zfjg/manage/api/dto/statistics/CommonQueryDto.java

@@ -0,0 +1,23 @@
+package com.zfjg.manage.api.dto.statistics;
+
+import lombok.Data;
+
+/**
+ * @Author: Mr.Yang
+ * @CreateTime: 2024-02-27
+ * @Description:
+ */
+@Data
+public class CommonQueryDto {
+
+    /**
+     * 开始时间
+     */
+    private String startTime;
+
+    /**
+     * 结束时间
+     */
+    private String endTime;
+
+}

+ 16 - 0
zfjg-api/zfjg-api-manage/src/main/java/com/zfjg/manage/api/vo/DeptVo.java

@@ -0,0 +1,16 @@
+package com.zfjg.manage.api.vo;
+
+import lombok.Data;
+
+/**
+ * @Author: Mr.Yang
+ * @CreateTime: 2024-02-27
+ * @Description:
+ */
+@Data
+public class DeptVo {
+
+    private String enforceOrgId;
+    private String deptName;
+
+}

+ 11 - 0
zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/controller/api/ApiController.java

@@ -123,6 +123,17 @@ public class ApiController extends BaseController {
         return new TableInfo(enforceObjs);
     }
 
+
+    /**
+     * 以名称查询单位
+     */
+    @PostMapping("/enforces")
+    public TableInfo<List<EnforceObj>> pageEnForceObjs(@RequestParam String enforceObjName) {
+        startPage();
+        List<EnforceObj> enforceObjs = apiService.pageEnForceObjs(enforceObjName);
+        return new TableInfo(enforceObjs);
+    }
+
     @GetMapping("generateJob")
     public void ina(Long taskId) {
         taskGenerateService.generateEnforceJob(taskId);

+ 85 - 0
zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/controller/statistics/StatisticsController.java

@@ -0,0 +1,85 @@
+package com.zfjg.manage.controller.statistics;
+
+import com.zfjg.common.core.domain.R;
+import com.zfjg.manage.api.dto.statistics.CommonQueryDto;
+import com.zfjg.manage.api.vo.DeptVo;
+import com.zfjg.manage.service.statistics.StatisticsService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+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 java.util.List;
+
+/**
+ * @Author: Mr.Yang
+ * @CreateTime: 2024-02-27
+ * @Description:
+ */
+@RestController
+@RequestMapping("/statistics")
+@Api(tags = "大屏统计")
+@Slf4j
+public class StatisticsController {
+
+
+    @Autowired
+    private StatisticsService statisticsServiceImpl;
+
+    @ApiOperation(value = "部门列表")
+    @PostMapping("/deptList")
+    public R<List<DeptVo>> deptList() {
+        List<DeptVo> list = statisticsServiceImpl.deptList();
+        return R.ok(list);
+    }
+
+    @ApiOperation(value = "检查总数(家)")
+    @PostMapping("/jczs")
+    public R<Integer> jczs(@RequestBody CommonQueryDto commonQueryDto) {
+        int count = statisticsServiceImpl.jczs(commonQueryDto);
+        return R.ok(count);
+    }
+
+    /**
+     * 监督抽查(专项、日常)
+     * @param commonQueryDto
+     * @return
+     */
+    @ApiOperation(value = "监督抽查(家)")
+    @PostMapping("/jdcc")
+    public R<Integer> jdcc(@RequestBody CommonQueryDto commonQueryDto) {
+        int count = statisticsServiceImpl.jdcc(commonQueryDto);
+        return R.ok(count);
+    }
+
+
+
+
+    /**
+     * 限改通知(份)
+     * @param commonQueryDto
+     * @return
+     */
+    @ApiOperation(value = "限改通知(份)")
+    @PostMapping("/xgtz")
+    public R<Integer> xgtz(@RequestBody CommonQueryDto commonQueryDto) {
+        int count = statisticsServiceImpl.xgtz(commonQueryDto);
+        return R.ok(count);
+    }
+
+    /**
+     * 执法人员
+     * @param commonQueryDto
+     * @return
+     */
+    @ApiOperation(value = "执法人员")
+    @PostMapping("/zfry")
+    public R<Integer> zfry(@RequestBody CommonQueryDto commonQueryDto) {
+        int count = statisticsServiceImpl.zfry(commonQueryDto);
+        return R.ok(count);
+    }
+}

+ 67 - 0
zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/mapper/StatisticsMapper.java

@@ -0,0 +1,67 @@
+package com.zfjg.manage.mapper;
+
+import com.zfjg.manage.api.dto.statistics.CommonQueryDto;
+import com.zfjg.manage.api.vo.DeptVo;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+/**
+ * @Author: Mr.Yang
+ * @CreateTime: 2024-02-27
+ * @Description:
+ */
+@Mapper
+public interface StatisticsMapper {
+
+    /**
+     * 部门列表
+     *
+     * @return {@link List}<{@link DeptVo}>
+     */
+    List<DeptVo> deptList();
+
+    /**
+     * 监督抽查(专项、日常)
+     *
+     * @param commonQueryDto
+     * @return int
+     */
+    int selectJdcc(CommonQueryDto commonQueryDto);
+
+    /**
+     * 检查总数(家)
+     *
+     * @param commonQueryDto
+     * @return int
+     */
+    int selectJczs(CommonQueryDto commonQueryDto);
+
+
+    /**
+     * 举报投诉核查(次)
+     * @param commonQueryDto
+     * @return int
+     */
+    int selectJbtsjc(CommonQueryDto commonQueryDto);
+
+
+    /**
+     * 限改通知(份)
+     *
+     * @param commonQueryDto
+     * @return int
+     */
+    int selectXgtz(CommonQueryDto commonQueryDto);
+
+
+    /**
+     * 执法人员
+     *
+     * @param commonQueryDto
+     * @return int
+     */
+    int selectZfry(CommonQueryDto commonQueryDto);
+
+
+}

+ 2 - 0
zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/service/api/ApiService.java

@@ -9,4 +9,6 @@ import java.util.Map;
 
 public interface ApiService {
     List<EnforceObj> getEnforceObjs(EnforceObjSearch enforceObjDTO);
+
+    List<EnforceObj> pageEnForceObjs(String enforceObjName);
 }

+ 6 - 0
zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/service/impl/api/ApiServiceImpl.java

@@ -1,5 +1,6 @@
 package com.zfjg.manage.service.impl.api;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.zfjg.manage.api.domain.enforce.obj.EnforceObj;
 import com.zfjg.manage.api.dto.enforce.obj.EnforceObjDTO;
 import com.zfjg.manage.api.search.enforce.obj.EnforceObjSearch;
@@ -25,4 +26,9 @@ public class ApiServiceImpl implements ApiService {
         List<EnforceObj> enforceObjs = enforceObjMapper.getEnforceObjs(enforceObjDTO);
         return enforceObjs;
     }
+
+    @Override
+    public List<EnforceObj> pageEnForceObjs(String enforceObjName) {
+        return enforceObjMapper.selectList(new LambdaQueryWrapper<EnforceObj>().like(EnforceObj::getEnforceObjName, enforceObjName));
+    }
 }

+ 35 - 4
zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/service/impl/other/IHolidayCacheServiceImpl.java

@@ -2,8 +2,10 @@ package com.zfjg.manage.service.impl.other;
 
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import com.zfjg.common.core.exception.ServiceException;
 import com.zfjg.common.core.interfaces.IHolidayCacheService;
 import com.zfjg.common.core.utils.DateUtils;
+import com.zfjg.common.core.utils.SpringUtils;
 import com.zfjg.common.redis.service.RedisService;
 import lombok.SneakyThrows;
 import lombok.extern.slf4j.Slf4j;
@@ -11,9 +13,7 @@ import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
 import java.rmi.ServerException;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.Map;
+import java.util.*;
 
 /**
  * @author xxd
@@ -47,10 +47,13 @@ public class IHolidayCacheServiceImpl implements IHolidayCacheService {
                 cacheObject.put(dayDate, false);
             }
         }
+        HashMap<String, Object> lastTwoYears = this.getLastTwoYears();
+        cacheObject.putAll(lastTwoYears);
         redisService.setCacheMap(CACHE_KEY, cacheObject);
 
     }
 
+
     @SneakyThrows
     @Override
     public Boolean getHoliday(Date currentDay) {
@@ -62,6 +65,34 @@ public class IHolidayCacheServiceImpl implements IHolidayCacheService {
         if (cacheMap.containsKey(dateFormat)) {
             return (Boolean) cacheMap.get(dateFormat);
         }
-        throw new ServerException("获取节假日数据异常");
+        throw new ServerException("获取节假日数据异常: " + dateFormat);
+    }
+
+    /**
+     * 获取后两年的日期
+     */
+    private HashMap<String, Object> getLastTwoYears() {
+        HashMap<String, Object> objectHashMap = new HashMap<>();
+        Calendar instance = Calendar.getInstance();
+        Date time = instance.getTime();
+        String dateFormat = DateUtils.getDateFormat(time, "yyyy");
+        if (dateFormat == null) {
+            throw new ServiceException("获取当年yyyy出错" + time);
+        }
+        Integer i = Integer.parseInt(dateFormat);
+        String s1 = i + "-12-31 00:00:00";
+        Date date = DateUtils.transStrToDate(s1);
+        instance.setTime(date);
+        for (int j = 0; j < 750; j++) {
+            instance.add(Calendar.DAY_OF_MONTH, 1);
+            int i1 = instance.get(Calendar.DAY_OF_WEEK);
+            String dateFormatMap = DateUtils.getDateFormat(instance.getTime(), "yyyy-MM-dd");
+            if (i1 == Calendar.SATURDAY || i1 == Calendar.SUNDAY) {
+                objectHashMap.put(dateFormatMap, true);
+            } else {
+                objectHashMap.put(dateFormatMap, false);
+            }
+        }
+        return objectHashMap;
     }
 }

+ 87 - 0
zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/service/impl/statistics/StatisticsServiceImpl.java

@@ -0,0 +1,87 @@
+package com.zfjg.manage.service.impl.statistics;
+
+
+import com.zfjg.manage.api.dto.statistics.CommonQueryDto;
+import com.zfjg.manage.api.vo.DeptVo;
+import com.zfjg.manage.mapper.StatisticsMapper;
+import com.zfjg.manage.service.statistics.StatisticsService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * @Author: Mr.Yang
+ * @CreateTime: 2024-02-27
+ * @Description:
+ */
+@Service
+public class StatisticsServiceImpl implements StatisticsService {
+
+    @Resource
+    private StatisticsMapper statisticsMapper;
+    /**
+     * @return {@link List}<{@link DeptVo}>
+     */
+    @Override
+    public List<DeptVo> deptList() {
+        return statisticsMapper.deptList();
+    }
+
+
+    /**
+     * 检查总数
+     *
+     * @param commonQueryDto
+     * @return int
+     */
+    @Override
+    public int jczs(CommonQueryDto commonQueryDto) {
+        return statisticsMapper.selectJczs(commonQueryDto);
+    }
+    /**
+     * 监督抽查(专项、日常)
+     *
+     * @param commonQueryDto
+     * @return int
+     */
+    @Override
+    public int jdcc(CommonQueryDto commonQueryDto) {
+        return statisticsMapper.selectJdcc(commonQueryDto);
+    }
+
+    /**
+     * 举报投诉核查(次)
+     *
+     * @param commonQueryDto
+     * @return int
+     */
+    @Override
+    public int jbtsjc(CommonQueryDto commonQueryDto) {
+        return statisticsMapper.selectJbtsjc(commonQueryDto);
+    }
+
+
+    /**
+     * 限改通知(份)
+     *
+     * @param commonQueryDto
+     * @return int
+     */
+    @Override
+    public int xgtz(CommonQueryDto commonQueryDto) {
+        return statisticsMapper.selectXgtz(commonQueryDto);
+    }
+
+    /**
+     * 执法人员
+     *
+     * @param commonQueryDto
+     * @return int
+     */
+    @Override
+    public int zfry(CommonQueryDto commonQueryDto) {
+        return statisticsMapper.selectZfry(commonQueryDto);
+    }
+
+}

+ 63 - 0
zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/service/statistics/StatisticsService.java

@@ -0,0 +1,63 @@
+package com.zfjg.manage.service.statistics;
+
+import com.zfjg.common.core.domain.R;
+import com.zfjg.manage.api.dto.statistics.CommonQueryDto;
+import com.zfjg.manage.api.vo.DeptVo;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import java.util.List;
+
+/**
+ * @Author: Mr.Yang
+ * @CreateTime: 2024-02-27
+ * @Description:
+ */
+public interface StatisticsService {
+
+    /**
+     * @return {@link List}<{@link DeptVo}>
+     */
+    List<DeptVo> deptList();
+
+    /**
+     * 检查总数
+     *
+     * @param commonQueryDto
+     * @return int
+     */
+    int jczs(@RequestBody CommonQueryDto commonQueryDto);
+
+    /**
+     * 监督抽查(专项、日常)
+     *
+     * @param commonQueryDto
+     * @return int
+     */
+    int jdcc(CommonQueryDto commonQueryDto);
+
+    /**
+     * 举报投诉核查(次)
+     *
+     * @param commonQueryDto
+     * @return int
+     */
+    int jbtsjc(CommonQueryDto commonQueryDto);
+
+    /**
+     * 限改通知(份)
+     *
+     * @param commonQueryDto
+     * @return int
+     */
+    int xgtz(CommonQueryDto commonQueryDto);
+
+
+    /**
+     * 执法人员
+     *
+     * @param commonQueryDto
+     * @return int
+     */
+    int zfry(CommonQueryDto commonQueryDto);
+
+}

+ 51 - 0
zfjg-modules/zfjg-manage/src/main/resources/mapper/StatisticsMapper.xml

@@ -0,0 +1,51 @@
+<?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.zfjg.manage.mapper.StatisticsMapper">
+
+
+    <select id="deptList" resultType="com.zfjg.manage.api.vo.DeptVo">
+        SELECT enforce_org_id, dept_name FROM sys_dept WHERE dept_name!='测试支队'
+    </select>
+
+
+    <select id="selectJdcc" resultType="int" parameterType="com.zfjg.manage.api.dto.statistics.CommonQueryDto">
+        SELECT COUNT(DISTINCT enforce_obj_id ) countObj FROM enforce_job  WHERE is_deleted = 0 AND job_type IN ('NORMAL','SPECIAL')
+        <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
+            and DATE_FORMAT(create_time,'%Y-%m-%d %H:%i:%s') between #{startTime} and #{endTime}
+        </if>
+    </select>
+
+
+    <select id="selectJczs" resultType="int" parameterType="com.zfjg.manage.api.dto.statistics.CommonQueryDto">
+        SELECT COUNT(DISTINCT enforce_obj_id ) countObj FROM enforce_job WHERE is_deleted = 0 AND job_type != 'BRIGADE'
+        <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
+            and DATE_FORMAT(create_time,'%Y-%m-%d %H:%i:%s') between #{startTime} and #{endTime}
+        </if>
+    </select>
+
+<!--    举报投诉核查(次)-->
+    <select id="selectJbtsjc" resultType="int">
+        SELECT COUNT(id) countObj FROM enforce_job  WHERE is_deleted = 0 AND job_type IN ('REPORT')
+        <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
+            and DATE_FORMAT(create_time,'%Y-%m-%d %H:%i:%s') between #{startTime} and #{endTime}
+        </if>
+    </select>
+
+
+
+
+
+
+
+
+    <select id="selectXgtz" resultType="int">
+            SELECT COUNT(id) FROM enforce_job WHERE immediately_file_id IS NOT NULL AND is_deleted = 0
+        <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
+            and DATE_FORMAT(create_time,'%Y-%m-%d %H:%i:%s') between #{startTime} and #{endTime}
+        </if>
+    </select>
+
+    <select id="selectZfry" resultType="int">
+        SELECT COUNT(user_id) FROM sys_user WHERE `status` = 0 AND del_flag = 0
+    </select>
+</mapper>

+ 44 - 11
zfjg-modules/zfjg-manage/src/test/java/com/zfjg/manage/ObjSyncHospitalTest.java

@@ -4,6 +4,8 @@ import cn.hutool.core.io.FileUtil;
 import cn.hutool.core.map.MapUtil;
 import com.alibaba.fastjson2.JSON;
 import com.alibaba.fastjson2.TypeReference;
+import com.zfjg.common.core.exception.ServiceException;
+import com.zfjg.common.core.interfaces.IHolidayCacheService;
 import com.zfjg.common.core.utils.DateUtils;
 import com.zfjg.manage.api.domain.enforce.obj.EnforceObj;
 import com.zfjg.manage.task.obj.chian.*;
@@ -11,7 +13,9 @@ import com.zfjg.manage.task.obj.hospital.ObjSyncGeneralHospital;
 import com.zfjg.manage.task.obj.hospital.ObjSyncSpecializedHospital;
 import com.zfjg.manage.task.obj.hospital.ObjSyncTcmHospital;
 import lombok.Data;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.RandomStringUtils;
+import org.junit.jupiter.api.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.cglib.beans.BeanMap;
@@ -21,10 +25,11 @@ import java.io.File;
 import java.io.InputStream;
 import java.net.URL;
 import java.nio.charset.Charset;
+import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.concurrent.CountDownLatch;
 
-
+@Slf4j
 @SpringBootTest
 public class ObjSyncHospitalTest {
 
@@ -36,7 +41,9 @@ public class ObjSyncHospitalTest {
 
     @Autowired
     private ObjSyncGeneralHospital generalHospital;
-
+    @Autowired
+    private IHolidayCacheService holidayCacheService;
+    private static SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
 
 
     /**
@@ -59,10 +66,35 @@ public class ObjSyncHospitalTest {
      * 测试同步综合医院单位
      */
 //    @Test
-    public void test_sync_generalHospital() {  generalHospital.runTask(); }
+    public void test_sync_generalHospital() {
+        generalHospital.runTask();
+    }
 
+    @Test
+    public void testWorkTimeUtils() throws Exception {
+        Calendar instance = Calendar.getInstance();
+        instance.set(Calendar.MONTH, Calendar.JANUARY);
+        instance.set(Calendar.DAY_OF_MONTH, 1);
+
+        for (int i = 0; i < 365; i++) {
+            System.out.println(i);
+            instance.add(Calendar.DAY_OF_MONTH, 1);
+            Date date = instance.getTime();
+            System.out.println(DateUtils.getDateFormat(date, "yyyy-MM-dd HH:mm:ss"));
+            try {
+                //此用引用了新节假日
+                String workDays = DateUtils.getWorkDays(date, 3, holidayCacheService);
+                date = format.parse(workDays);
+            } catch (Exception exception) {
+                exception.printStackTrace();
+                log.error("获取3个工作日后的日期失败", exception);
+                throw new ServiceException("获取3个工作日后的日期失败");
+            }
+            DateUtils.getWorkDays(date, 3, holidayCacheService);
+        }
+    }
 
-    private <T> T  readJSONUseCase(String caseName, TypeReference<T> typeReference) {
+    private <T> T readJSONUseCase(String caseName, TypeReference<T> typeReference) {
         URL resource = Thread.currentThread().getContextClassLoader().getResource(caseName);
         String content = FileUtil.readString(new File(resource.getPath()), Charset.forName("UTF-8"));
         return JSON.parseObject(content, typeReference);
@@ -105,14 +137,14 @@ public class ObjSyncHospitalTest {
             }
 
             dealOrgParamChain.dealOrgParam(DealOrgParamChainHandler.Context.builder()
-                            .params(params)
-                            .obj(enforceObj)
+                    .params(params)
+                    .obj(enforceObj)
                     .build());
-            System.out.println(enforceObj.getEnforceOrgName() + "====(" + item.getValue()+")");
+            System.out.println(enforceObj.getEnforceOrgName() + "====(" + item.getValue() + ")");
             Assert.isTrue(enforceObj.getEnforceOrgName().equals(item.getValue()), "解析错误!机构应该是 => " + item.getValue());
         });
 
-;
+        ;
     }
 
 
@@ -121,7 +153,8 @@ public class ObjSyncHospitalTest {
      */
     //@Test
     public void test_sync_to_db() {
-        List<EnforceObj> list = readJSONUseCase("objs.json", new TypeReference<List<EnforceObj>>() {});
+        List<EnforceObj> list = readJSONUseCase("objs.json", new TypeReference<List<EnforceObj>>() {
+        });
         specializedHospital.rsyncBatch(list);
     }
 
@@ -154,8 +187,8 @@ public class ObjSyncHospitalTest {
             }
         });
         dealOrgParamChain.dealOrgParam(DealOrgParamChainHandler.Context.builder()
-                        .params(new HashMap<>())
-                        .obj(new EnforceObj())
+                .params(new HashMap<>())
+                .obj(new EnforceObj())
                 .build());
     }