|
|
@@ -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();
|