소스 검색

fix 修改字典查询

Administrator 3 년 전
부모
커밋
27a7aad48b

+ 9 - 0
boman-modules/boman-system/src/main/java/com/boman/system/service/impl/SysDictTypeServiceImpl.java

@@ -86,6 +86,15 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService
         dictDatas = dictDataMapper.selectDictDataByType(dictType);
         if (StringUtils.isNotEmpty(dictDatas))
         {
+            for (SysDictData dictData : dictDatas) {
+                if ("vaccine_name".equals(dictData.getDictType())){
+                    String dictValue = dictData.getDictValue();
+                    List<SysDictData> sysDictData = selectDictDataByType(dictValue);
+                    if (StringUtils.isNotEmpty(sysDictData)){
+                        dictData.setChildren(sysDictData);
+                    }
+                }
+            }
             DictUtils.setDictCache(dictType, dictDatas);
             return dictDatas;
         }

+ 159 - 40
boman-web-core/src/main/java/com/boman/web/core/service/vaccineInfo/impl/VaccineInfoServiceImpl.java

@@ -74,9 +74,9 @@ public class VaccineInfoServiceImpl implements IVaccineInfoService {
     @Override
     public List<VaccineInfoOperation> selectVaccineInfoList(VaccineInfoOperation vaccineInfoOperation) {
         Map<String, Object> params = vaccineInfoOperation.getParams();
-        if (params != null){
+        if (params != null) {
             Object age = params.get("age");
-            if (age != null){
+            if (age != null) {
                 if (StringUtils.isNotBlank(age.toString())) {
                     String[] split = age.toString().split("-");
                     params.put("startAge", split[0]);
@@ -96,11 +96,11 @@ public class VaccineInfoServiceImpl implements IVaccineInfoService {
         String vaccinationPlace = vaccineInfoOperation.getVaccinationPlace();
         List<String> idCardS = new ArrayList<>();
         boolean flag = true;
-        if ( StringUtils.isNotBlank(vaccinationPlace)) {
+        if (StringUtils.isNotBlank(vaccinationPlace)) {
             VaccineInfoUser vaccineInfoUser = new VaccineInfoUser();
             vaccineInfoUser.setVaccinationPlace(vaccinationPlace);
             idCardS = vaccineInfoUserMapper.selectIdCardList(vaccineInfoUser);
-            if (idCardS.size() == 0){
+            if (idCardS.size() == 0) {
                 flag = false;
             }
             vaccineInfoOperation.setIdCardS(idCardS);
@@ -109,7 +109,7 @@ public class VaccineInfoServiceImpl implements IVaccineInfoService {
 
         //如果查询条件查询疫苗表且没数据,就不要查询主表
         List<VaccineInfoOperation> vaccineInfoOperations = new ArrayList<>();
-        if (flag){
+        if (flag) {
             vaccineInfoOperations = vaccineInfoMapper.selectVaccineInfoList(vaccineInfoOperation);
         }
 
@@ -132,7 +132,7 @@ public class VaccineInfoServiceImpl implements IVaccineInfoService {
                 String domicile = infoOperation.getDomicile();
                 StringBuilder sbDomicile = new StringBuilder();
                 sbDomicile.append(province).append(city).append(region);
-                if (StringUtils.isNotBlank(domicile)){
+                if (StringUtils.isNotBlank(domicile)) {
                     sbDomicile.append(domicile);
                 }
                 infoOperation.setDomicileSelect(sbDomicile.toString());
@@ -140,17 +140,17 @@ public class VaccineInfoServiceImpl implements IVaccineInfoService {
                 String nowIn = infoOperation.getNowIn();
                 StringBuilder sbNowIn = new StringBuilder();
                 sbNowIn.append(province).append(city).append(region);
-                if (StringUtils.isNotBlank(nowIn)){
+                if (StringUtils.isNotBlank(nowIn)) {
                     sbNowIn.append(nowIn);
                 }
                 infoOperation.setNowInSelect(sbNowIn.toString());
                 String progress = infoOperation.getProgress();
-                if (StringUtils.isBlank(progress) || "否".equals(progress)){
+                if (StringUtils.isBlank(progress) || "否".equals(progress)) {
                     //最后一次的接种时间
                     Date vaccinationTimeLast = infoOperation.getVaccinationTime();
                     //接种的疫苗名称
                     String vaccineNameLast = infoOperation.getVaccineName();
-                    if (StringUtils.isNotBlank(vaccineNameLast)){
+                    if (StringUtils.isNotBlank(vaccineNameLast)) {
                         Date date = vaccinationTimeNext(vaccinationTimeLast, vaccineNameLast);
                         infoOperation.setVaccinationTimeNext(date);
                     }
@@ -165,21 +165,21 @@ public class VaccineInfoServiceImpl implements IVaccineInfoService {
         Date date = new Date();
         if ("北京科兴中维".equals(vaccineNameLast)) {
             date = DateUtils.addDayOfDate(vaccinationTime, 14);
-        }else if ("北京生物".equals(vaccineNameLast)){
+        } else if ("北京生物".equals(vaccineNameLast)) {
             date = DateUtils.addDayOfDate(vaccinationTime, 21);
-        }else if ("深圳康泰".equals(vaccineNameLast)){
+        } else if ("深圳康泰".equals(vaccineNameLast)) {
             date = DateUtils.addDayOfDate(vaccinationTime, 28);
-        }else if ("安徽智飞".equals(vaccineNameLast)){
+        } else if ("安徽智飞".equals(vaccineNameLast)) {
             date = DateUtils.addDayOfDate(vaccinationTime, 28);
-        }else if ("兰州生物".equals(vaccineNameLast)){
+        } else if ("兰州生物".equals(vaccineNameLast)) {
             date = DateUtils.addDayOfDate(vaccinationTime, 21);
-        }else if ("成都生物".equals(vaccineNameLast)){
+        } else if ("成都生物".equals(vaccineNameLast)) {
             date = DateUtils.addDayOfDate(vaccinationTime, 21);
-        }else if ("科兴大连".equals(vaccineNameLast)){
+        } else if ("科兴大连".equals(vaccineNameLast)) {
             date = DateUtils.addDayOfDate(vaccinationTime, 21);
-        }else if ("长春生物".equals(vaccineNameLast)){
+        } else if ("长春生物".equals(vaccineNameLast)) {
             date = DateUtils.addDayOfDate(vaccinationTime, 14);
-        }else {
+        } else {
             date = vaccinationTime;
         }
         return date;
@@ -210,11 +210,11 @@ public class VaccineInfoServiceImpl implements IVaccineInfoService {
                 }
                 //剂次可能是 "加强针"
                 String jici = vaccineInfoUser.getJici();
-                if (isNumeric(jici) && isNumeric(jiCi)){
-                    if(Integer.parseInt(jici) >Integer.parseInt(jiCi)) {
+                if (isNumeric(jici) && isNumeric(jiCi)) {
+                    if (Integer.parseInt(jici) > Integer.parseInt(jiCi)) {
                         jiCi = vaccineInfoUser.getJici();
                     }
-                }else if (!isNumeric(jici)){
+                } else if (!isNumeric(jici)) {
                     jiCi = vaccineInfoUser.getJici();
                 }
                 vaccineInfoUser.setIdCard(vaccineInfoOperation.getIdCard());
@@ -223,38 +223,151 @@ public class VaccineInfoServiceImpl implements IVaccineInfoService {
                 vaccineInfoUserMapper.insertVaccineInfoUser(vaccineInfoUser);
             }
         }
+        //是否完成
+        String isSuccess = getIsSuccess(VaccineName, jiCi);
         vaccineInfoOperation.setVaccinationTime(vaccinationTime);
         vaccineInfoOperation.setVaccineName(VaccineName);
         vaccineInfoOperation.setJici(jiCi);
-        int info = vaccineInfoMapper.insertVaccineInfo(vaccineInfoOperation);
+        vaccineInfoOperation.setProgress(isSuccess);
+        //只针对第一针
+        //应种未种:死亡(包含里面的选项)-禁忌症(包含里面的选项)-已经接种的-缓种-其他,只针对第一针
+        //应续未续:只打了一针(总共2针),智飞打了一次和二次都是应续未续,只要一样禁忌症和暂缓就都不算
+        VaccineInfoOperation vaccineInfoOperationNew = shouldSlow(vaccineInfoOperation);
+
+
+        int info = vaccineInfoMapper.insertVaccineInfo(vaccineInfoOperationNew);
 
         // 疫苗信息新增操作记录
-        vaccineInfoOperation.setOperationType(INSERT);
-        vaccineInfoOperation.setVaccineInfoId(vaccineInfoOperation.getId());
-        vaccineInfoOperation.setCreateBy(SecurityUtils.getUsername());
-        vaccineInfoOperation.setVaccinationTime(vaccinationTime);
-        vaccineInfoOperation.setVaccineName(VaccineName);
-        vaccineInfoOperationMapper.insertVaccineInfoOperation(vaccineInfoOperation);
+        vaccineInfoOperationNew.setOperationType(INSERT);
+        vaccineInfoOperationNew.setVaccineInfoId(vaccineInfoOperation.getId());
+        vaccineInfoOperationNew.setCreateBy(SecurityUtils.getUsername());
+        vaccineInfoOperationNew.setVaccinationTime(vaccinationTime);
+        vaccineInfoOperationNew.setVaccineName(VaccineName);
+        vaccineInfoOperationMapper.insertVaccineInfoOperation(vaccineInfoOperationNew);
         return info;
     }
 
 
+    /**
+     * 判断是否完成
+     * @param vaccineName
+     * @param jici
+     * @return
+     */
+    private String getIsSuccess(String vaccineName,String jici) {
+        if ("北京科兴中维".equals(vaccineName)) {
+            if ("2".equals(jici)) {
+                return "是";
+            } else {
+                return "否";
+            }
+        } else if ("北京生物".equals(vaccineName)) {
+            if ("2".equals(jici)) {
+                return "是";
+            } else {
+                return "否";
+            }
+        } else if ("兰州生物".equals(vaccineName)) {
+            if ("2".equals(jici)) {
+                return "是";
+            } else {
+                return "否";
+            }
+        } else if ("深圳康泰".equals(vaccineName)) {
+            if ("2".equals(jici)) {
+                return "是";
+            } else {
+                return "否";
+            }
+        } else if ("安徽智飞".equals(vaccineName)) {
+            if ("3".equals(jici)) {
+                return "是";
+            } else {
+                return "否";
+            }
+        } else if ("成都生物".equals(vaccineName)) {
+            if ("2".equals(jici)) {
+                return "是";
+            } else {
+                return "否";
+            }
+        } else if ("科兴大连".equals(vaccineName)) {
+            if ("2".equals(jici)) {
+                return "是";
+            } else {
+                return "否";
+            }
+        } else if ("长春生物".equals(vaccineName)) {
+            if ("2".equals(jici)) {
+                return "是";
+            } else {
+                return "否";
+            }
+        }
+        return "否";
+    }
+
+    /**
+     * 判断用户应种未种:就是有禁忌症或者暂缓接种的,应续未续
+     *
+     * @param vaccineInfoOperation
+     * @return
+     */
+    public VaccineInfoOperation shouldSlow(VaccineInfoOperation vaccineInfoOperation) {
+        List<VaccineInfoUser> vaccineInfoUserList = vaccineInfoOperation.getVaccineInfoUserList();
+        //默认是
+        vaccineInfoOperation.setShouldBe("是");
+
+        String contraindication = vaccineInfoOperation.getContraindication();
+        //暂缓接种
+        String suspend = vaccineInfoOperation.getSuspend();
+        //其他:死亡,失踪失联
+        String other = vaccineInfoOperation.getOther();
+        //判断应种未种
+        if (vaccineInfoUserList == null || vaccineInfoUserList.size() == 0){
+            //只判断第一针,就是一针没打
+            //判断是否填写了禁忌症
+            if (StringUtils.isNotBlank(contraindication) || StringUtils.isNotBlank(suspend) || StringUtils.isNotBlank(other)){
+                vaccineInfoOperation.setShouldBe("否");
+                //有禁忌症,暂缓接种,其他:死亡,失踪失联就是否
+                vaccineInfoOperation.setShouldSlow("否");
+            }
+        }else {
+            //判断应续未续,只要是未完成说明可能是一针没打,可能是没打完,有禁忌症,暂缓接种,其他:死亡,失踪失联就是否
+            //如果他打过针
+            if (StringUtils.isNotBlank(contraindication) || StringUtils.isNotBlank(suspend) || StringUtils.isNotBlank(other)){
+                //有禁忌症,暂缓接种,其他:死亡,失踪失联就是否
+                vaccineInfoOperation.setShouldSlow("否");
+            }else {
+                //没有异常情况,判断是否完成
+                String progress = vaccineInfoOperation.getProgress();
+                vaccineInfoOperation.setShouldSlow("否");
+                if("否".equals(progress)){
+                    vaccineInfoOperation.setShouldSlow("是");
+                }
+            }
+        }
+        return vaccineInfoOperation;
+    }
+
     /**
      * 利用正则表达式判断字符串是否是数字
+     *
      * @param str
      * @return
      */
-    public static boolean isNumeric(String str){
-        if(StringUtils.isEmpty(str)) {
+    public static boolean isNumeric(String str) {
+        if (StringUtils.isEmpty(str)) {
             return false;
         }
         Pattern pattern = Pattern.compile("[0-9]*");
         Matcher isNum = pattern.matcher(str);
-        if( !isNum.matches() ){
+        if (!isNum.matches()) {
             return false;
         }
         return true;
     }
+
     /**
      * 修改疫苗信息
      *
@@ -282,9 +395,9 @@ public class VaccineInfoServiceImpl implements IVaccineInfoService {
                     }
                     //剂次可能是 "加强针"
                     String jici = vaccineInfoUser.getJici();
-                    if (isNumeric(jici) && isNumeric(jiCi) && Integer.parseInt(jici) >Integer.parseInt(jiCi)){
+                    if (isNumeric(jici) && isNumeric(jiCi) && Integer.parseInt(jici) > Integer.parseInt(jiCi)) {
                         jiCi = vaccineInfoUser.getJici();
-                    }else if (!isNumeric(jici)){
+                    } else if (!isNumeric(jici)) {
                         jiCi = vaccineInfoUser.getJici();
                     }
                     vaccineName = vaccineInfoUser.getVaccineName();
@@ -296,9 +409,9 @@ public class VaccineInfoServiceImpl implements IVaccineInfoService {
                     }
                     //剂次可能是 "加强针"
                     String jici = vaccineInfoUser.getJici();
-                    if (isNumeric(jici) && isNumeric(jiCi) && Integer.parseInt(jici) >Integer.parseInt(jiCi)){
+                    if (isNumeric(jici) && isNumeric(jiCi) && Integer.parseInt(jici) > Integer.parseInt(jiCi)) {
                         jiCi = vaccineInfoUser.getJici();
-                    }else if (!isNumeric(jici)){
+                    } else if (!isNumeric(jici)) {
                         jiCi = vaccineInfoUser.getJici();
                     }
                     vaccineName = vaccineInfoUser.getVaccineName();
@@ -308,16 +421,22 @@ public class VaccineInfoServiceImpl implements IVaccineInfoService {
                 }
             }
         }
+        //是否完成
+        String isSuccess = getIsSuccess(vaccineName, jiCi);
+        //判断用户应种未种,应续未续
         vaccineInfo.setVaccineName(vaccineName);
         vaccineInfo.setVaccinationTime(vaccinationTime);
         vaccineInfo.setJici(jiCi);
-        int info = vaccineInfoMapper.updateVaccineInfo(vaccineInfo);
+        vaccineInfo.setProgress(isSuccess);
+        VaccineInfoOperation vaccineInfoOperationNew = shouldSlow(vaccineInfo);
+
+        int info = vaccineInfoMapper.updateVaccineInfo(vaccineInfoOperationNew);
         // 疫苗信息新增操作记录
-        vaccineInfo.setOperationType(EDIT);
-        vaccineInfo.setCreateTime(new Date());
-        vaccineInfo.setCreateBy(SecurityUtils.getUsername());
-        vaccineInfo.setVaccineInfoId(vaccineInfo.getId());
-        vaccineInfoOperationMapper.insertVaccineInfoOperation(vaccineInfo);
+        vaccineInfoOperationNew.setOperationType(EDIT);
+        vaccineInfoOperationNew.setCreateTime(new Date());
+        vaccineInfoOperationNew.setCreateBy(SecurityUtils.getUsername());
+        vaccineInfoOperationNew.setVaccineInfoId(vaccineInfo.getId());
+        vaccineInfoOperationMapper.insertVaccineInfoOperation(vaccineInfoOperationNew);
         return info;
     }