浏览代码

增加定单状态接口

bai 4 周之前
父节点
当前提交
0d57ce3c0a

+ 17 - 0
blade-service/blade-factory/src/main/java/org/springblade/factory/api/controller/SalesForecastSummaryController.java

@@ -16,9 +16,12 @@ import org.springblade.core.tool.api.R;
 import org.springblade.factory.entity.PcBladeSalesForecastSummary;
 import org.springblade.factory.entity.PjpfBrandDesc;
 import org.springblade.factory.entity.PjpfStockDesc;
+import org.springblade.factory.entity.ViewCustomerSel;
 import org.springblade.factory.service.PcBladeSalesForecastSummaryService;
 import org.springblade.factory.service.PjpfBrandDescService;
 import org.springblade.factory.service.PjpfStockDescService;
+import org.springblade.factory.service.ZcrmViewCustomerSelService;
+import org.springblade.u9cloud.entity.ZcrmViewCustomerSel;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 import springfox.documentation.annotations.ApiIgnore;
@@ -29,6 +32,7 @@ import java.time.LocalDate;
 import java.time.format.DateTimeParseException;
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 
 /**
  * 销售预测接口 控制器
@@ -44,6 +48,8 @@ public class SalesForecastSummaryController {
 	/* ========== 经销商提报 ========== */
 	private final PcBladeSalesForecastSummaryService forecastService;
 
+	private final ZcrmViewCustomerSelService customerSelService;
+
 
 	/**
 	 * 销售预测汇总列表
@@ -190,6 +196,9 @@ public class SalesForecastSummaryController {
 	public R<String> addForecastSummarySubmit(@RequestBody PcBladeSalesForecastSummary forecast) {
 		// 设置当前登录用户ID作为经销商ID
 		forecast.setCustomerId(AuthUtil.getUserId());
+		ViewCustomerSel zcrmViewCustomerSel = customerSelService.selectZcrmViewCustomerSelByCustomerId(forecast.getCustomerId());
+		forecast.setCustomerCode(zcrmViewCustomerSel.getCustomerCode());
+		forecast.setCustomerName(zcrmViewCustomerSel.getCustomerName());
 		return forecastService.saveOrUpdateForecast(forecast);
 	}
 
@@ -199,6 +208,11 @@ public class SalesForecastSummaryController {
 	@PostMapping("/update")
 	public R<String> updateForecastSummarySubmit(@RequestBody PcBladeSalesForecastSummary forecast) {
 		// 验证权限,确保只能修改自己的预测数据
+
+		if (!Objects.equals(forecast.getCustomerId(), AuthUtil.getUserId())) {
+			return R.data("非法操作ID不一致");
+		}
+
 		if (forecast.getCustomerId() == null) {
 			forecast.setCustomerId(AuthUtil.getUserId());
 		}
@@ -214,6 +228,9 @@ public class SalesForecastSummaryController {
 		Long customerId = AuthUtil.getUserId();
 		for (PcBladeSalesForecastSummary forecast : forecasts) {
 			forecast.setCustomerId(customerId);
+			ViewCustomerSel zcrmViewCustomerSel = customerSelService.selectZcrmViewCustomerSelByCustomerId(forecast.getCustomerId());
+			forecast.setCustomerCode(zcrmViewCustomerSel.getCustomerCode());
+			forecast.setCustomerName(zcrmViewCustomerSel.getCustomerName());
 		}
 		return forecastService.batchSaveOrUpdateForecasts(forecasts);
 	}

+ 35 - 0
blade-service/blade-factory/src/main/java/org/springblade/factory/api/controller/SalesOrderController.java

@@ -365,6 +365,41 @@ public class SalesOrderController {
 	}
 
 
+	/**
+	 * 设置订单状态
+	 * @param pcBladeOrder
+	 * @return
+	 */
+	@PutMapping("/setOrderStatus")
+	public R<Boolean> setOrderStatus(@RequestBody PcBladeOrder pcBladeOrder) {
+		if (pcBladeOrder.getId() == null) {
+			return R.data(404,false,"非法操作,ID不能为空");
+		}
+
+		PcBladeOrder res = orderService.selectPcBladeOrderById(pcBladeOrder.getId());
+
+		if (res == null) {
+			return R.data(404,false,"数据不存在");
+		}
+
+		if (Objects.equals(res.getStatus(), pcBladeOrder.getStatus())) {
+			return R.data(404,false,"请勿重复设置状态");
+		}
+
+		Long id = AuthUtil.getUserId();
+		if (!Objects.equals(res.getCustomerId(), id)) {
+			return R.data(404,false,"非法操作,访问人有误");
+		}
+
+		boolean result = orderService.updatePcBladeOrderPro(pcBladeOrder);
+		if (result) {
+			return R.data(200,true, "设置成功");
+		} else {
+			return R.data(404,false, "设置失败");
+		}
+	}
+
+
 
 	/**
 	 * 新增

+ 7 - 0
blade-service/blade-factory/src/main/java/org/springblade/factory/service/PcBladeOrderService.java

@@ -41,6 +41,13 @@ public interface PcBladeOrderService extends BaseService<PcBladeOrder> {
 	 */
 	public boolean updatePcBladeOrder(PcBladeOrder pcBladeOrder);
 
