Browse Source

出口报价单确认修改价格管理的销售价格

lazhaoqian 4 years ago
parent
commit
1145f8691d

+ 32 - 0
blade-service-api/blade-mocha-item-api/src/main/java/org/springblade/mocha/feign/IPriceItemClient.java

@@ -0,0 +1,32 @@
+package org.springblade.mocha.feign;
+
+import org.springblade.common.constant.LauncherConstant;
+import org.springblade.core.tool.api.R;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import java.math.BigDecimal;
+
+/**
+ * 价格管理对外访问接口
+ */
+@FeignClient(
+	value = LauncherConstant.APPLICATION_MOCHA_ITEM_NAME
+)
+public interface IPriceItemClient {
+	String API_PREFIX = "/client";
+	String UPDATE_PRICE_ITEM = API_PREFIX + "/updatePriceItem";
+
+	/**
+	 * 修改价格管理的销售价格
+	 * @param code  商品编码
+	 * @param price 销售价格
+	 * @param tenantId 租户id
+	 * @return
+	 */
+	@GetMapping(UPDATE_PRICE_ITEM)
+	R updatePriceItem(@RequestParam("code") String code,
+							   @RequestParam("price")BigDecimal price,
+							   @RequestParam("tenantId") String tenantId);
+}

+ 37 - 0
blade-service/blade-mocha-item/src/main/java/org/springblade/mocha/feign/PriceItemClient.java

@@ -0,0 +1,37 @@
+package org.springblade.mocha.feign;
+
+import lombok.AllArgsConstructor;
+import org.springblade.core.tenant.annotation.NonDS;
+import org.springblade.core.tool.api.R;
+import org.springblade.mocha.service.IPriceItemService;
+import org.springblade.mocha.service.IPriceService;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RestController;
+import springfox.documentation.annotations.ApiIgnore;
+
+import java.math.BigDecimal;
+@NonDS
+@ApiIgnore()
+@RestController
+@AllArgsConstructor
+public class PriceItemClient implements IPriceItemClient{
+
+	private IPriceItemService priceItemService;
+
+
+
+
+
+	/**
+	 * 修改价格管理的销售价格
+	 * @param code  商品编码
+	 * @param price 销售价格
+	 * @param tenantId 租户id
+	 * @return
+	 */
+	@Override
+	@GetMapping(UPDATE_PRICE_ITEM)
+	public R updatePriceItem(String code, BigDecimal price, String tenantId) {
+		return priceItemService.updatePriceItem(code,price,tenantId);
+	}
+}

+ 9 - 0
blade-service/blade-mocha-item/src/main/java/org/springblade/mocha/service/IPriceItemService.java

@@ -24,6 +24,7 @@ import org.springblade.mocha.vo.PriceItemVO;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 
+import java.math.BigDecimal;
 import java.util.List;
 
 /**
@@ -63,5 +64,13 @@ public interface IPriceItemService extends IService<PriceItem> {
 	 * @return
 	 */
 	IPage<PriceItem> listMessage(IPage<PriceItem> page,QueryWrapper<PriceItem> queryWrapper);
+	/**
+	 * 修改价格管理的销售价格
+	 * @param code  商品编码
+	 * @param price 销售价格
+	 * @param tenantId 租户id
+	 * @return
+	 */
+	R updatePriceItem(String code, BigDecimal price, String tenantId);
 
 }

+ 18 - 0
blade-service/blade-mocha-item/src/main/java/org/springblade/mocha/service/impl/PriceItemServiceImpl.java

@@ -16,6 +16,7 @@
  */
 package org.springblade.mocha.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
@@ -39,6 +40,7 @@ import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.math.BigDecimal;
 import java.util.Date;
 import java.util.List;
 
@@ -152,4 +154,20 @@ public class PriceItemServiceImpl extends ServiceImpl<PriceItemMapper, PriceItem
 		}
 		return priceItemIPage;
 	}
+	/**
+	 * 修改价格管理的销售价格
+	 * @param code  商品编码
+	 * @param price 销售价格
+	 * @param tenantId 租户id
+	 * @return
+	 */
+	@Override
+	public R updatePriceItem(String code, BigDecimal price, String tenantId) {
+		PriceItem priceItem = new PriceItem();
+		priceItem.setSalesPrice(price);
+		LambdaQueryWrapper<PriceItem> queryWrapper = new LambdaQueryWrapper<>();
+		queryWrapper.eq(Func.isEmpty(code),PriceItem::getCode,code);
+		queryWrapper.eq(PriceItem::getTenantId,tenantId);
+		return R.data(baseMapper.update(priceItem,queryWrapper));
+	}
 }

