Browse Source

20230512 08:27

wangzhuo 2 years ago
parent
commit
8c4393b905

+ 6 - 0
blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/entity/PjProductLaunch.java

@@ -203,6 +203,12 @@ public class PjProductLaunch implements Serializable {
 	private BigDecimal mallPrice;
 	private BigDecimal mallPrice;
 
 
 	/**
 	/**
+	 * app用于显示共享库存字段
+	 */
+	@TableField(exist = false)
+	private BigDecimal sharedCompanyInventory;
+
+	/**
 	 * 详情页共享公司
 	 * 详情页共享公司
 	 */
 	 */
 	@TableField(exist = false)
 	@TableField(exist = false)

+ 23 - 0
blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/entity/PjShoppingCart.java

@@ -24,6 +24,7 @@ import java.time.LocalDateTime;
 import java.io.Serializable;
 import java.io.Serializable;
 import java.util.Date;
 import java.util.Date;
 import java.util.List;
 import java.util.List;
+import java.util.Map;
 
 
 import lombok.Data;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.EqualsAndHashCode;
@@ -265,4 +266,26 @@ public class PjShoppingCart implements Serializable {
 	 */
 	 */
 	@ApiModelProperty(value = "库存")
 	@ApiModelProperty(value = "库存")
 	private BigDecimal inventory;
 	private BigDecimal inventory;
+
+	/**
+	 * 共享公司id
+	 */
+	@ApiModelProperty(value = "共享公司id")
+	private Long sharedCompanyId;
+
+	/**
+	 * 共享公司名称
+	 */
+	@ApiModelProperty(value = "共享公司名称")
+	private String sharedCompanyName;
+
+	@TableField(exist = false)
+	private String address;
+
+	@TableField(exist = false)
+	List<Map<String, Object>> list;
+
+	@TableField(exist = false)
+	private String ids;
+
 }
 }

+ 39 - 2
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/corps/controller/CorpsAddrController.java

@@ -44,6 +44,8 @@ import org.springblade.salesPart.vo.CorpsAddrVO;
 import org.springblade.salesPart.corps.service.ICorpsAddrService;
 import org.springblade.salesPart.corps.service.ICorpsAddrService;
 import org.springblade.core.boot.ctrl.BladeController;
 import org.springblade.core.boot.ctrl.BladeController;
 
 
+import java.util.List;
+
 /**
 /**
  * 配件批发客户明细地址 控制器
  * 配件批发客户明细地址 控制器
  *
  *
@@ -168,8 +170,7 @@ public class CorpsAddrController extends BladeController {
 		LambdaQueryWrapper<PjCorpsAddr> lambdaQueryWrapper = new LambdaQueryWrapper<>();
 		LambdaQueryWrapper<PjCorpsAddr> lambdaQueryWrapper = new LambdaQueryWrapper<>();
 		lambdaQueryWrapper.eq(PjCorpsAddr::getTenantId, AuthUtil.getTenantId())
 		lambdaQueryWrapper.eq(PjCorpsAddr::getTenantId, AuthUtil.getTenantId())
 			.eq(PjCorpsAddr::getIsDeleted, 0)
 			.eq(PjCorpsAddr::getIsDeleted, 0)
-			.eq(PjCorpsAddr::getPid, corpsDesc.getId())
-			.eq(ObjectUtils.isNotEmpty(corpsAddr.getDefaultAddres()), PjCorpsAddr::getDefaultAddres, corpsAddr.getDefaultAddres());
+			.eq(PjCorpsAddr::getPid, corpsDesc.getId());
 
 
 		IPage<PjCorpsAddr> pages = corpsAddrService.page(Condition.getPage(query), lambdaQueryWrapper);
 		IPage<PjCorpsAddr> pages = corpsAddrService.page(Condition.getPage(query), lambdaQueryWrapper);
 		return R.data(pages);
 		return R.data(pages);
@@ -199,4 +200,40 @@ public class CorpsAddrController extends BladeController {
 		corpsAddr.setPid(corpsDesc.getId());
 		corpsAddr.setPid(corpsDesc.getId());
 		return corpsAddrService.saveAddrMessage(corpsAddr);
 		return corpsAddrService.saveAddrMessage(corpsAddr);
 	}
 	}
+
+	/**
+	 * 配件批发小程序客户默认地址
+	 */
+	@GetMapping("/getCorpsAddr")
+	@ApiOperationSupport(order = 9)
+	@ApiOperation(value = "配件批发小程序客户默认地址", notes = "传入corpsAddr")
+	public R<PjCorpsAddr> getCorpsAddr(PjCorpsAddr corpsAddr) {
+
+		PjCorpsDesc corpsDesc;
+		PjCorpsAttn corpsAttn = corpsAttnService.getAttn(AuthUtil.getUserId());
+		if (ObjectUtils.isNull(corpsAttn)) {
+			throw new RuntimeException("未查到用户信息");
+		} else {
+			corpsDesc = corpsDescService.getCorpsDesc(corpsAttn.getPid());
+			if (ObjectUtils.isNull(corpsDesc)) {
+				throw new RuntimeException("未查到用户信息");
+			}
+		}
+
+		LambdaQueryWrapper<PjCorpsAddr> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+		lambdaQueryWrapper.eq(PjCorpsAddr::getTenantId, AuthUtil.getTenantId())
+			.eq(PjCorpsAddr::getIsDeleted, 0)
+			.eq(PjCorpsAddr::getPid, corpsDesc.getId());
+
+		List<PjCorpsAddr> list = corpsAddrService.list(lambdaQueryWrapper);
+		if (ObjectUtils.isNull(list)){
+			return R.data(corpsAddr);
+		}
+
+		PjCorpsAddr pjCorpsAddr = list.stream().filter(corps -> corps.getDefaultAddres().equals("1")).findFirst().orElse(null);
+		if (ObjectUtils.isNotNull(pjCorpsAddr)){
+			return R.data(pjCorpsAddr);
+		}
+		return R.data(list.get(0));
+	}
 }
 }

