Browse Source

重复人员不能重复导入

feature/yujt_vim
zhangyuan 4 years ago
parent
commit
406439599a
  1. 26
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/epidemic/service/impl/EpidemicReportUserInfoServiceImpl.java
  2. 2
      epdc-cloud-vim-yushan/src/main/resources/mapper/vim/VaccinationInfoDao.xml

26
epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/epidemic/service/impl/EpidemicReportUserInfoServiceImpl.java

@ -11,6 +11,7 @@ import com.elink.esua.epdc.commons.tools.security.user.SecurityUser;
import com.elink.esua.epdc.commons.tools.utils.*; import com.elink.esua.epdc.commons.tools.utils.*;
import com.elink.esua.epdc.vaccine.epidemic.constant.StrConstant; import com.elink.esua.epdc.vaccine.epidemic.constant.StrConstant;
import com.elink.esua.epdc.vaccine.epidemic.dao.EpidemicReportUserInfoDao; import com.elink.esua.epdc.vaccine.epidemic.dao.EpidemicReportUserInfoDao;
import com.elink.esua.epdc.vaccine.epidemic.dao.EpidemicUserInfoDao;
import com.elink.esua.epdc.vaccine.epidemic.dto.*; import com.elink.esua.epdc.vaccine.epidemic.dto.*;
import com.elink.esua.epdc.vaccine.epidemic.entity.EpidemicReportUserInfoEntity; import com.elink.esua.epdc.vaccine.epidemic.entity.EpidemicReportUserInfoEntity;
import com.elink.esua.epdc.vaccine.epidemic.entity.EpidemicUserErrorEntity; import com.elink.esua.epdc.vaccine.epidemic.entity.EpidemicUserErrorEntity;
@ -32,10 +33,12 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import java.io.File; import java.io.File;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors;
/** /**
* 疫情人员报备信息表 * 疫情人员报备信息表
@ -52,6 +55,9 @@ public class EpidemicReportUserInfoServiceImpl extends CrudServiceImpl<EpidemicR
public EpidemicUserInoutRecordService epidemicUserInoutRecordService; public EpidemicUserInoutRecordService epidemicUserInoutRecordService;
@Autowired @Autowired
public EpidemicUserErrorService epidemicUserErrorService; public EpidemicUserErrorService epidemicUserErrorService;
@Resource
private EpidemicUserInfoDao epidemicUserInfoDao;
private Logger log = LoggerFactory.getLogger(IpUtils.class); private Logger log = LoggerFactory.getLogger(IpUtils.class);
@ -274,6 +280,9 @@ public class EpidemicReportUserInfoServiceImpl extends CrudServiceImpl<EpidemicR
List<EpidemicReportUserInfoAllExcel> addErrorList = new ArrayList<>(); List<EpidemicReportUserInfoAllExcel> addErrorList = new ArrayList<>();
log.info("准备进入Excel数据导入循环"); log.info("准备进入Excel数据导入循环");
List<EpidemicUserInfoEntity> allUserList = epidemicUserInfoDao.selectAllUserInfo();
List<String> allUserIdCards = allUserList.stream().map(EpidemicUserInfoEntity::getIdCard).collect(Collectors.toList());
EpidemicReportUserInfoAllExcel epidemicReportUserInfoAllExcel; EpidemicReportUserInfoAllExcel epidemicReportUserInfoAllExcel;
String idCard; String idCard;
int age; int age;
@ -321,15 +330,22 @@ public class EpidemicReportUserInfoServiceImpl extends CrudServiceImpl<EpidemicR
} }
epidemicReportUserInfoAllExcel.setAge(age); epidemicReportUserInfoAllExcel.setAge(age);
} }
if (allUserIdCards.contains(idCard.toLowerCase()) || allUserIdCards.contains(idCard.toUpperCase())) {
epidemicReportUserInfoAllExcel.setErrorInfo("该人员已存在,无需再次导入");
addErrorList.add(epidemicReportUserInfoAllExcel);
continue;
}
addList.add(epidemicReportUserInfoAllExcel); addList.add(epidemicReportUserInfoAllExcel);
deleteIdCardArr.add(idCard); deleteIdCardArr.add(idCard);
} }
// 对规范数据,根据身份证号进行逻辑删除 // // 对规范数据,根据身份证号进行逻辑删除
if (deleteIdCardArr.size() > 0) { // if (deleteIdCardArr.size() > 0) {
baseDao.deleteInfoByIdCard(deleteIdCardArr); // baseDao.deleteInfoByIdCard(deleteIdCardArr);
baseDao.deleteRecordByIdCard(deleteIdCardArr); // baseDao.deleteRecordByIdCard(deleteIdCardArr);
} // }
// 插入数据----需改为批量插入 // 插入数据----需改为批量插入
List<EpidemicUserInfoEntity> insertUserList = new ArrayList<>(); List<EpidemicUserInfoEntity> insertUserList = new ArrayList<>();

2
epdc-cloud-vim-yushan/src/main/resources/mapper/vim/VaccinationInfoDao.xml

@ -10,6 +10,7 @@
FROM FROM
vaccination_info v vaccination_info v
<if test="vaccTime != null and vaccTime != '' and vaccTime != 0"> <if test="vaccTime != null and vaccTime != '' and vaccTime != 0">
LEFT JOIN epidemic_user_info u ON u.ID_CARD = v.IDENTITY_NO
INNER JOIN ( INNER JOIN (
SELECT SELECT
IDENTITY_NO, IDENTITY_NO,
@ -38,6 +39,7 @@
AND v.COMPANY_ID = #{companyId} AND v.COMPANY_ID = #{companyId}
</if> </if>
<if test="vaccTime != null and vaccTime != '' and vaccTime != 0"> <if test="vaccTime != null and vaccTime != '' and vaccTime != 0">
AND u.VACCINATION_STATE = 1
AND datediff(NOW(), v.CREATED_TIME) >= #{vaccTime} AND datediff(NOW(), v.CREATED_TIME) >= #{vaccTime}
</if> </if>
<if test="vaccNo != null and vaccNo != '' and vaccNo != 0"> <if test="vaccNo != null and vaccNo != '' and vaccNo != 0">

Loading…
Cancel
Save