+ 6 - 0
blade-service/blade-purchase-sales/pom.xml

@@ -49,6 +49,12 @@
             <groupId>org.springblade</groupId>
             <artifactId>blade-starter-transaction</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-mocha-item-api</artifactId>
+            <version>2.8.2.RELEASE</version>
+            <scope>compile</scope>
+        </dependency>
     </dependencies>
 
 </project>

+ 6 - 0
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/IOrderService.java

@@ -59,5 +59,11 @@ public interface IOrderService extends IService<Order> {
 	 * @return
 	 */
 	Order deliverGoods(Order order);
+	/**
+	 * 确认询价单
+	 * @param order
+	 * @return
+	 */
+	R affirm(Order order);
 
 }

+ 33 - 0
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderItemsServiceImpl.java

@@ -25,6 +25,8 @@ import org.springblade.client.feign.IGoodsDescClient;
 import org.springblade.client.vo.GoodsDescVO;
 import org.springblade.core.secure.utils.SecureUtil;
 import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.mocha.feign.IPriceItemClient;
 import org.springblade.purchase.sales.entity.Order;
 import org.springblade.purchase.sales.entity.OrderItems;
 import org.springblade.purchase.sales.vo.OrderItemsVO;
@@ -48,6 +50,7 @@ import java.util.List;
 @AllArgsConstructor
 public class OrderItemsServiceImpl extends ServiceImpl<OrderItemsMapper, OrderItems> implements IOrderItemsService {
 	private IGoodsDescClient goodsDescClient;//获取商品信息
+	private IPriceItemClient priceItemClient;//价格管理对外接口
 	@Override
 	public IPage<OrderItemsVO> selectOrderItemsPage(IPage<OrderItemsVO> page, OrderItemsVO orderItems) {
 		return page.setRecords(baseMapper.selectOrderItemsPage(page, orderItems));
@@ -109,5 +112,35 @@ public class OrderItemsServiceImpl extends ServiceImpl<OrderItemsMapper, OrderIt
 		}
 		return orderItemsList;
 	}
+	/**
+	 * 保存订单明细信息
+	 * @param list 订单明细
+	 * @param date 订单创建时间
+	 * @param Pid 订单主表id
+	 * @return
+	 */
+	public List<OrderItems> affirmOrderItemsMessage(List<OrderItems> list, Date date,Long Pid){
+		list.stream().forEach(item ->{
+			if (item.getId() == null){
+				item.setTenantId(SecureUtil.getTenantId());
+				item.setCreateUser(SecureUtil.getUserId());
+				item.setCreateTime(date);
+				item.setPid(Pid);
+				baseMapper.insert(item);
+			}else {
+				item.setTenantId(SecureUtil.getTenantId());
+				item.setUpdateUser(SecureUtil.getUserId());
+				item.setUpdateTime(date);
+				item.setPid(Pid);
+				baseMapper.updateById(item);
+			}
+			//更改价格信息
+			R updatePriceItem = priceItemClient.updatePriceItem(item.getCode(), item.getPrice(), SecureUtil.getTenantId());
+			if (!updatePriceItem.isSuccess()){
+				throw new RuntimeException("更新价格管理出错");
+			}
+		});
+		return list;
+	}
 
 }

+ 58 - 0
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderServiceImpl.java

@@ -19,6 +19,7 @@ package org.springblade.purchase.sales.service.impl;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.google.protobuf.ServiceException;
+import io.seata.spring.annotation.GlobalTransactional;
 import lombok.AllArgsConstructor;
 import org.springblade.client.entity.CorpsDesc;
 import org.springblade.client.entity.FeesDesc;
@@ -209,4 +210,61 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		return orderMessage;
 	}
 