+ 1 - 1
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/goods/controller/GoodsDescController.java

@@ -140,7 +140,7 @@ public class GoodsDescController extends BladeController {
 			if (StringUtil.isNotBlank(e.getSalesCompanyName())) {
 			if (StringUtil.isNotBlank(e.getSalesCompanyName())) {
 				R<Dept> dept = iSysClient.getDept(e.getSalesCompanyId());
 				R<Dept> dept = iSysClient.getDept(e.getSalesCompanyId());
 				if (ObjectUtil.isNotEmpty(dept)) {
 				if (ObjectUtil.isNotEmpty(dept)) {
-					e.setSalesCompanyName(dept.getData().getDeptName());
+					e.setSalesCompanyName(dept.getData().getFullName());
 				} else {
 				} else {
 					throw new SecurityException("请输入正确的所属公司");
 					throw new SecurityException("请输入正确的所属公司");
 				}
 				}

+ 1 - 1
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/goods/service/impl/GoodsDescServiceImpl.java

@@ -224,7 +224,7 @@ public class GoodsDescServiceImpl extends ServiceImpl<GoodsDescMapper, PjGoodsDe
 					R<Dept> dept = iSysClient.getDeptIByName(AuthUtil.getTenantId(), e.getSalesCompanyName());
 					R<Dept> dept = iSysClient.getDeptIByName(AuthUtil.getTenantId(), e.getSalesCompanyName());
 					if (ObjectUtil.isNotEmpty(dept)) {
 					if (ObjectUtil.isNotEmpty(dept)) {
 						goodsDesc.setSalesCompanyId(dept.getData().getId());
 						goodsDesc.setSalesCompanyId(dept.getData().getId());
-						goodsDesc.setSalesCompanyName(dept.getData().getDeptName());
+						goodsDesc.setSalesCompanyName(dept.getData().getFullName());
 					} else {
 					} else {
 						throw new SecurityException("请输入正确的所属公司");
 						throw new SecurityException("请输入正确的所属公司");
 					}
 					}

+ 38 - 9
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/productLaunch/service/impl/ProductLaunchServiceImpl.java

@@ -44,6 +44,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
 
 
+import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.Date;
 import java.util.List;
 import java.util.List;
@@ -164,7 +165,7 @@ public class ProductLaunchServiceImpl extends ServiceImpl<ProductLaunchMapper, P
 					R<Dept> dept = iSysClient.getDept(Long.valueOf(id));
 					R<Dept> dept = iSysClient.getDept(Long.valueOf(id));
 					if (ObjectUtil.isNotEmpty(dept)) {
 					if (ObjectUtil.isNotEmpty(dept)) {
 						launch.setSalesCompanyId(Long.valueOf(id));
 						launch.setSalesCompanyId(Long.valueOf(id));
-						launch.setSalesCompanyName(dept.getData().getDeptName());
+						launch.setSalesCompanyName(dept.getData().getFullName());
 					} else {
 					} else {
 						throw new SecurityException("未找到共享公司");
 						throw new SecurityException("未找到共享公司");
 					}
 					}
@@ -226,15 +227,15 @@ public class ProductLaunchServiceImpl extends ServiceImpl<ProductLaunchMapper, P
 				productLaunch.setBrandId(pjGoodsDesc.getBrandId());
 				productLaunch.setBrandId(pjGoodsDesc.getBrandId());
 				productLaunch.setBrandName(pjGoodsDesc.getBrandName());
 				productLaunch.setBrandName(pjGoodsDesc.getBrandName());
 			}else {
 			}else {
-				throw new RuntimeException("商品名称错误或商品不存在");
+				throw new RuntimeException("商品"+e.getCname()+"名称错误或商品不存在");
 			}
 			}
 
 
 			//获得所属公司
 			//获得所属公司
 			if (StringUtil.isNotBlank(e.getSalesCompanyName())) {
 			if (StringUtil.isNotBlank(e.getSalesCompanyName())) {
 				R<Dept> dept = iSysClient.getDeptIByName(AuthUtil.getTenantId(), e.getSalesCompanyName());
 				R<Dept> dept = iSysClient.getDeptIByName(AuthUtil.getTenantId(), e.getSalesCompanyName());
-				if (ObjectUtil.isNotEmpty(dept)) {
+				if (ObjectUtil.isNotEmpty(dept.getData())) {
 					productLaunch.setSalesCompanyId(dept.getData().getId());
 					productLaunch.setSalesCompanyId(dept.getData().getId());
-					productLaunch.setSalesCompanyName(dept.getData().getDeptName());
+					productLaunch.setSalesCompanyName(dept.getData().getFullName());
 				} else {
 				} else {
 					throw new SecurityException("请输入正确的所属公司");
 					throw new SecurityException("请输入正确的所属公司");
 				}
 				}
@@ -297,6 +298,7 @@ public class ProductLaunchServiceImpl extends ServiceImpl<ProductLaunchMapper, P
 	@Override
 	@Override
 	public PjProductLaunch getAppMessageById(PjProductLaunch productLaunch) {
 	public PjProductLaunch getAppMessageById(PjProductLaunch productLaunch) {
 		PjProductLaunch detail = baseMapper.selectById(productLaunch.getId());
 		PjProductLaunch detail = baseMapper.selectById(productLaunch.getId());
+		detail.setGoodsNum(new BigDecimal(1));
 
 
 		//获得附件
 		//获得附件
 		detail.setFilesList(productLaunchFilesService.list(new QueryWrapper<PjProductLaunchFiles>()
 		detail.setFilesList(productLaunchFilesService.list(new QueryWrapper<PjProductLaunchFiles>()
@@ -329,17 +331,20 @@ public class ProductLaunchServiceImpl extends ServiceImpl<ProductLaunchMapper, P
 			throw new RuntimeException("未查到用户信息");
 			throw new RuntimeException("未查到用户信息");
 		}
 		}
 
 
-
 		LambdaQueryWrapper<PjProductLaunch> queryWrapper = new LambdaQueryWrapper<>();
 		LambdaQueryWrapper<PjProductLaunch> queryWrapper = new LambdaQueryWrapper<>();
 		queryWrapper.eq(PjProductLaunch::getTenantId, AuthUtil.getTenantId())
 		queryWrapper.eq(PjProductLaunch::getTenantId, AuthUtil.getTenantId())
 			.eq(PjProductLaunch::getIsDeleted, 0)
 			.eq(PjProductLaunch::getIsDeleted, 0)
 			.eq(PjProductLaunch::getGoodsId, detail.getGoodsId())
 			.eq(PjProductLaunch::getGoodsId, detail.getGoodsId())
+			.eq(PjProductLaunch::getBillType, 1)
+			.eq(PjProductLaunch::getWhetherShare, 0)
 			.eq(PjProductLaunch::getSalesCompanyId, detail.getSalesCompanyId());
 			.eq(PjProductLaunch::getSalesCompanyId, detail.getSalesCompanyId());
 
 
 		List<PjProductLaunch> list = baseMapper.selectList(queryWrapper);
 		List<PjProductLaunch> list = baseMapper.selectList(queryWrapper);
+		if (ObjectUtil.isNotEmpty(list)){
+			detail.setSharedCompanyInventory(list.get(0).getInventory());
+		}
 		detail.setShareList(list);
 		detail.setShareList(list);
 
 
-
 		return detail;
 		return detail;
 	}
 	}
 
 
@@ -405,6 +410,7 @@ public class ProductLaunchServiceImpl extends ServiceImpl<ProductLaunchMapper, P
 
 
 		//商品名称
 		//商品名称
 		PjGoodsDesc goodsDesc = goodsDescMapper.selectById(productLaunch.getGoodsId());
 		PjGoodsDesc goodsDesc = goodsDescMapper.selectById(productLaunch.getGoodsId());
+		shoppingCart.setGoodsId(productLaunch.getGoodsId());
 		shoppingCart.setGoodsName(goodsDesc.getCname());
 		shoppingCart.setGoodsName(goodsDesc.getCname());
 		shoppingCart.setGoodsNo(goodsDesc.getCode());
 		shoppingCart.setGoodsNo(goodsDesc.getCode());
 		shoppingCart.setPropertyName(goodsDesc.getSpecificationAndModel());
 		shoppingCart.setPropertyName(goodsDesc.getSpecificationAndModel());
@@ -413,16 +419,39 @@ public class ProductLaunchServiceImpl extends ServiceImpl<ProductLaunchMapper, P
 		shoppingCart.setUnits(goodsDesc.getUnit());
 		shoppingCart.setUnits(goodsDesc.getUnit());
 		shoppingCart.setBrandId(goodsDesc.getBrandId());
 		shoppingCart.setBrandId(goodsDesc.getBrandId());
 		shoppingCart.setBrandName(goodsDesc.getBrandName());
 		shoppingCart.setBrandName(goodsDesc.getBrandName());
+
 		shoppingCart.setGoodsNum(productLaunch.getGoodsNum());
 		shoppingCart.setGoodsNum(productLaunch.getGoodsNum());
 		shoppingCart.setSalesCompanyId(productLaunch.getSalesCompanyId());
 		shoppingCart.setSalesCompanyId(productLaunch.getSalesCompanyId());
 		shoppingCart.setSalesCompanyName(productLaunch.getSalesCompanyName());
 		shoppingCart.setSalesCompanyName(productLaunch.getSalesCompanyName());
 		shoppingCart.setPrice(productLaunch.getMallPrice());
 		shoppingCart.setPrice(productLaunch.getMallPrice());
 		shoppingCart.setProductLaunchId(productLaunch.getId());
 		shoppingCart.setProductLaunchId(productLaunch.getId());
-		shoppingCart.setSalesCompanyId(productLaunch.getSalesCompanyId());
-		shoppingCart.setSalesCompanyName(productLaunch.getSalesCompanyName());
 		shoppingCart.setInventory(productLaunch.getInventory());
 		shoppingCart.setInventory(productLaunch.getInventory());
 
 
-		shoppingCartMapper.insert(shoppingCart);
+		if (productLaunch.getBillType() == 0){
+			shoppingCart.setSharedCompanyId(productLaunch.getSalesCompanyId());
+			shoppingCart.setSharedCompanyName(productLaunch.getSalesCompanyName());
+		}else {
+			shoppingCart.setSharedCompanyId(productLaunch.getSourceCompanyId());
+			shoppingCart.setSharedCompanyName(iSysClient.getDept(productLaunch.getSourceCompanyId()).getData().getFullName());
+		}
+
+		LambdaQueryWrapper<PjShoppingCart> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+		lambdaQueryWrapper.eq(PjShoppingCart::getTenantId, AuthUtil.getTenantId())
+			.eq(PjShoppingCart::getIsDeleted, 0)
+			.eq(PjShoppingCart::getCreateUser, AuthUtil.getUserId())
+			.eq(PjShoppingCart::getGoodsId, shoppingCart.getGoodsId())
+			.eq(PjShoppingCart::getSalesCompanyId, shoppingCart.getSalesCompanyId())
+			.eq(PjShoppingCart::getSharedCompanyId, shoppingCart.getSharedCompanyId());
+
+		PjShoppingCart cart = shoppingCartMapper.selectOne(lambdaQueryWrapper);
+		if (ObjectUtil.isEmpty(cart)){//不存在 新增
+			shoppingCartMapper.insert(shoppingCart);
+		}else {
+			cart.setGoodsNum(cart.getGoodsNum().add(productLaunch.getGoodsNum()));
+			cart.setUpdateUser(AuthUtil.getUserId());
+			cart.setUpdateTime(new Date());
+			shoppingCartMapper.updateById(cart);
+		}
 		return R.success("操作成功");
 		return R.success("操作成功");
 	}
 	}
 
 

+ 17 - 0
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/ship/service/impl/ShipServiceImpl.java

@@ -38,6 +38,8 @@ import org.springblade.salesPart.vo.ShipVO;
 import org.springblade.salesPart.ship.mapper.ShipMapper;
 import org.springblade.salesPart.ship.mapper.ShipMapper;
 import org.springblade.salesPart.ship.service.IShipService;
 import org.springblade.salesPart.ship.service.IShipService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springblade.system.entity.Dept;
+import org.springblade.system.feign.ISysClient;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.annotation.Transactional;
@@ -63,6 +65,7 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 	private final OrderItemsMapper orderItemsMapper;
 	private final OrderItemsMapper orderItemsMapper;
 	private final ShipItemsMapper shipItemsMapper;
 	private final ShipItemsMapper shipItemsMapper;
 	private final OrderMapper orderMapper;
 	private final OrderMapper orderMapper;
+	private final ISysClient sysClient;
 
 
 	/**
 	/**
 	 * 获取收发货订单详情
 	 * 获取收发货订单详情
@@ -95,6 +98,16 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 	@Override
 	@Override
 	@Transactional
 	@Transactional
 	public R saveShipMessage(PjShip ship) {
 	public R saveShipMessage(PjShip ship) {
+
+		//获得所属公司
+		R<Dept> dept = sysClient.getDept(Long.valueOf(AuthUtil.getDeptId()));
+		if (ObjectUtil.isNotEmpty(dept)) {
+			ship.setSalesCompanyId(dept.getData().getId());
+			ship.setSalesCompanyName(dept.getData().getDeptName());
+		} else {
+			throw new SecurityException("请选择所属公司");
+		}
+
 		if (ship.getId() == null){
 		if (ship.getId() == null){
 			// 获取系统编号
 			// 获取系统编号
 			R billNo = serialClient.getBillNo(ship.getBizTypeName(), ship.getBizTypeName(), ship.getBizTypeName());
 			R billNo = serialClient.getBillNo(ship.getBizTypeName(), ship.getBizTypeName(), ship.getBizTypeName());
@@ -130,10 +143,14 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 					item.setPid(ship.getId());
 					item.setPid(ship.getId());
 					shipItemsMapper.updateById(item);
 					shipItemsMapper.updateById(item);
 				}
 				}
+
+				//生成库存账
+
 			});
 			});
 			ship.setShipItemsList(ship.getShipItemsList());
 			ship.setShipItemsList(ship.getShipItemsList());
 			ship.setNumberRows(ship.getShipItemsList().size());
 			ship.setNumberRows(ship.getShipItemsList().size());
 		}
 		}
+
 		return R.data(ship);
 		return R.data(ship);
 	}
 	}
 
 

+ 10 - 7
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/shoppingCart/controller/ShoppingCartController.java

@@ -86,8 +86,8 @@ public class ShoppingCartController extends BladeController {
 		List<PjShoppingCart> list = shoppingCartService.list(lambdaQueryWrapper);
 		List<PjShoppingCart> list = shoppingCartService.list(lambdaQueryWrapper);
 
 
 		//按照所属公司分组
 		//按照所属公司分组
-		Map<String, List<PjShoppingCart>> map = list.stream().filter(item-> StringUtils.isNotBlank(item.getSalesCompanyName()))
-			.collect(Collectors.groupingBy(PjShoppingCart::getSalesCompanyName));
+		Map<String, List<PjShoppingCart>> map = list.stream().filter(item-> StringUtils.isNotBlank(item.getSharedCompanyName()))
+			.collect(Collectors.groupingBy(PjShoppingCart::getSharedCompanyName));
 
 
 		List<Map<String, Object>> mapList = new ArrayList<>();
 		List<Map<String, Object>> mapList = new ArrayList<>();
 		map.forEach((k, v) -> {
 		map.forEach((k, v) -> {
@@ -102,7 +102,7 @@ public class ShoppingCartController extends BladeController {
 
 
 			Map<String, Object> objectMap = new HashMap<>();
 			Map<String, Object> objectMap = new HashMap<>();
 			objectMap.put("name", k);
 			objectMap.put("name", k);
-			objectMap.put("list", v);
+			objectMap.put("list", shoppingCartList);
 
 
 			mapList.add(objectMap);
 			mapList.add(objectMap);
 		});
 		});
@@ -136,8 +136,11 @@ public class ShoppingCartController extends BladeController {
 	@PostMapping("/update")
 	@PostMapping("/update")
 	@ApiOperationSupport(order = 5)
 	@ApiOperationSupport(order = 5)
 	@ApiOperation(value = "修改", notes = "传入shoppingCart")
 	@ApiOperation(value = "修改", notes = "传入shoppingCart")
-	public R update(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
-		List<String> idList = Arrays.asList(ids.split(","));
+	public R update(@RequestBody PjShoppingCart pjShoppingCart) {
+		if (ObjectUtil.isEmpty(pjShoppingCart.getIds())){
+			throw new RuntimeException("缺少必要参数");
+		}
+		List<String> idList = Arrays.asList(pjShoppingCart.getIds().split(","));
 		idList.forEach(id -> {
 		idList.forEach(id -> {
 			PjShoppingCart shoppingCart = new PjShoppingCart();
 			PjShoppingCart shoppingCart = new PjShoppingCart();
 			shoppingCart.setId(Long.valueOf(id));
 			shoppingCart.setId(Long.valueOf(id));
@@ -174,8 +177,8 @@ public class ShoppingCartController extends BladeController {
 	@PostMapping("/generateOrder")
 	@PostMapping("/generateOrder")
 	@ApiOperationSupport(order = 10)
 	@ApiOperationSupport(order = 10)
 	@ApiOperation(value = "购物车生成销售单", notes = "传入shoppingCart")
 	@ApiOperation(value = "购物车生成销售单", notes = "传入shoppingCart")
-	public R generateOrder(@RequestParam String address, @RequestParam List<Map<String, Object>> list){
-		return shoppingCartService.generateOrder(address, list);
+	public R generateOrder(@RequestBody PjShoppingCart pjShoppingCart){
+		return shoppingCartService.generateOrder(pjShoppingCart.getAddress(), pjShoppingCart.getList());
 	}
 	}
 
 
 
 

+ 32 - 12
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/shoppingCart/service/impl/ShoppingCartServiceImpl.java

@@ -17,6 +17,8 @@
 package org.springblade.salesPart.shoppingCart.service.impl;
 package org.springblade.salesPart.shoppingCart.service.impl;
 
 
 import com.alibaba.csp.sentinel.util.StringUtil;
 import com.alibaba.csp.sentinel.util.StringUtil;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
 import lombok.AllArgsConstructor;
 import lombok.AllArgsConstructor;
 import org.springblade.client.feign.ISerialClient;
 import org.springblade.client.feign.ISerialClient;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.secure.utils.AuthUtil;
@@ -35,6 +37,7 @@ import org.springblade.salesPart.shoppingCart.service.IShoppingCartService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springblade.salesPart.storage.mapper.StorageDescMapper;
 import org.springblade.salesPart.storage.mapper.StorageDescMapper;
 import org.springblade.salesPart.vo.ShoppingCartVO;
 import org.springblade.salesPart.vo.ShoppingCartVO;
+import org.springblade.system.feign.ISysClient;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -65,6 +68,7 @@ public class ShoppingCartServiceImpl extends ServiceImpl<ShoppingCartMapper, PjS
 	private final OrderMapper orderMapper;
 	private final OrderMapper orderMapper;
 	private final OrderItemsMapper orderItemsMapper;
 	private final OrderItemsMapper orderItemsMapper;
 	private final ProductLaunchMapper productLaunchMapper;
 	private final ProductLaunchMapper productLaunchMapper;
+	private final ISysClient sysClient;
 
 
 	/**
 	/**
 	 * 保存修改购物车信息
 	 * 保存修改购物车信息
@@ -75,10 +79,7 @@ public class ShoppingCartServiceImpl extends ServiceImpl<ShoppingCartMapper, PjS
 	@Override
 	@Override
 	@Transactional
 	@Transactional
 	public R saveShoppingCart(PjShoppingCart shoppingCart) {
 	public R saveShoppingCart(PjShoppingCart shoppingCart) {
-		//仓库名称
-		shoppingCart.setStorageName(storageDescMapper.selectById(shoppingCart.getStorageId()).getCname());
-		//商品名称
-		shoppingCart.setGoodsName(goodsDescMapper.selectById(shoppingCart.getGoodsId()).getCname());
+
 		if (shoppingCart.getId() == null){
 		if (shoppingCart.getId() == null){
 			// 获取系统编号
 			// 获取系统编号
 			R billNo = serialClient.getBillNo("GWC", "GWC", "GWC");
 			R billNo = serialClient.getBillNo("GWC", "GWC", "GWC");
@@ -86,6 +87,8 @@ public class ShoppingCartServiceImpl extends ServiceImpl<ShoppingCartMapper, PjS
 				TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
 				TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
 				return R.fail(500, "生成系统编号失败");
 				return R.fail(500, "生成系统编号失败");
 			}
 			}
+			//商品名称
+			shoppingCart.setGoodsName(goodsDescMapper.selectById(shoppingCart.getGoodsId()).getCname());
 			shoppingCart.setBillNo((String) billNo.getData());
 			shoppingCart.setBillNo((String) billNo.getData());
 			shoppingCart.setCreateUser(AuthUtil.getUserId());
 			shoppingCart.setCreateUser(AuthUtil.getUserId());
 			shoppingCart.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
 			shoppingCart.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
@@ -134,7 +137,9 @@ public class ShoppingCartServiceImpl extends ServiceImpl<ShoppingCartMapper, PjS
 				String k = (String) map.get("name");
 				String k = (String) map.get("name");
 				if (StringUtil.isNotBlank(k)) {
 				if (StringUtil.isNotBlank(k)) {
 
 
-					List<PjShoppingCart> shoppingCartList = (List<PjShoppingCart>) map.get("list");
+					String jsonStr = JSON.toJSONString(map.get("list"));
+					JSONArray objects = JSONArray.parseArray(jsonStr);
+					List<PjShoppingCart> shoppingCartList = objects.toJavaList(PjShoppingCart.class);
 
 
 					//保存销售主表信息
 					//保存销售主表信息
 					PjOrder order = new PjOrder();
 					PjOrder order = new PjOrder();
@@ -146,15 +151,25 @@ public class ShoppingCartServiceImpl extends ServiceImpl<ShoppingCartMapper, PjS
 					}
 					}
 					order.setOrdNo((String) billNo.getData());
 					order.setOrdNo((String) billNo.getData());
 					order.setCreateUser(AuthUtil.getUserId());
 					order.setCreateUser(AuthUtil.getUserId());
-					order.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
+
+					//处理部门
+					int index = AuthUtil.getDeptId().indexOf(",");
+					Long deptId = null;
+					if (index > -1){
+						deptId = Long.valueOf(AuthUtil.getDeptId().substring(0, index));
+					}else {
+						deptId = (Long.valueOf(AuthUtil.getDeptId()));
+					}
+
 					order.setCreateTime(new Date());
 					order.setCreateTime(new Date());
+					order.setCreateDept(deptId);
 					order.setTenantId(AuthUtil.getTenantId());
 					order.setTenantId(AuthUtil.getTenantId());
 					order.setStatus(OrderTypeEnum.XSDQR.getType());
 					order.setStatus(OrderTypeEnum.XSDQR.getType());
 					order.setXcxStatus(OrderTypeEnum.XSDFH.getType());
 					order.setXcxStatus(OrderTypeEnum.XSDFH.getType());
 					order.setCustomerId(finalCorpsDesc.getId());
 					order.setCustomerId(finalCorpsDesc.getId());
 					order.setCustomerName(finalCorpsDesc.getCname());
 					order.setCustomerName(finalCorpsDesc.getCname());
-					order.setSalesCompanyId(shoppingCartList.get(0).getSalesCompanyId());
-					order.setSalesCompanyName(k);
+					order.setSalesCompanyId(deptId);
+					order.setSalesCompanyName(sysClient.getDeptName(deptId).getData());
 					order.setRecAddress(address);
 					order.setRecAddress(address);
 					order.setContacts(corpsAttn.getCname());
 					order.setContacts(corpsAttn.getCname());
 					order.setPhone(corpsAttn.getTel());
 					order.setPhone(corpsAttn.getTel());
@@ -170,7 +185,7 @@ public class ShoppingCartServiceImpl extends ServiceImpl<ShoppingCartMapper, PjS
 
 
 							orderItems.setId(null);
 							orderItems.setId(null);
 							orderItems.setCreateUser(AuthUtil.getUserId());
 							orderItems.setCreateUser(AuthUtil.getUserId());
-							orderItems.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
+							orderItems.setCreateDept(order.getCreateDept());
 							orderItems.setCreateTime(new Date());
 							orderItems.setCreateTime(new Date());
 							orderItems.setPid(order.getId());
 							orderItems.setPid(order.getId());
 							orderItems.setTenantId(AuthUtil.getTenantId());
 							orderItems.setTenantId(AuthUtil.getTenantId());
@@ -185,8 +200,14 @@ public class ShoppingCartServiceImpl extends ServiceImpl<ShoppingCartMapper, PjS
 							//修改上架管理库存
 							//修改上架管理库存
 							PjProductLaunch productLaunch = productLaunchMapper.selectById(e.getProductLaunchId());
 							PjProductLaunch productLaunch = productLaunchMapper.selectById(e.getProductLaunchId());
 							if (ObjectUtil.isNotEmpty(productLaunch)){
 							if (ObjectUtil.isNotEmpty(productLaunch)){
-								productLaunch.setInventory(productLaunch.getInventory().subtract(e.getGoodsNum()));
-								productLaunchMapper.updateById(productLaunch);
+								if (ObjectUtil.isNotEmpty(e.getGoodsNum())){
+									if ( e.getGoodsNum().compareTo(BigDecimal.ZERO) > 0){
+										productLaunch.setInventory(productLaunch.getInventory().subtract(e.getGoodsNum()));
+										productLaunchMapper.updateById(productLaunch);
+									}
+								}else {
+									e.setGoodsNum(BigDecimal.ZERO);
+								}
 							}
 							}
 
 
 						});
 						});
@@ -211,7 +232,6 @@ public class ShoppingCartServiceImpl extends ServiceImpl<ShoppingCartMapper, PjS
 					}
 					}
 
 
 					orderMapper.updateById(order);
 					orderMapper.updateById(order);
-
 				}
 				}
 			});
 			});
 
 

+ 1 - 1
blade-service/blade-system/src/main/java/org/springblade/system/service/impl/DeptServiceImpl.java

@@ -202,7 +202,7 @@ public class DeptServiceImpl extends ServiceImpl<DeptMapper, Dept> implements ID
 	@Override
 	@Override
 	public R<Dept> getDeptIByName(String tenantId, String deptName) {
 	public R<Dept> getDeptIByName(String tenantId, String deptName) {
 		Dept dept = baseMapper.selectOne(new LambdaQueryWrapper<Dept>()
 		Dept dept = baseMapper.selectOne(new LambdaQueryWrapper<Dept>()
-			.eq(Dept::getDeptName, deptName)
+			.eq(Dept::getFullName, deptName)
 			.eq(Dept::getParentId, 0)
 			.eq(Dept::getParentId, 0)
 			.eq(Dept::getTenantId, AuthUtil.getTenantId())
 			.eq(Dept::getTenantId, AuthUtil.getTenantId())
 			.eq(Dept::getIsDeleted, 0)
 			.eq(Dept::getIsDeleted, 0)