lazhaoqian 3 years ago
parent
commit
d8a3c826a6

+ 11 - 1
blade-service-api/blade-mocha-item-api/src/main/java/org/springblade/mocha/feign/IPriceBankClient.java

@@ -27,6 +27,11 @@ public interface IPriceBankClient {
 	 * @param specs 商品规格
 	 * @param billType 价格类型 XS 销售价格 CG 采购价格
 	 * @param tradeType 贸易类型 GN 国内 JK 进口 CK 出口
+	 * @param exchangeRate 汇率
+	 * @param greenback 美元价格
+	 * @param currency 币别
+	 * @param coefficient FOB系数
+	 * @param taxRate 税率
 	 * @return
 	 */
 	@GetMapping(UPDATE_PRICE)
@@ -36,6 +41,11 @@ public interface IPriceBankClient {
 					  @RequestParam("corpId")Long corpId,
 					  @RequestParam("specs")String specs,
 					  @RequestParam("billType")String billType,
-					  @RequestParam("tradeType") String tradeType);
+					  @RequestParam("tradeType") String tradeType,
+					  @RequestParam("exchangeRate") BigDecimal exchangeRate,
+					  @RequestParam("greenback") BigDecimal greenback,
+					  @RequestParam("currency") String currency,
+					  @RequestParam("coefficient") BigDecimal coefficient,
+					  @RequestParam("taxRate") BigDecimal taxRate);
 
 }

+ 26 - 7
blade-service/blade-mocha-item/src/main/java/org/springblade/mocha/feign/PriceBankClient.java

