瀏覽代碼

核酸一键对比完善

LIVE_YE 2 年之前
父節點
當前提交
d25c3ae5cf

+ 6 - 2
ruoyi-admin/src/main/java/com/ruoyi/web/controller/info/KeyPeopleInfoController.java

@@ -67,8 +67,12 @@ public class KeyPeopleInfoController extends BaseController
     @Log(title = "导入重点人群信息", businessType = BusinessType.IMPORT)
     @PreAuthorize("@ss.hasPermi('keyPeople:info:import')")
     @PostMapping("/importData")
-    public AjaxResult importData(MultipartFile file) throws Exception {
+    public AjaxResult importData(MultipartFile file, String jobStyle, String focusCrowdStyle) throws Exception {
         ExcelUtil<KeyPeopleInfo> util = new ExcelUtil<KeyPeopleInfo>(KeyPeopleInfo.class);
+
+        if(StringUtils.isEmpty(jobStyle) && StringUtils.isEmpty(focusCrowdStyle)){
+            return AjaxResult.error("参数错误,请将参数填写完整");
+        }
         List<KeyPeopleInfo> userList = util.importExcel(file.getInputStream());
         SysUser user = SecurityUtils.getLoginUser().getUser();
         if (userList == null) {
@@ -91,7 +95,7 @@ public class KeyPeopleInfoController extends BaseController
         if (StringUtils.isNotEmpty(sb.toString())) {
             return AjaxResult.error("操作失败,以下人员身份证格式错误【" + sb.toString() + "】");
         }
-        keyPeopleInfoService.importUser(userList);
+        keyPeopleInfoService.importUser(userList,jobStyle,focusCrowdStyle);
         return AjaxResult.success("正在处理中,请稍后刷新页面");
     }
 

+ 4 - 0
ruoyi-system/src/main/java/com/ruoyi/system/mapper/UserInfoMapper.java

@@ -67,4 +67,8 @@ public interface UserInfoMapper
     void insertUserInfoList(@Param("userList")List<UserInfo> userList);
 
     void insertUserInfoOne(UserInfo userInfo);
+
+    UserInfo selectUserInfoNew(Long deptId);
+
+    List<String> selectUserInfoByEndTime(@Param("endTime")String endTime,@Param("deptId")Long deptId);
 }

+ 2 - 0
ruoyi-system/src/main/java/com/ruoyi/system/mapper/UserNucleicTimeMapper.java

@@ -96,4 +96,6 @@ public interface UserNucleicTimeMapper
     public int getHeSuanCount(Long deptId);
 
     void insertUserNucleicTimeList(@Param("userNucleicTimeList")List<UserNucleicTime> userNucleicTimeList);
+
+    int getHeSuanCountNow(@Param("deptId")Long deptId, @Param("userInfoIdCard")List<String> userInfoIdCard);
 }

+ 1 - 1
ruoyi-system/src/main/java/com/ruoyi/system/service/IKeyPeopleInfoService.java

@@ -66,5 +66,5 @@ public interface IKeyPeopleInfoService
      * @param keyPeopleList
      * @return
      */
-    public void importUser(List<KeyPeopleInfo> keyPeopleList);
+    public void importUser(List<KeyPeopleInfo> keyPeopleList, String jobStyle, String focusCrowdStyle);
 }

+ 2 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/IUserNucleicTimeService.java

@@ -80,4 +80,6 @@ public interface IUserNucleicTimeService
     public int getHeSuanCount(Long deptId);
 
     List<UserNucleicTime> homeList();
+
+    int getHeSuanCountNow(Long deptId, List<String> userInfoIdCard);
 }

+ 1 - 1
ruoyi-system/src/main/java/com/ruoyi/system/service/Task.java