+	/**
+	 * 确认询价修改价格管理
+	 * @param order
+	 * @return
+	 */
+	@Override
+	@GlobalTransactional
+	@Transactional(rollbackFor = Exception.class)
+	public R affirm(Order order) {
+		Date date = new Date();//订单时间
+		//保存订单主表信息
+		if (order.getId() == null){
+			//获取系统编号
+			R billNo = serialClient.getBillNo(order.getBillType());
+			if (billNo.getCode() != 200){
+				TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+				return R.fail(500,"生成系统编号失败");
+			}
+			order.setSysNo((String) billNo.getData());
+			order.setTenantId(SecureUtil.getTenantId());
+			order.setCreateTime(date);
+			order.setCreateUser(SecureUtil.getUserId());
+			if (order.getBusinesDate() == null){
+				order.setBusinesDate(date);
+			}
+			baseMapper.insert(order);
+		}else {
+			order.setTenantId(SecureUtil.getTenantId());
+			order.setUpdateTime(date);
+			order.setUpdateUser(SecureUtil.getUserId());
+			baseMapper.updateById(order);
+		}
+		//保存订单费用明细
+		if (CollectionUtils.isNotEmpty(order.getOrderFeesList())){
+			List<OrderFees> orderFeesList = orderFeesService.saveOrderFeesMessage(order.getOrderFeesList(), date, order.getId());
+			order.setOrderFeesList(orderFeesList);
+		}
+		//保存订单明细
+		if (CollectionUtils.isNotEmpty(order.getOrderItemsList())){
+			List<OrderItems> orderItemsList = orderItemsService.saveOrderItemsMessage(order.getOrderItemsList(), date, order.getId());
+			order.setOrderItemsList(orderItemsList);
+		}
+		//保存订单文件信息
+		if (CollectionUtils.isNotEmpty(order.getOrderFilesList())){
+			List<OrderFiles> orderFilesList = orderFilesService.saveOrderFileMessage(order.getOrderFilesList(), date, order.getId());
+			order.setOrderFilesList(orderFilesList);
+		}
+		//保存订单修改日志
+		if (CollectionUtils.isNotEmpty(order.getOrderModifyList())){
+			List<OrderModify> orderModifyList = orderModifyService.saveOrderModifyMessage(order.getOrderModifyList(), date, order.getId());
+			order.setOrderModifyList(orderModifyList);
+		}
+		//保存发货信息待定
+		//修改库存信息待定
+		return R.data(order);
+	}
+
 }

+ 8 - 8
blade-service/blade-stock/src/main/java/org/springblade/stock/service/impl/StockGoodsServiceImpl.java

@@ -75,14 +75,14 @@ public class StockGoodsServiceImpl extends ServiceImpl<StockGoodsMapper, StockGo
 	@Override
 	public StockGoodsVO selectStock(Long corpId,Long storageId,Long goodId,String itemType,String lotNo) {
 		LambdaQueryWrapper<StockGoods> lambdaQueryWrapper = new LambdaQueryWrapper();
-		lambdaQueryWrapper.eq(Func.isNotEmpty(corpId),StockGoods::getCorpId,corpId);
-		lambdaQueryWrapper.eq(Func.isNotEmpty(storageId),StockGoods::getStorageId,storageId);
-		lambdaQueryWrapper.eq(Func.isNotEmpty(goodId),StockGoods::getGoodsId,goodId);
-		lambdaQueryWrapper.eq(Func.isNotEmpty(itemType),StockGoods::getItemType,itemType);
-		lambdaQueryWrapper.eq(Func.isEmpty(itemType),StockGoods::getItemType,null);
-		lambdaQueryWrapper.eq(Func.isNotEmpty(lotNo),StockGoods::getLotNo,lotNo);
-		lambdaQueryWrapper.eq(Func.isEmpty(lotNo),StockGoods::getLotNo,null);
-		lambdaQueryWrapper.eq(StockGoods::getTenantId,SecureUtil.getTenantId());
+		lambdaQueryWrapper.eq(Func.isNotEmpty(corpId),StockGoods::getCorpId,corpId);//客户id
+		lambdaQueryWrapper.eq(Func.isNotEmpty(storageId),StockGoods::getStorageId,storageId);//仓库id
+		lambdaQueryWrapper.eq(Func.isNotEmpty(goodId),StockGoods::getGoodsId,goodId);//商品id
+		lambdaQueryWrapper.eq(Func.isNotEmpty(itemType),StockGoods::getItemType,itemType);//产品型号
+		lambdaQueryWrapper.eq(Func.isEmpty(itemType),StockGoods::getItemType,null);//产品型号
+		lambdaQueryWrapper.eq(Func.isNotEmpty(lotNo),StockGoods::getLotNo,lotNo);//批次号
+		lambdaQueryWrapper.eq(Func.isEmpty(lotNo),StockGoods::getLotNo,null);//批次号
+		lambdaQueryWrapper.eq(StockGoods::getTenantId,SecureUtil.getTenantId());//租户
 		StockGoods stockGoods = baseMapper.selectOne(lambdaQueryWrapper);
 		return BeanUtil.copy(stockGoods, StockGoodsVO.class);
 	}