@@ -21,9 +21,8 @@ import java.util.Date;
 public class PriceBankClient implements IPriceBankClient{
 
 	private final PriceBankMapper priceBankMapper;
-
 	/**
-	 * 更新出口价格库价格
+	 *
 	 * @param itemId 商品id
 	 * @param price  价格
 	 * @param tenantId 租户id
@@ -31,17 +30,32 @@ public class PriceBankClient implements IPriceBankClient{
 	 * @param specs 商品规格
 	 * @param billType 价格类型 XS 销售价格 CG 采购价格
 	 * @param tradeType 贸易类型 GN 国内 JK 进口 CK 出口
+	 * @param exchangeRate 汇率
+	 * @param greenback 美元价格
+	 * @param currency 币别
+	 * @param coefficient FOB系数
+	 * @param taxRate 税率
+	 * * @return
+	 * 	 * 1.先根据商品id,商品规格,价格类型,租户id,供应商,贸易类型 查未删除的价格库数据
+	 * 	 * 2.查到后先执行将历史价格依次更新操作 未查到暂不执行更新操作
+	 * 	 * 3.查到将价格赋值到最新价格字段上 最新价格日期为当前时间 未查到暂不执行更新操作
+	 * 	 * 4.修改价格库数据
 	 * @return
-	 * 1.先根据商品id,商品规格,价格类型,租户id,供应商,贸易类型 查未删除的价格库数据
-	 * 2.查到后先执行将历史价格依次更新操作 未查到暂不执行更新操作
-	 * 3.查到将价格赋值到最新价格字段上 最新价格日期为当前时间 未查到暂不执行更新操作
-	 * 4.修改价格库数据
 	 */
 	@GetMapping(UPDATE_PRICE)
 	@Override
-	public int updatePrice(Long itemId, BigDecimal price, String tenantId, Long corpId,String specs, String billType, String tradeType) {
+	public int updatePrice(Long itemId, BigDecimal price, String tenantId, Long corpId,String specs, String billType, String tradeType,BigDecimal exchangeRate,
+						   BigDecimal greenback,
+						   String currency,
+						   BigDecimal coefficient,
+						   BigDecimal taxRate) {
 		int flag = 0;
 		LambdaQueryWrapper<PriceBank> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+		lambdaQueryWrapper.eq(PriceBank::getBillType,billType);
+		lambdaQueryWrapper.eq(PriceBank::getTradeType,tradeType);
+		lambdaQueryWrapper.eq(PriceBank::getTenantId,tenantId);
+		lambdaQueryWrapper.eq(PriceBank::getItemId,itemId);
+		lambdaQueryWrapper.eq(PriceBank::getCorpId,corpId);
 		PriceBank priceBank = priceBankMapper.selectOne(lambdaQueryWrapper);
 		if (priceBank != null){
 			priceBankMapper.updatePrice(priceBank.getId());//更新历史价格
@@ -49,6 +63,11 @@ public class PriceBankClient implements IPriceBankClient{
 			bank.setId(priceBank.getId());
 			bank.setPrice(price);
 			bank.setPriceTime(new Date());
+			bank.setExchangeRate(exchangeRate);
+			bank.setGreenback(greenback);
+			bank.setCurrency(currency);
+			bank.setCoefficient(coefficient);
+			bank.setTaxRate(taxRate);
 			bank.setUpdateUser(SecureUtil.getUserId());
 			bank.setUpdateTime(new Date());
 			flag = priceBankMapper.updateById(bank);

+ 1 - 1
blade-service/trade-purchase/src/main/java/com/trade/purchase/enquiry/PurchaseEnquiry.java

@@ -286,7 +286,7 @@ public class PurchaseEnquiry  extends BladeController {
 	@PostMapping("/submitMessage")
 	@ApiOperationSupport(order = 10)
 	@ApiOperation(value = "提交采购询价", notes = "传入order的id")
-	public R<OrderVO> submitMessage(@Valid @RequestBody Order order){
+	public R<OrderSubmitDto> submitMessage(@Valid @RequestBody OrderSubmitDto order){
 		if (order.getId() == null){
 			throw new RuntimeException("请选择确认的单据");
 		}

+ 1 - 1
blade-service/trade-purchase/src/main/java/com/trade/purchase/order/service/IOrderService.java

@@ -100,7 +100,7 @@ public interface IOrderService extends IService<Order> {
 	 * @param order
 	 * @return
 	 */
-	R<OrderVO> submit(Order order);
+	R<OrderSubmitDto> submit(OrderSubmitDto order);
 	/**
 	 * 保存采购询价信息
 	 * @param submitDto

+ 21 - 11
blade-service/trade-purchase/src/main/java/com/trade/purchase/order/service/impl/OrderServiceImpl.java

@@ -480,24 +480,32 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 	}
 
 	@Override
-	public R<OrderVO> submit(Order order)
+	@GlobalTransactional
+	@Transactional(rollbackFor = Exception.class)
+	public R<OrderSubmitDto> submit(OrderSubmitDto order)
 	{
 		order.setIfEnquiry("询价确认");
 		order.setUpdateUser(SecureUtil.getUserId());
 		order.setUpdateTime(new Date());
 		baseMapper.updateById(order);
-		OrderVO vo = OrderMapstructMapper.INSTANCE.toVo(order);
-		//保存明细数据
-		List<OrderItems> list = orderItemsService.list(new QueryWrapper<OrderItems>().eq("pid", order.getId())
-			.eq("tenant_id", SecureUtil.getTenantId()).eq("is_deleted", 0).orderByAsc("sort"));
-		if (CollectionUtils.isNotEmpty(list)){
-			list.stream().forEach(item ->{
-				priceBankClient.updatePrice(item.getItemId(),item.getPrice(),SecureUtil.getTenantId(),item.getCorpId(),item.getItemType(),OrderTypeEnum.PURCHASE.getType(),order.getTradeType());
+		if (CollectionUtils.isNotEmpty(order.getOrderItemsList())){
+			order.getOrderItemsList().stream().forEach(item ->{
+				if (item.getId() == null){
+					item.setPid(order.getId());
+					item.setCreateTime(new Date());
+					item.setCreateUser(SecureUtil.getUserId());
+					item.setTenantId(SecureUtil.getTenantId());
+					orderItemsService.save(item);
+				}else {
+					item.setUpdateTime(new Date());
+					item.setUpdateUser(SecureUtil.getUserId());
+					orderItemsService.updateById(item);
+				}
+				priceBankClient.updatePrice(item.getItemId(),item.getPrice(),SecureUtil.getTenantId(),item.getCorpId(),item.getItemType(),OrderTypeEnum.PURCHASE.getType(),order.getTradeType(),
+					item.getExchangeRate(),item.getGreenback(),item.getCurrency(),item.getCoefficient(),item.getTaxRate());
 			});
 		}
-		vo.setItemsVOList(list.stream().map(orderItemMapstructMapper::toVo).collect(Collectors.toList()));
-		vo.setOrderItemsList(list);
-		return R.data(vo);
+		return R.data(order);
 	}
 
 	@Override
@@ -507,6 +515,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 	}
 
 	@Override
+	@GlobalTransactional
+	@Transactional(rollbackFor = Exception.class)
 	public R<OrderSubmitDto> commit(OrderSubmitDto submitDto) {
 		submitDto.setIfShipping("船务确认");
 		submitDto.setUpdateUser(SecureUtil.getUserId());