From d0193c5a4fc63e27622f6780887e19525f088ead Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期三, 11 三月 2026 14:31:16 +0800
Subject: [PATCH] fix: 日期区间格式问题
---
src/main/java/com/ruoyi/productionPlan/service/impl/ProductionPlanServiceImpl.java | 83 +++++++++++++++++++++++++++++++++++++----
1 files changed, 75 insertions(+), 8 deletions(-)
diff --git a/src/main/java/com/ruoyi/productionPlan/service/impl/ProductionPlanServiceImpl.java b/src/main/java/com/ruoyi/productionPlan/service/impl/ProductionPlanServiceImpl.java
index 994e8c0..1e9f707 100644
--- a/src/main/java/com/ruoyi/productionPlan/service/impl/ProductionPlanServiceImpl.java
+++ b/src/main/java/com/ruoyi/productionPlan/service/impl/ProductionPlanServiceImpl.java
@@ -7,13 +7,16 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.ruoyi.basic.pojo.Product;
+import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.utils.bean.BeanUtils;
import com.ruoyi.common.utils.http.HttpUtils;
+import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.framework.config.AliDingConfig;
import com.ruoyi.production.pojo.ProductOrder;
import com.ruoyi.production.service.ProductOrderService;
import com.ruoyi.productionPlan.dto.ProductionPlanDto;
+import com.ruoyi.productionPlan.dto.ProductionPlanImportDto;
import com.ruoyi.productionPlan.dto.ProductionPlanSummaryDto;
import com.ruoyi.productionPlan.mapper.ProductionPlanMapper;
import com.ruoyi.productionPlan.pojo.ProductionPlan;
@@ -22,13 +25,12 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.multipart.MultipartFile;
+import javax.servlet.http.HttpServletResponse;
import java.math.BigDecimal;
import java.nio.charset.StandardCharsets;
-import java.time.Instant;
-import java.time.LocalDateTime;
-import java.time.OffsetDateTime;
-import java.time.ZoneId;
+import java.time.*;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
import java.util.*;
@@ -121,7 +123,7 @@
.reduce(BigDecimal.ZERO, BigDecimal::add);
// 鍒ゆ柇涓嬪彂鏁伴噺鏄惁澶т簬绛変簬鏂规暟
if (productionPlanDto.getTotalAssignedQuantity().compareTo(totalVolume) > 0) {
- log.warn("鍚堝苟澶辫触锛屼笅鍙戞暟閲忎笉鑳藉ぇ浜庢柟鏁�");
+ log.warn("鎿嶄綔澶辫触锛屼笅鍙戞暟閲忎笉鑳藉ぇ浜庢柟鏁�");
return false;
}
@@ -332,8 +334,20 @@
try {
long start = Long.parseLong(dateArr.getString(0));
long end = Long.parseLong(dateArr.getString(1));
- plan.setStartDate(Instant.ofEpochMilli(start).atZone(ZoneId.systemDefault()).toLocalDateTime());
- plan.setEndDate(Instant.ofEpochMilli(end).atZone(ZoneId.systemDefault()).toLocalDateTime());
+
+ Date startDate = Date.from(Instant.ofEpochMilli(start)
+ .atZone(ZoneId.systemDefault())
+ .toLocalDate()
+ .atStartOfDay(ZoneId.systemDefault())
+ .toInstant());
+ Date endDate = Date.from(Instant.ofEpochMilli(end)
+ .atZone(ZoneId.systemDefault())
+ .toLocalDate()
+ .atStartOfDay(ZoneId.systemDefault())
+ .toInstant());
+
+ plan.setStartDate(startDate);
+ plan.setEndDate(endDate);
} catch (Exception e) {
log.warn("瑙f瀽鏃ユ湡澶辫触: {}", dateArr);
}
@@ -425,4 +439,57 @@
public List<ProductionPlanSummaryDto> summaryByProductType(ProductionPlanSummaryDto query) {
return baseMapper.selectSummaryByProductType(query);
}
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void importProdData(MultipartFile file) {
+ if (file == null || file.isEmpty()) {
+ throw new ServiceException("瀵煎叆鏁版嵁涓嶈兘涓虹┖");
+ }
+ ExcelUtil<ProductionPlanImportDto> excelUtil = new ExcelUtil<>(ProductionPlanImportDto.class);
+ List<ProductionPlanImportDto> list;
+ try {
+ list = excelUtil.importExcel(file.getInputStream());
+ } catch (Exception e) {
+ log.error("鐢熶骇闇�姹侲xcel瀵煎叆澶辫触", e);
+ throw new ServiceException("Excel瑙f瀽澶辫触");
+ }
+
+ if (list == null || list.isEmpty()) {
+ throw new ServiceException("Excel娌℃湁鏁版嵁");
+ }
+ List<ProductionPlan> entityList = new ArrayList<>(list.size());
+ ProductionPlan entity;
+ for (ProductionPlanImportDto dto : list) {
+ entity = new ProductionPlan();
+ BeanUtils.copyProperties(dto, entity);
+ entity.setAssignedQuantity(BigDecimal.ZERO);
+ entity.setCreateTime(LocalDateTime.now());
+ entity.setUpdateTime(LocalDateTime.now());
+ entity.setDataSourceType(2);
+ entity.setDataSyncType(1);
+
+ entityList.add(entity);
+ }
+ this.saveBatch(entityList);
+ }
+
+ @Override
+ public void exportProdData(HttpServletResponse response, List<Long> ids) {
+ List<ProductionPlan> list;
+ if (ids != null && !ids.isEmpty()) {
+ list = baseMapper.selectBatchIds(ids);
+ } else {
+ list = baseMapper.selectList(null);
+ }
+
+ List<ProductionPlanImportDto> exportList = new ArrayList<>();
+ for (ProductionPlan entity : list) {
+ ProductionPlanImportDto dto = new ProductionPlanImportDto();
+ BeanUtils.copyProperties(entity, dto);
+ exportList.add(dto);
+ }
+ ExcelUtil<ProductionPlanImportDto> util = new ExcelUtil<>(ProductionPlanImportDto.class);
+ util.exportExcel(response, exportList, "閿�鍞敓浜ч渶姹傛暟鎹�");
+ }
}
--
Gitblit v1.9.3