Browse Source

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	boman-web-core/src/main/java/com/boman/web/core/service/vaccineInfo/impl/VaccineInfoServiceImpl.java
shiqian 3 năm trước cách đây
mục cha
commit
a0e7282dd8

+ 1 - 0
boman-web-core/src/main/java/com/boman/web/core/controller/AdministrativeInfoController.java

@@ -1,5 +1,6 @@
 package com.boman.web.core.controller;
 
+import com.boman.common.core.utils.SecurityUtils;
 import com.boman.domain.SysDept;
 import com.boman.domain.dto.AjaxResult;
 import com.boman.web.core.domain.AdministrativeInfo;

+ 6 - 0
boman-web-core/src/main/java/com/boman/web/core/service/vaccineInfo/impl/AdministrativeInfoServiceImpl.java

@@ -1,7 +1,11 @@
 package com.boman.web.core.service.vaccineInfo.impl;
 
+import com.boman.common.core.utils.ServletUtils;
 import com.boman.common.core.utils.StringUtils;
+import com.boman.common.security.service.TokenService;
 import com.boman.domain.SysDept;
+import com.boman.domain.SysUser;
+import com.boman.system.api.model.LoginUser;
 import com.boman.web.core.domain.AdministrativeInfo;
 import com.boman.web.core.domain.TreeSelect;
 import com.boman.web.core.mapper.AdministrativeInfoMapper;
@@ -9,6 +13,8 @@ import com.boman.web.core.service.vaccineInfo.AdministrativeInfoService;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.Size;
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;

+ 126 - 31
boman-web-core/src/main/java/com/boman/web/core/service/vaccineInfo/impl/VaccineInfoServiceImpl.java

