Browse Source

磐石导入导出新增列表详情均增加7天途径地,导入对下拉框字段值校验正确性

dev
sunyuchao 3 years ago
parent
commit
0f82049a56
  1. 5
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcTripReportRecordDTO.java
  2. 4
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcTripReportFormDTO.java
  3. 4
      epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcTripReportRecordEntity.java
  4. 7
      epmet-user/epmet-user-server/src/main/java/com/epmet/excel/IcPsTripReportRecordExcel.java
  5. 8
      epmet-user/epmet-user-server/src/main/java/com/epmet/excel/IcPsTripReportRecordExportExcel.java
  6. 79
      epmet-user/epmet-user-server/src/main/java/com/epmet/excel/handler/IcPsTripReportExcelImportListener.java
  7. 38
      epmet-user/epmet-user-server/src/main/java/com/epmet/excel/handler/IcTripReportExcelImportListener.java
  8. 3
      epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.86__alter_ic_trip_report.sql
  9. BIN
      epmet-user/epmet-user-server/src/main/resources/excel/ps_trip_report_import_template.xlsx

5
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcTripReportRecordDTO.java

@ -289,6 +289,11 @@ public class IcTripReportRecordDTO implements Serializable {
*/
@ExcelIgnore
private String registeredResidence;
/**
* 7天内到达或途径磐石
*/
@ExcelIgnore
private String passBy;
/**
* 来曹事由磐石
*/

4
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcTripReportFormDTO.java

@ -209,6 +209,10 @@ public class IcTripReportFormDTO implements Serializable {
*/
@NotBlank(message = "户籍地不能为空", groups = {PsAdd.class})
private String registeredResidence;
/**
* 7天内到达或途径磐石
*/
private String passBy;
/**
* 来曹事由磐石
*/

4
epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcTripReportRecordEntity.java

@ -139,6 +139,10 @@ public class IcTripReportRecordEntity extends BaseEpmetEntity {
* 户籍地 磐石
*/
private String registeredResidence;
/**
* 7天内到达或途径磐石
*/
private String passBy;
/**
* 来曹事由磐石
*/

7
epmet-user/epmet-user-server/src/main/java/com/epmet/excel/IcPsTripReportRecordExcel.java

@ -39,6 +39,9 @@ public class IcPsTripReportRecordExcel {
@NotBlank(message = "来自地区详细地址不能为空")
private String sourceDetailAddress;
@ExcelProperty("7天内到达或途径")
private String passBy;
@ExcelProperty("来曹事由(100字以内)")
@NotBlank(message = "来曹事由不能为空")
@Length(max = 500,message = "来曹事由不能超过100字")
@ -84,10 +87,10 @@ public class IcPsTripReportRecordExcel {
@ExcelProperty("是否达到曹县")
private String isArrive;
@ExcelProperty("上报时间\n" +
/*@ExcelProperty("上报时间\n" +
"(2022-01-01)")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date reportingTime;
private Date reportingTime;*/
@ExcelProperty("管控措施\n" +
"(500字以内)")

8
epmet-user/epmet-user-server/src/main/java/com/epmet/excel/IcPsTripReportRecordExportExcel.java

@ -55,11 +55,17 @@ public class IcPsTripReportRecordExportExcel implements Serializable {
@ColumnWidth(30)
@ExcelProperty(value = "来自地区详细地址",order = 6)
private String sourceDetailAddress;
/**
* 7天内到达或途径磐石
*/
@ColumnWidth(25)
@ExcelProperty(value = "7天内到达或途径")
private String passBy;
/**
* 来曹事由100字以内磐石
*/
@ColumnWidth(25)
@ExcelProperty(value = "来曹事由(100字以内)",order = 7)
@ExcelProperty(value = "来曹事由(100字以内)")
private String describeContent;
/**
* 48小时核酸检测 0:阴性 1:阳性 -中国字

79
epmet-user/epmet-user-server/src/main/java/com/epmet/excel/handler/IcPsTripReportExcelImportListener.java

@ -6,17 +6,18 @@ import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult;
import com.epmet.commons.tools.exception.ExceptionUtils;
import com.epmet.commons.tools.exception.ValidateException;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.DateUtils;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.constant.IcResiUserConstant;
import com.epmet.entity.IcTripReportRecordEntity;
import com.epmet.excel.IcPsTripReportRecordExcel;
import com.epmet.excel.data.IcTripReportExcelData;
import com.epmet.excel.error.IcPsTripReportRecordErrorExcel;
import com.epmet.service.impl.IcTripReportRecordServiceImpl;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.concurrent.atomic.AtomicBoolean;
@ -78,18 +79,45 @@ public class IcPsTripReportExcelImportListener implements ReadListener<IcPsTripR
AtomicBoolean bl = new AtomicBoolean(false);
StringBuffer errMsg = new StringBuffer("");
IcTripReportRecordEntity e = ConvertUtils.sourceToTarget(data, IcTripReportRecordEntity.class);
e.setCustomerId(customerId);
e.setAgencyId(staffInfo.getAgencyId());
e.setPids(staffInfo.getAgencyPIds());
e.setUserType(IcResiUserConstant.USER_TYPE_IMPORT);
e.setNatOutcome("阳性".equals(e.getNatOutcome()) ? "1" : "0");
if (trafficTypeMap.containsKey(data.getTrafficType())) {
e.setTrafficType(trafficTypeMap.get(data.getTrafficType()));
//先对一下字段值填写是否正确做判断
if (!"阳性".equals(e.getNatOutcome()) && !"阴性".equals(e.getNatOutcome())) {
errMsg.append("‘48小时核酸检测’值填写错误;");
bl.set(true);
}
if (!trafficTypeMap.containsKey(data.getTrafficType())) {
errMsg.append("‘返回方式’值填写错误;");
bl.set(true);
}
if ("其他".equals(data.getTrafficType()) && StringUtils.isBlank(data.getTrafficTypeExplain())) {
errMsg.append("返回方式为其他时,请补充“其他返回方式”;");
errMsg.append("返回方式为其他时,请补充‘其他返回方式’;");
bl.set(true);
}
if (StringUtils.isNotBlank(data.getSojournHistory()) && !sojournHistoryMap.containsKey(data.getSojournHistory())) {
errMsg.append("‘7天内旅居史情况’值填写错误;");
bl.set(true);
}
if (StringUtils.isNotBlank(data.getIsolateType()) && !isolateTypeMap.containsKey(data.getIsolateType())) {
errMsg.append("‘隔离状态’值填写错误;");
bl.set(true);
}
if (!"是".equals(e.getIsArriveCheck()) && !"否".equals(e.getIsArriveCheck())) {
errMsg.append("‘是否落实“落地检”’值填写错误;");
bl.set(true);
}
if (!"是".equals(e.getIsArrive()) && !"否".equals(e.getIsArrive())) {
errMsg.append("‘是否达到曹县’值填写错误;");
bl.set(true);
}
if (StringUtils.isNotBlank(data.getTripDataType()) && !tripDataTypeMap.containsKey(data.getTripDataType())) {
errMsg.append("‘类型(省内、省外、市内、县内)’值填写错误;");
bl.set(true);
}
/*//必要字段没值的
if (StringUtils.isEmpty(e.getSourceAddress()) || StringUtils.isEmpty(e.getPresentAddress())
|| StringUtils.isEmpty(e.getTrafficType())) {
errMsg.append("数据不完整,请检查‘来源地’、‘在曹居住地点’、‘返回方式’信息是否填写完整;");
bl.set(true);
}*/
if (StringUtils.isNotBlank(data.getSojournHistory())) {
e.setSojournHistory(sojournHistoryMap.get(data.getSojournHistory()));
} else {
@ -103,20 +131,7 @@ public class IcPsTripReportExcelImportListener implements ReadListener<IcPsTripR
e.setSojournHistory(areaMap.get(str[2]));
}
}
if (StringUtils.isNotBlank(data.getIsolateType())) {
e.setIsolateType(isolateTypeMap.get(data.getIsolateType()));
}
if (StringUtils.isNotBlank(data.getTripDataType())) {
e.setTripDataType(tripDataTypeMap.get(data.getTripDataType()));
}
e.setIsArriveCheck("是".equals(data.getIsArriveCheck()) ? "1" : "0");
e.setIsArrive("是".equals(data.getIsArrive()) ? "1" : "0");
//必要字段没值的
if (StringUtils.isEmpty(e.getSourceAddress()) || StringUtils.isEmpty(e.getPresentAddress())
|| StringUtils.isEmpty(e.getTrafficType())) {
errMsg.append("数据不完整,请检查‘来源地’、‘在曹居住地点’、‘返回方式’信息是否填写完整;");
bl.set(true);
}
//错误数据记录到错误文件
if (bl.get()) {
IcPsTripReportRecordErrorExcel errorRow = new IcPsTripReportRecordErrorExcel();
errorRow.setName(data.getName());
@ -126,6 +141,24 @@ public class IcPsTripReportExcelImportListener implements ReadListener<IcPsTripR
errorRows.add(errorRow);
return;
}
e.setCustomerId(customerId);
e.setAgencyId(staffInfo.getAgencyId());
e.setPids(staffInfo.getAgencyPIds());
e.setUserType(IcResiUserConstant.USER_TYPE_IMPORT);
e.setNatOutcome("阳性".equals(e.getNatOutcome()) ? "1" : "0");
if (trafficTypeMap.containsKey(data.getTrafficType())) {
e.setTrafficType(trafficTypeMap.get(data.getTrafficType()));
}
if (StringUtils.isNotBlank(data.getIsolateType())) {
e.setIsolateType(isolateTypeMap.get(data.getIsolateType()));
}
if (StringUtils.isNotBlank(data.getTripDataType())) {
e.setTripDataType(tripDataTypeMap.get(data.getTripDataType()));
}
e.setIsArriveCheck("是".equals(data.getIsArriveCheck()) ? "1" : "0");
e.setIsArrive("是".equals(data.getIsArrive()) ? "1" : "0");
e.setReportingTime(DateUtils.integrate(new Date(), "yyyy-MM-dd"));
datas.add(e);
if (datas.size() == MAX_THRESHOLD) {

38
epmet-user/epmet-user-server/src/main/java/com/epmet/excel/handler/IcTripReportExcelImportListener.java

@ -10,7 +10,6 @@ import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.constant.IcResiUserConstant;
import com.epmet.entity.IcTripReportRecordEntity;
import com.epmet.excel.data.IcTripReportExcelData;
import com.epmet.excel.error.IcPsTripReportRecordErrorExcel;
import com.epmet.service.impl.IcTripReportRecordServiceImpl;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
@ -65,24 +64,28 @@ public class IcTripReportExcelImportListener implements ReadListener<IcTripRepor
try {
// 先校验数据
ValidatorUtils.validateEntity(data);
AtomicBoolean bl = new AtomicBoolean(false);
StringBuffer errMsg = new StringBuffer("");
IcTripReportRecordEntity tripReportRecordEntity = ConvertUtils.sourceToTarget(data, IcTripReportRecordEntity.class);
tripReportRecordEntity.setCustomerId(customerId);
tripReportRecordEntity.setAgencyId(staffInfo.getAgencyId());
tripReportRecordEntity.setPids(staffInfo.getAgencyPIds());
tripReportRecordEntity.setUserType(IcResiUserConstant.USER_TYPE_IMPORT);
tripReportRecordEntity.setIsNatRecord("是".equals(data.getIsNatRecord()) ? "1" : "0");
tripReportRecordEntity.setVaccineNum(tripReportRecordEntity.getVaccineNum().replace("次",""));
if (trafficTypeMap.containsKey(data.getTrafficType())) {
tripReportRecordEntity.setTrafficType(trafficTypeMap.get(data.getTrafficType()));
IcTripReportRecordEntity e = ConvertUtils.sourceToTarget(data, IcTripReportRecordEntity.class);
//先对一下字段值填写是否正确做判断
if (!trafficTypeMap.containsKey(data.getTrafficType())) {
errMsg.append("‘返回方式’值填写错误;");
bl.set(true);
}
if ("其他".equals(data.getTrafficType()) && StringUtils.isBlank(data.getTrafficTypeExplain())) {
errMsg.append("返回方式为其他时,请补充“其他返回方式”;");
bl.set(true);
}
if (!"是".equals(e.getIsNatRecord()) && !"否".equals(e.getIsNatRecord())) {
errMsg.append("‘48小时核酸检测’值填写错误;");
bl.set(true);
}
if (!"0次".equals(e.getVaccineNum()) && !"1次".equals(e.getVaccineNum())
&& !"2次".equals(e.getVaccineNum()) && !"3次".equals(e.getVaccineNum())) {
errMsg.append("‘疫苗接种针次’值填写错误;");
bl.set(true);
}
//错误数据记录到错误文件
if (bl.get()) {
IcTripReportExcelData.ErrorRow errorRow = new IcTripReportExcelData.ErrorRow();
errorRow.setName(data.getName());
@ -93,7 +96,16 @@ public class IcTripReportExcelImportListener implements ReadListener<IcTripRepor
return;
}
datas.add(tripReportRecordEntity);
e.setCustomerId(customerId);
e.setAgencyId(staffInfo.getAgencyId());
e.setPids(staffInfo.getAgencyPIds());
e.setUserType(IcResiUserConstant.USER_TYPE_IMPORT);
e.setIsNatRecord("是".equals(data.getIsNatRecord()) ? "1" : "0");
e.setVaccineNum(e.getVaccineNum().replace("次", ""));
if (trafficTypeMap.containsKey(data.getTrafficType())) {
e.setTrafficType(trafficTypeMap.get(data.getTrafficType()));
}
datas.add(e);
if (datas.size() == MAX_THRESHOLD) {
execPersist();

3
epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.86__alter_ic_trip_report.sql

@ -0,0 +1,3 @@
ALTER TABLE `ic_trip_report_record`
ADD COLUMN `pass_by` varchar(255) NULL COMMENT '7天内到达或途径【磐石】' AFTER `registered_residence`;

BIN
epmet-user/epmet-user-server/src/main/resources/excel/ps_trip_report_import_template.xlsx

Binary file not shown.
Loading…
Cancel
Save