Browse Source

导入增加判断:根据身份证号、核酸检测时间

zy_PrivacyExport
zhangyongzhangyong 4 years ago
parent
commit
7c5807a68b
  1. 2
      epdc-cloud-custom/src/main/java/com/elink/esua/epdc/modules/epidemic/controller/v2/PersonTestingV2Controller.java
  2. 12
      epdc-cloud-custom/src/main/java/com/elink/esua/epdc/modules/epidemic/dao/PersonTestingDao.java
  3. 6
      epdc-cloud-custom/src/main/java/com/elink/esua/epdc/modules/epidemic/excel/PersonTestingImportMoudleExcel.java
  4. 22
      epdc-cloud-custom/src/main/java/com/elink/esua/epdc/modules/epidemic/service/impl/PersonTestingServiceImpl.java
  5. 9
      epdc-cloud-custom/src/main/resources/mapper/epidemic/PersonTestingDao.xml

2
epdc-cloud-custom/src/main/java/com/elink/esua/epdc/modules/epidemic/controller/v2/PersonTestingV2Controller.java

@ -139,7 +139,7 @@ public class PersonTestingV2Controller {
public void exportMoudle(@RequestParam Map<String, Object> params, HttpServletResponse response) throws Exception {
List<PersonTestingPageDTO> list = new ArrayList<>();
PersonTestingPageDTO dto = new PersonTestingPageDTO();
dto.setCreatedBy(" ");
dto.setTestingTime("2021-01-01 01:01:01");
list.add(dto);
personTestingService.exportExcelToTarget(response, "核酸检测模板", list, PersonTestingImportMoudleExcel.class);
}

12
epdc-cloud-custom/src/main/java/com/elink/esua/epdc/modules/epidemic/dao/PersonTestingDao.java

@ -24,6 +24,7 @@ import com.elink.esua.epdc.modules.epidemic.entity.PersonTestingEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.Date;
import java.util.List;
import java.util.Map;
@ -66,4 +67,15 @@ public interface PersonTestingDao extends BaseDao<PersonTestingEntity> {
* @Date 15:38 2021-11-04
**/
List<PersonTestingDTO> getDetailByIdCardOrName(@Param("idcard") String idcard, @Param("realName") String realName);
/**
* 根据身份证和核酸检测时间 查询主键
*
* @param idcard
* @param testingTime
* @return java.lang.String
* @Author zhangyong
* @Date 13:51 2021-11-09
**/
String getIdByIdCardAndTestingTime(@Param("idcard") String idcard, @Param("testingTime") Date testingTime);
}

6
epdc-cloud-custom/src/main/java/com/elink/esua/epdc/modules/epidemic/excel/PersonTestingImportMoudleExcel.java

@ -44,8 +44,8 @@ public class PersonTestingImportMoudleExcel {
@Excel(name = "住址")
private String address;
@Excel(name = "核酸检测时间(yyyy-MM-dd HH:mm:ss)")
private String testingTimeStr;
@Excel(name = "核酸检测时间")
private String testingTime;
private Date testingTime;
private Date testingTimeDate;
}

22
epdc-cloud-custom/src/main/java/com/elink/esua/epdc/modules/epidemic/service/impl/PersonTestingServiceImpl.java

@ -515,13 +515,13 @@ public class PersonTestingServiceImpl extends BaseServiceImpl<PersonTestingDao,
errorLineinfoList.add(packageErrorInfo(i, verification));
}
}
if (StringUtils.isBlank(data.getTestingTimeStr())) {
if (StringUtils.isBlank(data.getTestingTime())) {
errorLineinfoList.add(packageErrorInfo(i, "核酸检测时间为空"));
} else {
if (DateUtils.DATE_TIME_PATTERN.length() != data.getTestingTimeStr().length()) {
if (DateUtils.DATE_TIME_PATTERN.length() != data.getTestingTime().length()) {
errorLineinfoList.add(packageErrorInfo(i, "核酸检测时间格式不匹配"));
} else {
data.setTestingTime(DateUtils.stringToDate(data.getTestingTimeStr(), DateUtils.DATE_TIME_PATTERN));
data.setTestingTimeDate(DateUtils.stringToDate(data.getTestingTime(), DateUtils.DATE_TIME_PATTERN));
}
}
}
@ -529,10 +529,10 @@ public class PersonTestingServiceImpl extends BaseServiceImpl<PersonTestingDao,
}
public void saveList(List<PersonTestingImportMoudleExcel> excelList) {
List<PersonTestingEntity> entitys = new ArrayList<>();
List<PersonTestingDTO> dtos = ConvertUtils.sourceToTarget(excelList, PersonTestingDTO.class);
for (PersonTestingImportMoudleExcel excel : excelList) {
PersonTestingDTO dto = ConvertUtils.sourceToTarget(excel, PersonTestingDTO.class);
dto.setTestingTime(excel.getTestingTimeDate());
for (PersonTestingDTO dto : dtos) {
// 0女;1男
String sex = IdentityNoUtils.getSex(dto.getIdcard());
dto.setSex(NumConstant.ONE_STR.equals(sex) ? "男" : "女");
@ -542,8 +542,14 @@ public class PersonTestingServiceImpl extends BaseServiceImpl<PersonTestingDao,
saveScanningInfoForUserV1(dto);
PersonTestingEntity entity = ConvertUtils.sourceToTarget(dto, PersonTestingEntity.class);
entitys.add(entity);
// 根据身份证号、核酸检测时间比对库里数据,有相同的更新这个人的这条核酸检测记录,匹配不到的插入
String idPersonTesting = baseDao.getIdByIdCardAndTestingTime(entity.getIdcard(), entity.getTestingTime());
if (null == idPersonTesting) {
insert(entity);
} else {
entity.setId(idPersonTesting);
updateById(entity);
}
}
insertBatch(entitys);
}
}

9
epdc-cloud-custom/src/main/resources/mapper/epidemic/PersonTestingDao.xml

@ -147,4 +147,13 @@
AND person.`NAME` = #{realName}
</if>
</select>
<select id="getIdByIdCardAndTestingTime" resultType="java.lang.String">
SELECT
person.ID
FROM epdc_person_testing person
WHERE person.DEL_FLAG = '0'
AND person.IDCARD = #{idcard}
AND person.TESTING_TIME = #{testingTime}
</select>
</mapper>

Loading…
Cancel
Save