+	/**
+	 * 修改一条订单信息 -- 用户设置状态
+	 * @param pcBladeOrder
+	 * @return
+	 */
+	public boolean updatePcBladeOrderPro(PcBladeOrder pcBladeOrder);
+
 
 	/**
 	 * 根据订单编号查询订单及明细

+ 11 - 0
blade-service/blade-factory/src/main/java/org/springblade/factory/service/impl/PcBladeOrderServiceImpl.java

@@ -118,6 +118,17 @@ public class PcBladeOrderServiceImpl extends BaseServiceImpl<PcBladeOrderMapper,
 		return this.updateById(pcBladeOrder);
 	}
 
+	@Override
+	public boolean updatePcBladeOrderPro(PcBladeOrder pcBladeOrder) {
+		// 4. 设置更新信息
+		pcBladeOrder.setUpdateTime(new Date());
+		pcBladeOrder.setUpdateUser(AuthUtil.getUserId());
+		// 5. 执行更新
+		return this.updateById(pcBladeOrder);
+	}
+
+
+
 
 	private final PcBladeOrderItemService orderItemService;
 

+ 5 - 7
blade-service/blade-factory/src/main/java/org/springblade/factory/service/impl/PcBladeSalesForecastSummaryServiceImpl.java

@@ -138,7 +138,7 @@ public class PcBladeSalesForecastSummaryServiceImpl extends BaseServiceImpl<PcBl
 		boolean isUpdate = !existingForecasts.isEmpty();
 
 		// 4. 设置公共字段
-		if (isUpdate) {
+		if (existingForecasts != null && existingForecasts.size() > 0) {
 			// 更新操作,获取已有记录的ID
 			forecast.setId(existingForecasts.get(0).getId());
 			forecast.setUpdateTime(new Date());
@@ -150,7 +150,7 @@ public class PcBladeSalesForecastSummaryServiceImpl extends BaseServiceImpl<PcBl
 			forecast.setApprovedTime(null);
 		} else {
 			// 新增操作,生成ID
-			forecast.setId(IdWorker.getId()); // MyBatis-Plus自带的雪花算法ID生成
+//			forecast.setId(IdWorker.getId()); // MyBatis-Plus自带的雪花算法ID生成
 			forecast.setCreateTime(new Date());
 			forecast.setCreateUser(loginUserId);
 			forecast.setUpdateTime(new Date());
@@ -201,7 +201,7 @@ public class PcBladeSalesForecastSummaryServiceImpl extends BaseServiceImpl<PcBl
 			boolean isUpdate = !existingForecasts.isEmpty();
 
 			// 4. 设置公共字段
-			if (isUpdate) {
+			if (existingForecasts != null && existingForecasts.size() > 0) {
 				forecast.setId(existingForecasts.get(0).getId());
 				forecast.setUpdateTime(new Date());
 				forecast.setUpdateUser(loginUserId);
@@ -210,7 +210,7 @@ public class PcBladeSalesForecastSummaryServiceImpl extends BaseServiceImpl<PcBl
 				forecast.setApprovedName(null);
 				forecast.setApprovedTime(null);
 			} else {
-				forecast.setId(IdWorker.getId()); // MyBatis-Plus自带的雪花算法ID生成
+//				forecast.setId(IdWorker.getId()); // MyBatis-Plus自带的雪花算法ID生成
 				forecast.setCreateTime(new Date());
 				forecast.setCreateUser(loginUserId);
 				forecast.setUpdateTime(new Date());
@@ -224,9 +224,6 @@ public class PcBladeSalesForecastSummaryServiceImpl extends BaseServiceImpl<PcBl
 		return success ? R.success("批量操作成功") : R.fail("批量操作失败");
 	}
 
-	/**
-	 * 根据经销商ID获取最新的预测提报信息
-	 */
 	@Override
 	public List<PcBladeSalesForecastSummary> getLatestByCustomerId(Long customerId) {
 		if (customerId == null) {
@@ -239,6 +236,7 @@ public class PcBladeSalesForecastSummaryServiceImpl extends BaseServiceImpl<PcBl
 		int currentMonth = now.getMonthValue();
 
 		QueryWrapper<PcBladeSalesForecastSummary> queryWrapper = new QueryWrapper<>();
+		// 将customerId改为CUSTOMER_ID,与数据库实际列名保持一致
 		queryWrapper.eq("CUSTOMER_ID", customerId)
 			.eq("year", currentYear)
 			.eq("month", currentMonth)