Browse Source

采购询价修改、报价单生成销售单

lazhaoqian 4 years ago
parent
commit
854dfc677d

+ 18 - 8
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/export/ExportEnquiryController.java

@@ -119,18 +119,28 @@ public class ExportEnquiryController extends BladeController {
 	 * @param order
 	 * @return
 	 */
-	@PostMapping("/deliverGoods")
-	@ApiOperationSupport(order = 6)
-	@ApiOperation(value = "出口销售单生成发货单", notes = "传入主订单id,明细ids")
-	public R deliverGoods(@Valid @RequestBody Order order) {
+	@PostMapping("/createMarket")
+	@ApiOperationSupport(order = 9)
+	@ApiOperation(value = "出口销售单生成销售单", notes = "传入主订单id,明细ids")
+	public R createMarket(@Valid @RequestBody Order order) {
 		if (order.getId() == null){
 			return R.fail(500,"参数缺失");
 		}
-		if (CollectionUtils.isEmpty(order.getOrderItemIds())){
-			return R.fail(500,"请选择要发货的商品明细");
-		}
+		order.setBillType(OrderTypeEnum.SALES.getType());
+		order.setTradeType(OrderTypeEnum.EXPORT.getType());
+		return R.data(orderService.createMarket(order));
+	}
+	/**
+	 * 确认询价单
+	 * @param order
+	 * @return
+	 */
+	@PostMapping("/affirm")
+	@ApiOperationSupport(order = 10)
+	@ApiOperation(value = "确认询价单")
+	public R affirm(@Valid @RequestBody Order order) {
 		order.setBillType(OrderTypeEnum.ENQUIRY.getType());
 		order.setTradeType(OrderTypeEnum.EXPORT.getType());
-		return R.data(orderService.deliverGoods(order));
+		return R.data(orderService.affirm(order));
 	}
 }

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

@@ -65,5 +65,11 @@ public interface IOrderService extends IService<Order> {
 	 * @return
 	 */
 	R affirm(Order order);
+	/**
+	 * 保存订单信息
+	 * @param order
+	 * @return
+	 */
+	R createMarket(Order order);
 
 }

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

@@ -266,5 +266,79 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		//修改库存信息待定
 		return R.data(order);
 	}
+	@Override
+	@Transactional
+	public R createMarket(Order order) {
+		Order selectById = baseMapper.selectById(order.getId());
+		if (selectById == null){
+			throw  new RuntimeException("找不到询价单信息");
+		}
+		//保存订单主表信息
+		//获取系统编号
+		R billNo = serialClient.getBillNo(order.getBillType());
+		if (billNo.getCode() != 200){
+			TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+			throw  new RuntimeException("生成系统编号失败");
+		}
+		selectById.setSrcId(order.getId());
+		selectById.setSrcOrderNo(selectById.getSysNo());
+		selectById.setId(null);
+		selectById.setSysNo((String) billNo.getData());
+		selectById.setTenantId(SecureUtil.getTenantId());
+		selectById.setCreateTime(new Date());
+		selectById.setCreateUser(SecureUtil.getUserId());
+		selectById.setUpdateUser(null);
+		selectById.setUpdateTime(null);
+		selectById.setOrderStatus("录入");
+		selectById.setIfEnquiry(null);
+		selectById.setIfShipping(null);
+		selectById.setIfInvoice("否");
+		selectById.setBillType(order.getBillType());
+		selectById.setTradeType(order.getTradeType());
+		if (order.getBusinesDate() == null){
+			selectById.setBusinesDate(new Date());
+		}
+		baseMapper.insert(selectById);
+		//保存订单费用明细
+		List<OrderFees> orderFeesList = orderFeesService.list(new QueryWrapper<OrderFees>().eq("pid", order.getId()).eq("is_deleted", 0));
+		if (CollectionUtils.isNotEmpty(orderFeesList)){
+			orderFeesList.stream().forEach(fee ->{
+				fee.setPid(selectById.getId());
+				fee.setId(null);
+				fee.setCreateTime(new Date());
+				fee.setCreateUser(SecureUtil.getUserId());
+				fee.setUpdateTime(null);
+				fee.setUpdateUser(null);
+				orderFeesService.save(fee);
+			});
+		}
+		//保存订单明细
+		List<OrderItems> orderItemsList = orderItemsService.list(new QueryWrapper<OrderItems>().eq("pid", order.getId()).eq("is_deleted", 0));
+		if (CollectionUtils.isNotEmpty(orderItemsList)){
+			orderItemsList.stream().forEach(item ->{
+				item.setPid(selectById.getId());
+				item.setId(null);
+				item.setCreateTime(new Date());
+				item.setCreateUser(SecureUtil.getUserId());
+				item.setUpdateTime(null);
+				item.setUpdateUser(null);
+				orderItemsService.save(item);
+			});
+		}
+		//保存订单文件信息
+		List<OrderFiles> orderFilesList = orderFilesService.list(new QueryWrapper<OrderFiles>().eq("pid", order.getId()).eq("is_deleted", 0));
+		if (CollectionUtils.isNotEmpty(orderFilesList)){
+			orderFilesList.stream().forEach(file ->{
+				file.setPid(selectById.getId());
+				file.setId(null);
+				file.setCreateTime(new Date());
+				file.setCreateUser(SecureUtil.getUserId());
+				file.setUpdateTime(null);
+				file.setUpdateUser(null);
+				orderFilesService.save(file);
+			});
+		}
+		return R.data(order);
+	}
 
 }

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

@@ -221,7 +221,7 @@ public class PurchaseEnquiry  extends BladeController {
 		if (order.getId() == null){
 			throw new RuntimeException("请选择确认的单据");
 		}
-		if (StringUtils.isNotBlank(order.getOrderStatus()) && order.getOrderStatus().equals("询价确认")) {
+		if (StringUtils.isNotBlank(order.getIfEnquiry()) && order.getIfEnquiry().equals("询价确认")) {
 			throw new RuntimeException("请勿重复提交");
 		}
 		order.setBillType(OrderTypeEnum.PURCHASE_ENQUIRY.getType());

+ 1 - 0
blade-service/trade-purchase/src/main/java/com/trade/purchase/order/service/impl/OrderServiceImpl.java

@@ -494,6 +494,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 			});
 		}
 		vo.setItemsVOList(list.stream().map(orderItemMapstructMapper::toVo).collect(Collectors.toList()));
+		vo.setOrderItemsList(list);
 		return R.data(vo);
 	}