@@ -206,7 +206,7 @@ public class VaccineInfoServiceImpl implements IVaccineInfoService {
      */
     @Override
     @Transactional(isolation = Isolation.READ_COMMITTED, rollbackFor = Exception.class)
-    public int insertVaccineInfo(VaccineInfoOperation vaccineInfoOperation) {
+    public AjaxResult insertVaccineInfo(VaccineInfoOperation vaccineInfoOperation) {
         //获取身份证
         String idCard = vaccineInfoOperation.getIdCard();
         //先去查询该身份证信息 是否存在
@@ -229,16 +229,22 @@ public class VaccineInfoServiceImpl implements IVaccineInfoService {
                         }
                         //剂次可能是 "加强针"
                         String jici = vaccineInfoUser.getJici();
+                        if (StringUtils.isBlank(jiCi)) {
+                            jiCi = vaccineInfoUser.getJici();
+                        }
+                        if (StringUtils.isBlank(vaccineName)) {
+                            vaccineName = vaccineInfoUser.getVaccineName();
+                        }
                         if (isNumeric(jici) && isNumeric(jiCi)) {
                             if (Integer.parseInt(jici) > Integer.parseInt(jiCi)) {
                                 jiCi = vaccineInfoUser.getJici();
                             }
                         } else if (!isNumeric(jici)) {
                             jiCi = vaccineInfoUser.getJici();
+                            vaccineName = vaccineInfoUser.getVaccineName();
                         }
                         vaccineInfoUser.setIdCard(vaccineInfoOperation.getIdCard());
                         vaccineInfoUser.setCreateBy(SecurityUtils.getUsername());
-                        vaccineName = vaccineInfoUser.getVaccineName();
                         vaccineInfoUserMapper.insertVaccineInfoUser(vaccineInfoUser);
                     }
                 }
@@ -255,7 +261,7 @@ public class VaccineInfoServiceImpl implements IVaccineInfoService {
             VaccineInfoOperation vaccineInfoOperationNew = shouldSlow(vaccineInfoOperation);
 
 
-            int info = vaccineInfoMapper.insertVaccineInfo(vaccineInfoOperationNew);
+            int rows = vaccineInfoMapper.insertVaccineInfo(vaccineInfoOperationNew);
 
             // 疫苗信息新增操作记录
             vaccineInfoOperationNew.setOperationType(INSERT);
@@ -264,25 +270,73 @@ public class VaccineInfoServiceImpl implements IVaccineInfoService {
             vaccineInfoOperationNew.setVaccinationTime(vaccinationTime);
             vaccineInfoOperationNew.setVaccineName(vaccineName);
             vaccineInfoOperationMapper.insertVaccineInfoOperation(vaccineInfoOperationNew);
-            return info;
-        }else {
+            return rows > 0 ? AjaxResult.success() : AjaxResult.error();
+        } else {
             //查询出来的用户疫苗信息
             List<VaccineInfoUser> vaccineInfoUserListOld = vaccineInfoOperationOld.getVaccineInfoUserList();
+            String jiCiOld = vaccineInfoOperationOld.getJici();
+            String vaccineNameOld = vaccineInfoOperationOld.getVaccineName();
+            Date vaccinationTime = vaccineInfoOperationOld.getVaccinationTime();
+            //组装一个map
+            Map<String, Object> map = new HashMap<>();
+            if (vaccineInfoUserListOld != null && vaccineInfoUserListOld.size() > 0) {
+                for (VaccineInfoUser infoUser : vaccineInfoUserListOld) {
+                    //原始的疫苗信息
+                    map.put(infoUser.getVaccineName() + infoUser.getJici(), infoUser);
+                }
+            }
             //提取出用户接种疫苗信息列表
             List<VaccineInfoUser> vaccineInfoUserList = vaccineInfoOperation.getVaccineInfoUserList();
-            for (VaccineInfoUser vaccineInfoUser : vaccineInfoUserList) {
-                //新增的疫苗信息
-                String vaccineName = vaccineInfoUser.getVaccineName();
-                String jici = vaccineInfoUser.getJici();
-
-                for (VaccineInfoUser infoUser : vaccineInfoUserListOld) {
-                    String vaccineName1 = infoUser.getVaccineName();
-                    String jici1 = infoUser.getJici();
+            if (vaccineInfoUserList != null && vaccineInfoUserList.size() > 0) {
+                for (VaccineInfoUser vaccineInfoUser : vaccineInfoUserList) {
+                    //新增的疫苗信息
+                    String vaccineName = vaccineInfoUser.getVaccineName();
+                    String jici = vaccineInfoUser.getJici();
+                    Object vaccineInfoUserMap = map.get(vaccineName + jici);
+                    if (ObjectUtils.isEmpty(vaccineInfoUserMap)) {
+                        //说明没有,则新增
+                        if (StringUtils.isNotBlank(vaccineInfoUser.getVaccineName()) || vaccineInfoUser.getVaccinationTime() != null || StringUtils.isNotBlank(vaccineInfoUser.getVaccinationPlace()) || StringUtils.isNotBlank(vaccineInfoUser.getJici()) || StringUtils.isNotBlank(vaccineInfoUser.getProgress())) {
+                            if (vaccinationTime == null) {
+                                vaccinationTime = vaccineInfoUser.getVaccinationTime();
+                            } else if (vaccineInfoUser.getVaccinationTime() != null && vaccineInfoUser.getVaccinationTime().compareTo(vaccinationTime) > 0) {
+                                vaccinationTime = vaccineInfoUser.getVaccinationTime();
+                            }
+                            if (StringUtils.isBlank(jiCiOld)) {
+                                jiCiOld = vaccineInfoUser.getJici();
+                            }
+                            if (StringUtils.isBlank(vaccineNameOld)) {
+                                vaccineNameOld = vaccineInfoUser.getVaccineName();
+                            }
+                            //剂次可能是 "加强针"
+                            if (isNumeric(jici) && isNumeric(jiCiOld)) {
+                                if (Integer.parseInt(jici) > Integer.parseInt(jiCiOld)) {
+                                    jiCiOld = vaccineInfoUser.getJici();
+                                    vaccineNameOld = vaccineInfoUser.getVaccineName();
+                                }
+                            } else if (!isNumeric(jici)) {
+                                jiCiOld = vaccineInfoUser.getJici();
+                                vaccineNameOld = vaccineInfoUser.getVaccineName();
+                            }
+                            vaccineInfoUser.setIdCard(vaccineInfoOperationOld.getIdCard());
+                            vaccineInfoUser.setCreateBy(SecurityUtils.getUsername());
+                            vaccineInfoUserMapper.insertVaccineInfoUser(vaccineInfoUser);
+                        }
+                    }
                 }
             }
-
+            //是否完成
+            String isSuccess = getIsSuccess(vaccineNameOld, jiCiOld);
+            vaccineInfoOperationOld.setVaccineName(vaccineNameOld);
+            vaccineInfoOperationOld.setJici(jiCiOld);
+            vaccineInfoOperationOld.setVaccinationTime(vaccinationTime);
+            vaccineInfoOperation.setProgress(isSuccess);
+            vaccineInfoMapper.updateVaccineInfo(vaccineInfoOperationOld);
+            VaccineInfoOperation vaccineInfoOperation1 = vaccineInfoMapper.selectVaccineInfoById(vaccineInfoOperationOld.getId());
+            //判断应续未续
+            VaccineInfoOperation vaccineInfoOperationNew = shouldSlow(vaccineInfoOperation1);
+            int rows = vaccineInfoMapper.updateVaccineInfo(vaccineInfoOperationNew);
+            return rows > 0 ? AjaxResult.success() : AjaxResult.error();
         }
-        return 0;
     }
 
 
@@ -415,7 +469,19 @@ public class VaccineInfoServiceImpl implements IVaccineInfoService {
      */
     @Override
     @Transactional(isolation = Isolation.READ_COMMITTED, rollbackFor = Exception.class)
-    public int updateVaccineInfo(VaccineInfoOperation vaccineInfo) {
+    public AjaxResult updateVaccineInfo(VaccineInfoOperation vaccineInfo) {
+        // 根据身份证查询数据
+        VaccineInfoOperation oldInfo = vaccineInfoMapper.selectVaccineInfoByIdCard(vaccineInfo.getIdCard());
+        boolean neetUpdate = false;
+        if (oldInfo != null) {
+            // 如果数据不等,即添加了一个别人的已存在身份证
+            if (!oldInfo.getId().equals(vaccineInfo.getId())) {
+                return AjaxResult.error("此身份证号非本人,请确认后再次输入!");
+            }
+        } else {
+            neetUpdate = true;
+        }
+
         vaccineInfo.setUpdateTime(DateUtils.getNowDate());
 //        genNowIn(vaccineInfo);
         List<VaccineInfoUser> vaccineInfoUserList = vaccineInfo.getVaccineInfoUserList();
@@ -429,32 +495,61 @@ public class VaccineInfoServiceImpl implements IVaccineInfoService {
             for (VaccineInfoUser vaccineInfoUser : vaccineInfoUserList) {
                 if (vaccineInfoUser.getId() != null) {
                     vaccineInfoUser.setUpdateBy(SecurityUtils.getUsername());
-                    if (vaccineInfoUser.getVaccinationTime().compareTo(vaccinationTime) > 0) {
-                        vaccinationTime = vaccineInfoUser.getVaccinationTime();
-                    }
-                    //剂次可能是 "加强针"
-                    String jici = vaccineInfoUser.getJici();
-                    if (isNumeric(jici) && isNumeric(jiCi) && Integer.parseInt(jici) > Integer.parseInt(jiCi)) {
-                        jiCi = vaccineInfoUser.getJici();
-                    } else if (!isNumeric(jici)) {
-                        jiCi = vaccineInfoUser.getJici();
+
+                    if (StringUtils.isNotBlank(vaccineInfoUser.getVaccineName()) || vaccineInfoUser.getVaccinationTime() != null || StringUtils.isNotBlank(vaccineInfoUser.getVaccinationPlace()) || StringUtils.isNotBlank(vaccineInfoUser.getJici()) || StringUtils.isNotBlank(vaccineInfoUser.getProgress())) {
+                        if (vaccinationTime == null) {
+                            vaccinationTime = vaccineInfoUser.getVaccinationTime();
+                        } else if (vaccineInfoUser.getVaccinationTime() != null && vaccineInfoUser.getVaccinationTime().compareTo(vaccinationTime) > 0) {
+                            vaccinationTime = vaccineInfoUser.getVaccinationTime();
+                        }
+                        //剂次可能是 "加强针"
+                        String jici = vaccineInfoUser.getJici();
+                        if (StringUtils.isBlank(jiCi)) {
+                            jiCi = vaccineInfoUser.getJici();
+                        }
+                        if (StringUtils.isBlank(vaccineName)) {
+                            vaccineName = vaccineInfoUser.getVaccineName();
+                        }
+                        if (isNumeric(jici) && isNumeric(jiCi)) {
+                            if (Integer.parseInt(jici) > Integer.parseInt(jiCi)) {
+                                jiCi = vaccineInfoUser.getJici();
+                                vaccineName = vaccineInfoUser.getVaccineName();
+                            }
+                        } else if (!isNumeric(jici)) {
+                            jiCi = vaccineInfoUser.getJici();
+                            vaccineName = vaccineInfoUser.getVaccineName();
+                        }
+                        if (neetUpdate) {
+                            vaccineInfoUser.setIdCard(vaccineInfo.getIdCard());
+                        }
+                        vaccineInfoUserMapper.updateVaccineInfoUser(vaccineInfoUser);
                     }
-                    vaccineName = vaccineInfoUser.getVaccineName();
-                    vaccineInfoUserMapper.updateVaccineInfoUser(vaccineInfoUser);
+
                 } else {
                     if (StringUtils.isNotBlank(vaccineInfoUser.getVaccineName()) || vaccineInfoUser.getVaccinationTime() != null || StringUtils.isNotBlank(vaccineInfoUser.getVaccinationPlace()) || StringUtils.isNotBlank(vaccineInfoUser.getJici()) || StringUtils.isNotBlank(vaccineInfoUser.getProgress())) {
                         //判断接种时间是否是新
-                        if (vaccineInfoUser.getVaccinationTime() != null && vaccineInfoUser.getVaccinationTime().compareTo(vaccinationTime) > 0) {
+                        if (vaccinationTime == null) {
+                            vaccinationTime = vaccineInfoUser.getVaccinationTime();
+                        } else if (vaccineInfoUser.getVaccinationTime() != null && vaccineInfoUser.getVaccinationTime().compareTo(vaccinationTime) > 0) {
                             vaccinationTime = vaccineInfoUser.getVaccinationTime();
                         }
                         //剂次可能是 "加强针"
                         String jici = vaccineInfoUser.getJici();
-                        if (isNumeric(jici) && isNumeric(jiCi) && Integer.parseInt(jici) > Integer.parseInt(jiCi)) {
+                        if (StringUtils.isBlank(jiCi)) {
                             jiCi = vaccineInfoUser.getJici();
+                        }
+                        if (StringUtils.isBlank(vaccineName)) {
+                            vaccineName = vaccineInfoUser.getVaccineName();
+                        }
+                        if (isNumeric(jici) && isNumeric(jiCi)) {
+                            if (Integer.parseInt(jici) > Integer.parseInt(jiCi)) {
+                                jiCi = vaccineInfoUser.getJici();
+                                vaccineName = vaccineInfoUser.getVaccineName();
+                            }
                         } else if (!isNumeric(jici)) {
                             jiCi = vaccineInfoUser.getJici();
+                            vaccineName = vaccineInfoUser.getVaccineName();
                         }
-                        vaccineName = vaccineInfoUser.getVaccineName();
                         vaccineInfoUser.setIdCard(vaccineInfo.getIdCard());
                         vaccineInfoUser.setCreateBy(SecurityUtils.getUsername());
                         vaccineInfoUserMapper.insertVaccineInfoUser(vaccineInfoUser);
@@ -478,7 +573,7 @@ public class VaccineInfoServiceImpl implements IVaccineInfoService {
         vaccineInfoOperationNew.setCreateBy(SecurityUtils.getUsername());
         vaccineInfoOperationNew.setVaccineInfoId(vaccineInfo.getId());
         vaccineInfoOperationMapper.insertVaccineInfoOperation(vaccineInfoOperationNew);
-        return info;
+        return info > 0? AjaxResult.success():AjaxResult.error();
     }
 
     /**

+ 0 - 2
boman-web-core/src/main/resources/mapper/AdministrativeInfoMapper.xml

@@ -36,8 +36,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             AND status = #{status}
         </if>
         </where>
-        <!-- 数据范围过滤 -->
-        ${params.dataScope}
         order by parent_id, order_num
     </select>
 </mapper>

+ 7 - 4
boman-web-core/src/main/resources/mapper/VaccineInfoMapper.xml

@@ -131,13 +131,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     <select id="selectVaccineInfoById" parameterType="Long" resultMap="VaccineInfoResult">
         <include refid="selectVaccineInfoVo"/>
         where vi.id = #{id} and vi.is_del = 'N'
-        order by viu.vaccination_time limit 1
+        order by viu.vaccination_time
     </select>
 
     <select id="selectVaccineInfoByIdCard" parameterType="String" resultMap="VaccineInfoResult">
         <include refid="selectVaccineInfoVo"/>
-        where vi.idCard = #{idCard} and vi.is_del = 'N'
-        order by viu.vaccination_time limit 1
+        where vi.id_card = #{idCard} and vi.is_del = 'N'
+        order by viu.vaccination_time
     </select>
 
     <select id="selectVaccineInfoByIds" parameterType="Long" resultMap="VaccineInfoResult">
@@ -191,6 +191,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="shouldSlow != null and shouldSlow != ''">should_slow,</if>
             <if test="suspendUrl != null and suspendUrl != ''">suspend_url,</if>
             <if test="otherUrl != null and otherUrl != ''">other_url,</if>
+            <if test="age != null and age != ''">age,</if>
             create_time
          </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
@@ -233,6 +234,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="shouldSlow != null and shouldSlow != ''">#{shouldSlow},</if>
             <if test="suspendUrl != null and suspendUrl != ''">#{suspendUrl},</if>
             <if test="otherUrl != null and otherUrl != ''">#{otherUrl},</if>
+            <if test="age != null and age != ''">#{age},</if>
             sysdate()
          </trim>
     </insert>
@@ -280,6 +282,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="shouldSlow != null and shouldSlow != ''">should_slow = #{shouldSlow},</if>
             <if test="suspendUrl != null and suspendUrl != ''">suspend_url = #{suspendUrl},</if>
             <if test="otherUrl != null and otherUrl != ''">other_url = #{otherUrl},</if>
+            <if test="age != null and age != ''">age = #{age},</if>
         </trim>
         where id = #{id}
     </update>
@@ -297,7 +300,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
 
     <select id="findHjInfo" parameterType="VaccineInfoOperation" resultMap="VaccineInfoResult">
-        select user_name ,gender, birthday,age from vaccine_info
+        select id, user_name ,gender, birthday,age from vaccine_info
         <where>
          <if test="idCard != null and idCard != '' ">id_card = #{idCard}</if>
         </where>