@@ -38,7 +38,7 @@ public class Task {
     /***
      * 邮件发送(定时比对数据后发送邮件)
      */
-    //@Scheduled(cron = "0 0/30 * * * ? ")
+    @Scheduled(cron = "0 0/30 * * * ? ")
     public void thirdNucleicAcid() {
         try {
             SysDept dept = new SysDept();

+ 17 - 1
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/IndexServiceImpl.java

@@ -5,7 +5,9 @@ import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.core.domain.entity.SysDictData;
 import com.ruoyi.common.core.redis.RedisCache;
 import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.system.domain.UserInfo;
 import com.ruoyi.system.domain.UserNucleicTime;
+import com.ruoyi.system.mapper.UserInfoMapper;
 import com.ruoyi.system.service.ISysDictDataService;
 import com.ruoyi.system.service.ISysDictTypeService;
 import com.ruoyi.system.service.IUserNucleicTimeService;
@@ -37,6 +39,9 @@ public class IndexServiceImpl implements IIndexService {
 
     @Autowired
     private ISysDictTypeService dictTypeService;
+
+    @Autowired
+    private UserInfoMapper userInfoMapper;
     /**
      * 后台首页统计本月核酸人数,本周人数,对比上周人数
      * @return
@@ -88,6 +93,17 @@ public class IndexServiceImpl implements IIndexService {
     @Override
     public AjaxResult getHeSuanCount(Long deptId) {
         int heSuanCount = userNucleicTimeService.getHeSuanCount(deptId);
-        return AjaxResult.success(heSuanCount);
+
+        //查询最近一次的数据
+        UserInfo user = userInfoMapper.selectUserInfoNew(deptId);
+        List<String> userInfoIdCard = userInfoMapper.selectUserInfoByEndTime(user.getEndTime(),deptId);
+
+        int heSuanCountNow = userNucleicTimeService.getHeSuanCountNow(deptId,userInfoIdCard);
+
+        Map<String,Object> map = new HashMap<>();
+        map.put("heSuanCount",heSuanCount);
+        map.put("heSuanCountNow",heSuanCountNow);
+
+        return AjaxResult.success(map);
     }
 }

+ 3 - 1
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/KeyPeopleInfoServiceImpl.java

@@ -159,9 +159,11 @@ public class KeyPeopleInfoServiceImpl implements IKeyPeopleInfoService
     @Override
     @Transactional(rollbackFor = Exception.class)
     @Async
-    public void importUser(List<KeyPeopleInfo> keyPeopleList) {
+    public void importUser(List<KeyPeopleInfo> keyPeopleList, String jobStyle, String focusCrowdStyle) {
         //插入数据
         for (KeyPeopleInfo keyPeopleInfo : keyPeopleList) {
+            keyPeopleInfo.setJobStyle(jobStyle);
+            keyPeopleInfo.setFocusCrowdStyle(focusCrowdStyle);
             //查询一下这个人是否存在
             List<KeyPeopleInfo> keyPeopleInfos = keyPeopleInfoMapper.selectKeyPeopleInfoList(keyPeopleInfo);
             if (keyPeopleInfos != null && keyPeopleInfos.size() > 0){

+ 6 - 1
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/UserInfoServiceImpl.java

@@ -192,7 +192,7 @@ public class UserInfoServiceImpl implements IUserInfoService {
             return "请先上传该部门重点人员";
         }
         SysHesuanConfiguration sysHesuan = new SysHesuanConfiguration();
-        sysHesuan.setDeptIdList(listDeptId);
+        //sysHesuan.setDeptIdList(listDeptId);
         //查询部门的规则配置
         List<SysHesuanConfiguration> sysHesuanList = sysHesuanConfigurationMapper.selectSysHesuanConfigurationList(sysHesuan);
 
@@ -217,6 +217,11 @@ public class UserInfoServiceImpl implements IUserInfoService {
                     KeyPeopleInfo1.add(peopleInfo);
                 }
             }
+
+            if(idCardList == null || idCardList.size()<=0){
+                continue;
+            }
+
             //从第三方数据库查询人员核酸计录
             List<OdsQssHsjcxx> OdsQssHsjcxxList = qdsQssHsjcxxService.thirdNucleicAcid(startTime, endTime, idCardList);
             Map<String, List<OdsQssHsjcxx>> OdsQssHsjcxxMapSorted = new HashMap<>();

+ 5 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/UserNucleicTimeServiceImpl.java

@@ -68,6 +68,11 @@ public class UserNucleicTimeServiceImpl implements IUserNucleicTimeService
         return userNucleicTimeMapper.selectHomeList(startTime,endTime);
     }
 
+    @Override
+    public int getHeSuanCountNow(Long deptId, List<String> userInfoIdCard) {
+        return userNucleicTimeMapper.getHeSuanCountNow(deptId,userInfoIdCard);
+    }
+
     /**
      * 新增导入人员核酸时间记录
      * 

+ 10 - 0
ruoyi-system/src/main/resources/mapper/system/KeyPeopleInfoMapper.xml

@@ -51,6 +51,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="idCard != null">id_card,</if>
             <if test="phoneNum != null">phone_num,</if>
             <if test="deptId != null">dept_id,</if>
+
+            <if test="jobStyle != null">job_style,</if>
+            <if test="focusCrowdStyle != null">focus_crowd_style,</if>
+
             <if test="createBy != null">create_by,</if>
             <if test="createTime != null">create_time,</if>
             <if test="updateBy != null">update_by,</if>
@@ -62,6 +66,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="idCard != null">#{idCard},</if>
             <if test="phoneNum != null">#{phoneNum},</if>
             <if test="deptId != null">#{deptId},</if>
+            <if test="jobStyle != null">#{jobStyle},</if>
+            <if test="focusCrowdStyle != null">#{focusCrowdStyle},</if>
             <if test="createBy != null">#{createBy},</if>
             <if test="createTime != null">#{createTime},</if>
             <if test="updateBy != null">#{updateBy},</if>
@@ -77,6 +83,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="idCard != null">id_card = #{idCard},</if>
             <if test="phoneNum != null">phone_num = #{phoneNum},</if>
             <if test="deptId != null">dept_id = #{deptId},</if>
+
+            <if test="jobStyle != null">job_style = #{jobStyle},</if>
+            <if test="focusCrowdStyle != null">focus_crowd_style = #{focusCrowdStyle},</if>
+
             <if test="createBy != null">create_by = #{createBy},</if>
             <if test="createTime != null">create_time = #{createTime},</if>
             <if test="updateBy != null">update_by = #{updateBy},</if>

+ 9 - 0
ruoyi-system/src/main/resources/mapper/system/UserInfoMapper.xml

@@ -288,7 +288,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         ) a
         order by a.cjsj;
     </select>
+    <select id="selectUserInfoNew" resultMap="UserInfoResult">
+        <include refid="selectUserInfoVo"/>
+        where dept_id = #{deptId}
+        order by end_time desc
+        limit 1
+    </select>
 
+    <select id="selectUserInfoByEndTime" resultType="java.lang.String">
+        select id_card from user_info where dept_id = #{deptId} and end_time = #{endTime}
+    </select>
 
 
 </mapper>

+ 8 - 0
ruoyi-system/src/main/resources/mapper/system/UserNucleicTimeMapper.xml

@@ -144,4 +144,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         from user_nucleic_time
         where nucleic_collect_time > #{startTime} and #{endTime}>=nucleic_collect_time
     </select>
+    <select id="getHeSuanCountNow" resultType="java.lang.Integer">
+        select ifnull(count(1),0) from user_nucleic_time
+        where dept_id = #{deptId}
+        and id_card in
+        <foreach item="idCard" collection="userInfoIdCard" open="(" separator="," close=")">
+            #{idCard}
+        </foreach>
+    </select>
 </mapper>