|
@@ -23,6 +23,7 @@ import com.xy.dto.MercFeeConfigSimCardDto;
|
|
|
import com.xy.entity.DeviceSim;
|
|
|
import com.xy.entity.DeviceSimCharge;
|
|
|
import com.xy.entity.SysDictRedis;
|
|
|
+import com.xy.error.CommRuntimeException;
|
|
|
import com.xy.mapper.DeviceSimMapper;
|
|
|
import com.xy.service.be.MercService;
|
|
|
import com.xy.util.ExcelUtils;
|
|
@@ -34,6 +35,7 @@ import lombok.Data;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import lombok.SneakyThrows;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.apache.commons.lang.time.DateUtils;
|
|
|
import org.springframework.context.annotation.Lazy;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.validation.annotation.Validated;
|
|
@@ -44,15 +46,13 @@ import org.springframework.web.multipart.MultipartFile;
|
|
|
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
import java.io.File;
|
|
|
-import java.io.IOException;
|
|
|
import java.io.InputStream;
|
|
|
import java.io.OutputStream;
|
|
|
import java.time.LocalDate;
|
|
|
import java.time.LocalDateTime;
|
|
|
+import java.time.ZoneId;
|
|
|
import java.time.format.DateTimeFormatter;
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
+import java.util.*;
|
|
|
|
|
|
import static com.xy.utils.PlusBeans.toIPage;
|
|
|
import static com.xy.utils.PlusBeans.toPageBean;
|
|
@@ -406,31 +406,46 @@ public class DeviceSimServiceImpl extends ServiceImpl<DeviceSimMapper, DeviceSim
|
|
|
*/
|
|
|
@Override
|
|
|
public void doAfterAllAnalysed(AnalysisContext context) {
|
|
|
+ StringJoiner errorJoiner = new StringJoiner(",");
|
|
|
LocalDateTime now = LocalDateTime.now();
|
|
|
JList<DeviceSim> saveDeviceSims = new JArrayList<>();
|
|
|
- DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
|
|
sims.forEach(uploadSim -> {
|
|
|
try {
|
|
|
- String activateTime = uploadSim.getActivateTime();
|
|
|
- String timeout = uploadSim.getTimeout();
|
|
|
- String lastRenewalTime = uploadSim.getLastRenewalTime();
|
|
|
DeviceSim deviceSim = new DeviceSim()
|
|
|
.setId(uploadSim.getSimId().trim().replace("\"", "").replace("'", ""))
|
|
|
.setType(uploadSim.getType())
|
|
|
- .setActivateTime(Emptys.check(activateTime) ? LocalDate.parse(activateTime.trim(), df).atTime(0, 0, 0) : null)
|
|
|
- .setTimeout(Emptys.check(timeout) ? LocalDate.parse(timeout.trim(), df).atTime(0, 0, 0) : null)
|
|
|
- .setLastRenewalTime(Emptys.check(lastRenewalTime) ? LocalDate.parse(lastRenewalTime.trim(), df).atTime(0, 0, 0) : null)
|
|
|
+ .setActivateTime(toLocalDateTime(uploadSim.getActivateTime()))
|
|
|
+ .setTimeout(toLocalDateTime(uploadSim.getTimeout()))
|
|
|
+ .setLastRenewalTime(toLocalDateTime(uploadSim.getLastRenewalTime()))
|
|
|
.setCreateTime(now)
|
|
|
.setUpdateTime(now)
|
|
|
.setIsTest(Emptys.check(uploadSim.getIsTest()) && uploadSim.getIsTest().equals("是"));
|
|
|
saveDeviceSims.add(deviceSim);
|
|
|
} catch (Exception e) {
|
|
|
+ String format = String.format("%s导入异常:%s", uploadSim.getSimId(), e.getMessage());
|
|
|
+ errorJoiner.add(format);
|
|
|
log.error("", e);
|
|
|
}
|
|
|
});
|
|
|
if (Emptys.check(saveDeviceSims)) {
|
|
|
deviceSimService.saveOrUpdateBatch(saveDeviceSims);
|
|
|
}
|
|
|
+ if (errorJoiner.length() > 0) {
|
|
|
+ throw new CommRuntimeException(errorJoiner.toString());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private LocalDateTime toLocalDateTime(String date) {
|
|
|
+ if (!Emptys.check(date)) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ if (date.matches("\\d+")) {
|
|
|
+ Calendar calendar = new GregorianCalendar(1900, 0, -1);
|
|
|
+ Date dd = DateUtils.addDays(calendar.getTime(), Integer.parseInt(date));
|
|
|
+ return dd.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
|
|
|
+ } else {
|
|
|
+ return LocalDate.parse(date, DateTimeFormatter.ofPattern("yyyy-MM-dd")).atTime(0, 0, 0);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|