Browse Source

修改导入导出预测、订单、及模板

bai 1 month ago
parent
commit
3a75f5eb2e

+ 0 - 1
blade-service-api/blade-factory-api/src/main/java/org/springblade/factory/entity/PcBladeSalesForecastMain.java

@@ -67,6 +67,5 @@ public class PcBladeSalesForecastMain extends BaseEntity {
 	@TableField(exist = false)
 	private List<PcBladeSalesForecastSummary> PcBladeSalesForecastSummaryList;
 
-
 }
 

+ 25 - 8
blade-service/blade-factory/src/main/java/org/springblade/factory/api/controller/SalesForecastSummaryController.java

@@ -74,6 +74,8 @@ public class SalesForecastSummaryController {
 
 	private final SalesOrderController salesOrderController;
 
+	private final PcBladeSalesForecastMainService forecastMainService;
+
 
 	@Autowired
 	private IUserClient userClient;
@@ -205,10 +207,21 @@ public class SalesForecastSummaryController {
 
 
 
-	@PostMapping("/importForecastData")
+	@PostMapping("/importForecastData/{id}")
 	@ApiOperation(value = "导入销售预测数据(覆盖当月数据)")
 	@Transactional
-	public R<String> importForecastData(@RequestParam("file") MultipartFile file) {
+	public R<List<PcBladeSalesForecastSummary>> importForecastData(@PathVariable("id") Long id, @RequestParam("file") MultipartFile file) {
+
+		if (id == null) {
+			return R.fail("预测ID不能为空");
+		}
+
+		PcBladeSalesForecastMain pcBladeDealerForecast = forecastMainService.getById(id);
+
+		if (pcBladeDealerForecast == null) {
+			return R.fail("预测主数据不存在");
+		}
+
 		// 1. 校验文件
 		if (file.isEmpty()) {
 			return R.fail("导入文件不能为空");
@@ -264,6 +277,7 @@ public class SalesForecastSummaryController {
 				// 基础字段(年月)
 				summary.setYear(currentYear);
 				summary.setMonth(currentMonth);
+				summary.setForecastMainId(id); // 关联主预测表的ID
 
 				QueryWrapper<ViewCustomerSel> queryWrapper = new QueryWrapper<>();
 				queryWrapper.eq("customer_id", user.getData().getCustomerId());
@@ -315,7 +329,15 @@ public class SalesForecastSummaryController {
 				forecastService.saveBatch(saveList);
 			}
 
-			return R.success(String.format("数据导入成功,共导入%s条有效数据,已覆盖当月原有数据", saveList.size()));
+			PcBladeSalesForecastSummary pcBladeSalesForecastSummary = new PcBladeSalesForecastSummary();
+			pcBladeSalesForecastSummary.setForecastMainId(id);
+			QueryWrapper<PcBladeSalesForecastSummary> queryWrapper = new QueryWrapper<>();
+			queryWrapper.eq("forecast_main_id", id);
+
+			List<PcBladeSalesForecastSummary> lists = forecastService.list(queryWrapper);
+
+			return R.data(lists);
+//			return R.success(String.format("数据导入成功,共导入%s条有效数据,已覆盖当月原有数据", saveList.size()));
 
 		} catch (Exception e) {
 			e.printStackTrace();
@@ -499,11 +521,6 @@ public class SalesForecastSummaryController {
 	}
 
 
-
-
-
-
-
 	/**
 	 * 根据ID查询销售预测主表
 	 */

+ 42 - 26
blade-service/blade-factory/src/main/java/org/springblade/factory/api/controller/SalesOrderController.java

@@ -20,6 +20,7 @@ import org.springblade.core.mp.support.Query;
 import org.springblade.core.secure.BladeUser;
 import org.springblade.core.tool.api.R;
 import org.springblade.factory.api.service.ZcrmU9cWebapiSoService;
+import org.springblade.factory.common.GeneratedNumberUitls;
 import org.springblade.factory.domain.OrderImportDTO;
 import org.springblade.factory.dto.PcBladeOrderItemDTO;
 import org.springblade.factory.entity.*;
@@ -89,7 +90,7 @@ public class SalesOrderController {
 	private ZcrmViewItemSelService zcrmViewItemSelService;
 	@Autowired
 	private ZcrmViewWhqohSelService zcrmViewWhqohSelService;
-
+	private final GeneratedNumberUitls generatedNumberUitls;
 
 	// ====================== 功能1:下载可下单物料模板 ======================
 	@GetMapping("/downloadTemplate")
@@ -184,18 +185,15 @@ public class SalesOrderController {
 	 * 用户关联品牌和商品业务接口
 	 */
 	public Map<String, Object> getUserLinkGoodsPro() {
-		// 获取当前登录用户ID
-		Long userId = AuthUtil.getUserId();
-		if (userId == null) {
 
-		}
-		R<User> user = userClient.userInfoById(userId);
-		QueryWrapper<ViewCustomerSel> queryWrapper = new QueryWrapper<>();
-		queryWrapper.eq("Customer_ID", user.getData().getCustomerId());
-		ViewCustomerSel viewCustomerSel = zcrmViewCustomerSelService.getOne(queryWrapper);
-		if (viewCustomerSel == null) {
+		// 2. 获取当前用户+年月(用于删除原有数据)
+		Long id = AuthUtil.getUserId();
+		R<User> userInfo = userClient.userInfoById(id);
+		System.out.println(userInfo.getData());
+
+		Long Customer_ID = userInfo.getData().getCustomerId();
+		ViewCustomerSel viewCustomerSel = zcrmViewCustomerSelService.selectZcrmViewCustomerSelByCustomerId(Customer_ID);
 
-		}
 		System.err.println(viewCustomerSel);
 		String pubDescSeg4Name = viewCustomerSel.getPubDescSeg4Name();
 		if (Objects.equals(pubDescSeg4Name, "") || pubDescSeg4Name == null) {
@@ -274,12 +272,22 @@ public class SalesOrderController {
 
 
 	// ====================== 功能2:导入订单(删除原有数据,以导入为准) ======================
-	@PostMapping("/importOrder")
+	@PostMapping("/importOrder/{id}")
 	@ApiOperation(value = "导入订单数据", notes = "导入前删除当月原有订单数据,以导入数据为准")
 	@Transactional
-	public R<String> importOrder(
-		@ApiParam(value = "订单Excel文件", required = true) @RequestParam("file") MultipartFile file
+	public R<List<PcBladeOrderItem>> importOrder(
+		@ApiParam(value = "订单Excel文件", required = true) @PathVariable("id") Long id, @RequestParam("file") MultipartFile file
 	) {
+
+		if (id == null) {
+			return R.fail("订单ID不能为空!");
+		}
+
+		PcBladeOrder order = orderService.getById(id);
+		if (order == null) {
+			return R.fail("该订单不存在!");
+		}
+
 		// 1. 文件校验
 		if (file.isEmpty()) {
 			return R.fail("导入文件不能为空");
@@ -290,29 +298,28 @@ public class SalesOrderController {
 		}
 
 		// 2. 获取当前用户+年月(用于删除原有数据)
-		String userAccount = AuthUtil.getUserAccount();
-
 		Long userId = AuthUtil.getUserId();
-		if (userId == null) {
-			return R.fail("用户未登录");
-		}
-		R<User> user = userClient.userInfoById(userId);
-		if(user  == null) {
+		R<User> userInfo = userClient.userInfoById(userId);
+		if (userInfo.getData() == null || userInfo.getData().getCustomerId() == null) {
 			return R.fail("用户不存在");
 		}
 
+		Long Customer_ID = userInfo.getData().getCustomerId();
+		ViewCustomerSel zcrmViewCustomerSel = zcrmViewCustomerSelService.selectZcrmViewCustomerSelByCustomerId(Customer_ID);
+		if (zcrmViewCustomerSel == null) {
+			return R.fail("用户数据不存在");
+		}
 
 		LocalDate now = LocalDate.now();
 		int currentYear = now.getYear();
 		int currentMonth = now.getMonthValue();
 
-
 		// 4. 解析Excel数据
 		List<PcBladeOrderItem> saveList = new ArrayList<>();
 		try {
 			// 3. 删除当月原有订单数据(核心:以导入为准,先删后导)
 			LambdaQueryWrapper<PcBladeOrderItem> deleteWrapper = new LambdaQueryWrapper<>();
-			deleteWrapper.eq(PcBladeOrderItem::getCreateUser, user.getData().getCustomerId()) // 当前用户的订单
+			deleteWrapper.eq(PcBladeOrderItem::getCreateUser, Customer_ID) // 当前用户的订单
 				.eq(PcBladeOrderItem::getItemStatus, 0) // 仅删除未确认的订单(可根据业务调整)
 				.apply("YEAR(create_time) = {0} AND MONTH(create_time) = {1}", currentYear, currentMonth); // 当月数据
 			orderItemService.remove(deleteWrapper);
@@ -340,7 +347,11 @@ public class SalesOrderController {
 				// 构建订单实体
 				PcBladeOrderItem orderItem = new PcBladeOrderItem();
 				// 基础字段
-				orderItem.setOrderCode(generateOrderCode(userAccount)); // 生成订单编号(自定义方法)
+				String orderCode = generatedNumberUitls.createOrderNo().getOrderCode();
+
+				orderItem.setOrderId(id); // 关键主订单表ID
+
+				orderItem.setOrderCode(orderCode); // 生成订单编号(自定义方法)
 				orderItem.setItemStatus(0); // 0未确认
 				// 物料信息(从Excel导入)
 				orderItem.setItemCode(dto.getItemCode().trim());
@@ -361,7 +372,7 @@ public class SalesOrderController {
 				// 订单数量
 				orderItem.setOrderQuantity(dto.getOrderQuantity());
 				// 创建人信息
-				orderItem.setCreateUser(Long.parseLong(userAccount)); // 适配你的用户ID类型
+				orderItem.setCreateUser(userId); // 适配你的用户ID类型
 				// 其他默认值
 				orderItem.setConfirmQuantity(BigDecimal.ZERO);
 				orderItem.setUnitPrice(BigDecimal.ZERO);
@@ -374,7 +385,12 @@ public class SalesOrderController {
 				orderItemService.saveBatch(saveList);
 			}
 
-			return R.success("订单导入成功!共导入" + saveList.size() + "条有效订单,已删除当月原有订单数据");
+			QueryWrapper<PcBladeOrderItem> queryWrapper = new QueryWrapper<>();
+			queryWrapper.eq("order_id", id);
+			List<PcBladeOrderItem> list = orderItemService.list(queryWrapper);
+			return R.data(list);
+
+//			return R.success("订单导入成功!共导入" + saveList.size() + "条有效订单,已删除当月原有订单数据");
 
 		} catch (Exception e) {
 			e.printStackTrace();