فهرست منبع

fix 修改新增接口

Administrator 3 سال پیش
والد
کامیت
ed0ddc8067

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

@@ -79,7 +79,7 @@ public class VaccineInfoController extends BaseController {
     @PostMapping
     public AjaxResult add(@RequestBody VaccineInfoOperation vaccineInfo) {
         vaccineInfo.setCreateBy(SecurityUtils.getUsername());
-        return toAjax(vaccineInfoService.insertVaccineInfo(vaccineInfo));
+        return vaccineInfoService.insertVaccineInfo(vaccineInfo);
     }
 
     /**

+ 2 - 1
boman-web-core/src/main/java/com/boman/web/core/service/vaccineInfo/IVaccineInfoService.java

@@ -1,5 +1,6 @@
 package com.boman.web.core.service.vaccineInfo;
 
+import com.boman.domain.dto.AjaxResult;
 import com.boman.web.core.domain.VaccineInfoOperation;
 
 import java.util.List;
@@ -34,7 +35,7 @@ public interface IVaccineInfoService
      * @param vaccineInfo 疫苗信息
      * @return 结果
      */
-    public int insertVaccineInfo(VaccineInfoOperation vaccineInfo);
+    public AjaxResult insertVaccineInfo(VaccineInfoOperation vaccineInfo);
 
     /**
      * 修改疫苗信息

+ 59 - 19
boman-web-core/src/main/java/com/boman/web/core/service/vaccineInfo/impl/VaccineInfoServiceImpl.java

@@ -2,10 +2,7 @@ package com.boman.web.core.service.vaccineInfo.impl;
 
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
@@ -13,7 +10,9 @@ import com.alibaba.fastjson.JSONObject;
 import com.boman.common.core.utils.DateUtils;
 import com.boman.common.core.utils.SecurityUtils;
 import com.boman.common.core.utils.StringUtils;
+import com.boman.common.core.utils.obj.ObjectUtils;
 import com.boman.domain.SysDictData;
+import com.boman.domain.dto.AjaxResult;
 import com.boman.web.core.domain.VaccineInfoOperation;
 import com.boman.web.core.domain.VaccineInfoUser;
 import com.boman.web.core.mapper.VaccineInfoOperationMapper;
@@ -193,7 +192,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();
         //先去查询该身份证信息 是否存在
@@ -219,13 +218,14 @@ public class VaccineInfoServiceImpl implements IVaccineInfoService {
                         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();
                         }
                         vaccineInfoUser.setIdCard(vaccineInfoOperation.getIdCard());
                         vaccineInfoUser.setCreateBy(SecurityUtils.getUsername());
-                        vaccineName = vaccineInfoUser.getVaccineName();
                         vaccineInfoUserMapper.insertVaccineInfoUser(vaccineInfoUser);
                     }
                 }
@@ -242,7 +242,7 @@ public class VaccineInfoServiceImpl implements IVaccineInfoService {
             VaccineInfoOperation vaccineInfoOperationNew = shouldSlow(vaccineInfoOperation);
 
 
-            int info = vaccineInfoMapper.insertVaccineInfo(vaccineInfoOperationNew);
+            int  rows = vaccineInfoMapper.insertVaccineInfo(vaccineInfoOperationNew);
 
             // 疫苗信息新增操作记录
             vaccineInfoOperationNew.setOperationType(INSERT);
@@ -250,26 +250,66 @@ public class VaccineInfoServiceImpl implements IVaccineInfoService {
             vaccineInfoOperationNew.setCreateBy(SecurityUtils.getUsername());
             vaccineInfoOperationNew.setVaccinationTime(vaccinationTime);
             vaccineInfoOperationNew.setVaccineName(vaccineName);
-            vaccineInfoOperationMapper.insertVaccineInfoOperation(vaccineInfoOperationNew);
-            return info;
+             vaccineInfoOperationMapper.insertVaccineInfoOperation(vaccineInfoOperationNew);
+            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 (vaccineInfoUser.getVaccinationTime() != null && vaccineInfoUser.getVaccinationTime().compareTo(vaccinationTime) > 0) {
+                                vaccinationTime = vaccineInfoUser.getVaccinationTime();
+                            }
+                            //剂次可能是 "加强针"
+                            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;
     }