Browse Source

2024年7月5日17:15:18

纪新园 1 year ago
parent
commit
2852d258ce
13 changed files with 174 additions and 14 deletions
  1. 4 0
      blade-service-api/blade-deliver-goods-api/src/main/java/org/springblade/deliver/goods/feign/IDeliveryClient.java
  2. 6 0
      blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/entity/Order.java
  3. 9 0
      blade-service-api/trade-finance-api/src/main/java/org/springblade/finance/feign/IFinanceClient.java
  4. 1 1
      blade-service-api/trade-finance-api/src/main/java/org/springblade/finance/vojo/Acc.java
  5. 5 0
      blade-service-api/trade-purchase-api/src/main/java/com/trade/purchase/order/entity/Order.java
  6. 19 0
      blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/feign/DeliveryClient.java
  7. 12 0
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/controller/OrderController.java
  8. 1 1
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/export/ExportOrderController.java
  9. 2 0
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/IOrderService.java
  10. 43 6
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderServiceImpl.java
  11. 24 0
      blade-service/trade-finance/src/main/java/org/springblade/finance/controller/AccController.java
  12. 2 0
      blade-service/trade-finance/src/main/java/org/springblade/finance/service/IAccService.java
  13. 46 6
      blade-service/trade-finance/src/main/java/org/springblade/finance/service/impl/AccServiceImpl.java

+ 4 - 0
blade-service-api/blade-deliver-goods-api/src/main/java/org/springblade/deliver/goods/feign/IDeliveryClient.java

@@ -33,6 +33,7 @@ public interface IDeliveryClient {
 	String UPDATE_BY_SRC_ID = API_PREFIX + "/updateBySrcId";
 	String UPDATE_BY_SRC_ID = API_PREFIX + "/updateBySrcId";
 	String SELECT_COUNT = API_PREFIX + "/selectCount";
 	String SELECT_COUNT = API_PREFIX + "/selectCount";
 	String SAVE_DELIVERY_DATA = API_PREFIX + "/saveDeliveryData";
 	String SAVE_DELIVERY_DATA = API_PREFIX + "/saveDeliveryData";
+	String UPDATE_ORD_NO = API_PREFIX + "/updateOrdNo";
 
 
 	/**
 	/**
 	 * 生成发货单
 	 * 生成发货单
@@ -114,4 +115,7 @@ public interface IDeliveryClient {
 						 @RequestParam("orderNo") String orderNo,
 						 @RequestParam("orderNo") String orderNo,
 						 @RequestParam("deliveryStatus") String deliveryStatus,
 						 @RequestParam("deliveryStatus") String deliveryStatus,
 						 @RequestParam("estimateGoodGoodsDate") String estimateGoodGoodsDate);
 						 @RequestParam("estimateGoodGoodsDate") String estimateGoodGoodsDate);
+
+	@GetMapping(UPDATE_ORD_NO)
+	void updateOrdNo(@RequestParam("billId")Long billId, @RequestParam("ordNo")String ordNo);
 }
 }

+ 6 - 0
blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/entity/Order.java

@@ -1501,6 +1501,12 @@ public class Order implements Serializable {
 	@ApiModelProperty(value = "船务员")
 	@ApiModelProperty(value = "船务员")
 	private String shipkeeperName;
 	private String shipkeeperName;
 
 
+	/**
+	 * 原订单号(福达)
+	 */
+	@ApiModelProperty(value = "原订单号")
+	private String oldOrderNo;
+
 	public String get$buyerId() {
 	public String get$buyerId() {
 		return $buyerId;
 		return $buyerId;
 	}
 	}

+ 9 - 0
blade-service-api/trade-finance-api/src/main/java/org/springblade/finance/feign/IFinanceClient.java

@@ -183,4 +183,13 @@ public interface IFinanceClient {
 
 
 	@PostMapping("/settlement/update")
 	@PostMapping("/settlement/update")
 	void updateSettlement(@Valid @RequestBody Settlement settlement);
 	void updateSettlement(@Valid @RequestBody Settlement settlement);
+
+	/**
+	 * 查询账单详情(通过单据id)
+	 */
+	@GetMapping("/acc/selectListByParentId")
+	List<Acc> selectListByParentId(@RequestParam("parentId") Long parentId);
+
+	@PostMapping("/acc/submitList")
+	R submitList(@RequestBody List<Acc> accList);
 }
 }

+ 1 - 1
blade-service-api/trade-finance-api/src/main/java/org/springblade/finance/vojo/Acc.java

@@ -599,7 +599,7 @@ public class Acc implements Serializable {
 	private String paymentStatus;
 	private String paymentStatus;
 
 
 	/**
 	/**
-	 * 支付类型
+	 * 支付类型(福达-原订单号)
 	 */
 	 */
 	@TableField(exist = false)
 	@TableField(exist = false)
 	private String paymentType;
 	private String paymentType;

+ 5 - 0
blade-service-api/trade-purchase-api/src/main/java/com/trade/purchase/order/entity/Order.java

@@ -1007,6 +1007,11 @@ public class Order extends OrderBase {
 	 */
 	 */
 	@ApiModelProperty(value = "船务员")
 	@ApiModelProperty(value = "船务员")
 	private String shipkeeperName;
 	private String shipkeeperName;
+	/**
+	 * 原订单号(福达)
+	 */
+	@ApiModelProperty(value = "原订单号")
+	private String oldOrderNo;
 
 
 	public String get$buyerId() {
 	public String get$buyerId() {
 		return $buyerId;
 		return $buyerId;

+ 19 - 0
blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/feign/DeliveryClient.java

@@ -359,4 +359,23 @@ public class DeliveryClient implements IDeliveryClient {
 		}
 		}
 		deliveryService.updateById(delivery);
 		deliveryService.updateById(delivery);
 	}
 	}
+
+	@Override
+	public void updateOrdNo(Long billId, String ordNo) {
+		List<Delivery> orderList = deliveryService.list(new LambdaQueryWrapper<Delivery>()
+			.eq(Delivery::getTenantId,AuthUtil.getTenantId())
+			.eq(Delivery::getIsDeleted,0)
+			.eq(Delivery::getSrcId,billId)
+			.eq(Delivery::getOrgId,billId)
+		);
+		for (Delivery item : orderList) {
+			if (ObjectUtils.isNotNull(ordNo)) {
+				item.setOrgOrderNo(ordNo);
+				item.setSrcOrderNo(ordNo);
+			}
+		}
+		if (!orderList.isEmpty()) {
+			deliveryService.updateBatchById(orderList);
+		}
+	}
 }
 }

+ 12 - 0
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/controller/OrderController.java

@@ -1083,4 +1083,16 @@ public class OrderController extends BladeController {
 		ExcelUtil.export(response, "销售订单-" + order.getOrderNo(), order.getOrderNo(), list, OrderItemsExport.class);
 		ExcelUtil.export(response, "销售订单-" + order.getOrderNo(), order.getOrderNo(), list, OrderItemsExport.class);
 	}
 	}
 
 
+
+	/**
+	 * 同步销售订单号
+	 */
+	@GetMapping("/synchronization")
+	@ApiOperationSupport(order = 1)
+	@ApiOperation(value = "详情", notes = "传入acc")
+	public R synchronization(@RequestParam("billId") Long billId, @RequestParam("ordNo") String ordNo
+		, @RequestParam("primaryOrdNo") String primaryOrdNo) {
+		return orderService.synchronization(billId,ordNo,primaryOrdNo);
+	}
+
 }
 }

+ 1 - 1
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/export/ExportOrderController.java

@@ -1429,9 +1429,9 @@ public class ExportOrderController extends BladeController {
 				orderPartsLambdaQueryWrapper.ne(OrderParts::getPurchasesNumber, new BigDecimal("0.00"));
 				orderPartsLambdaQueryWrapper.ne(OrderParts::getPurchasesNumber, new BigDecimal("0.00"));
 			}
 			}
 			List<OrderParts> orderPartsList = orderPartsService.list(orderPartsLambdaQueryWrapper);
 			List<OrderParts> orderPartsList = orderPartsService.list(orderPartsLambdaQueryWrapper);
-			if (!orderPartsList.isEmpty()){
 				for (OrderItems items : pages) {
 				for (OrderItems items : pages) {
 					orderItemsList.add(items);
 					orderItemsList.add(items);
+					if (!orderPartsList.isEmpty()){
 					List<OrderParts> partsList = orderPartsList.stream().filter(e -> e.getPid().equals(items.getId())).collect(Collectors.toList());
 					List<OrderParts> partsList = orderPartsList.stream().filter(e -> e.getPid().equals(items.getId())).collect(Collectors.toList());
 					if (partsList.isEmpty()){
 					if (partsList.isEmpty()){
 						continue;
 						continue;

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

@@ -542,4 +542,6 @@ public interface IOrderService extends IService<Order> {
 	IPage<Map<String,Object>> integralRecord(IPage<Map<String,Object>> query,Order order);
 	IPage<Map<String,Object>> integralRecord(IPage<Map<String,Object>> query,Order order);
 
 
 	List<OrderItemsExport> export(OrderVO order);
 	List<OrderItemsExport> export(OrderVO order);
+
+	R synchronization(Long billId, String ordNo,String primaryOrdNo);
 }
 }

+ 43 - 6
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderServiceImpl.java

@@ -62,7 +62,6 @@ import org.springblade.pay.tonglianPayment.dto.PaymentDTO;
 import org.springblade.pay.tonglianPayment.entity.Parameters;
 import org.springblade.pay.tonglianPayment.entity.Parameters;
 import org.springblade.pay.tonglianPayment.fegin.IPaymentClient;
 import org.springblade.pay.tonglianPayment.fegin.IPaymentClient;
 import org.springblade.pay.tonglianPayment.fegin.ITongLianPaymentClient;
 import org.springblade.pay.tonglianPayment.fegin.ITongLianPaymentClient;
-import org.springblade.purchase.sales.document.entity.DocumentRecovery;
 import org.springblade.purchase.sales.document.service.IDocumentRecoveryService;
 import org.springblade.purchase.sales.document.service.IDocumentRecoveryService;
 import org.springblade.purchase.sales.entity.*;
 import org.springblade.purchase.sales.entity.*;
 import org.springblade.purchase.sales.enums.OrderStatusEnum;
 import org.springblade.purchase.sales.enums.OrderStatusEnum;
@@ -90,7 +89,6 @@ import org.springblade.system.user.feign.IUserClient;
 import org.springblade.weChat.feign.IWechatClient;
 import org.springblade.weChat.feign.IWechatClient;
 import org.springblade.weChat.message.dto.WxMpTemplateDto;
 import org.springblade.weChat.message.dto.WxMpTemplateDto;
 import org.springblade.weChat.message.entity.WechatMessageConfigurationItem;
 import org.springblade.weChat.message.entity.WechatMessageConfigurationItem;
-import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
@@ -1562,8 +1560,9 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		}
 		}
 		order.setStatus(3);
 		order.setStatus(3);
 		// ===========================end 审核通过修改销售订单信息==========================
 		// ===========================end 审核通过修改销售订单信息==========================
-
 		if (OrderTypeEnum.DOMESTIC.getType().equals(order.getTradeType()) || OrderTypeEnum.WOOD_HARVESTING_CLOUD.getType().equals(order.getTradeType())) {
 		if (OrderTypeEnum.DOMESTIC.getType().equals(order.getTradeType()) || OrderTypeEnum.WOOD_HARVESTING_CLOUD.getType().equals(order.getTradeType())) {
+			order.setOrderStatus(OrderStatusEnum.PASS.getType());
+			baseMapper.updateById(order);
 			// 销售的逻辑
 			// 销售的逻辑
 			if (OrderTypeEnum.SALES.getType().equals(order.getBillType())) {
 			if (OrderTypeEnum.SALES.getType().equals(order.getBillType())) {
 				/**===========================End 审核通过生成账单 发送消息=============================*/
 				/**===========================End 审核通过生成账单 发送消息=============================*/
@@ -1632,12 +1631,12 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 				// ===========================End审核通过操作返利信息=============================
 				// ===========================End审核通过操作返利信息=============================
 
 
 			}
 			}
-
 		} else if (OrderTypeEnum.DEALER.getType().equals(order.getTradeType())) {
 		} else if (OrderTypeEnum.DEALER.getType().equals(order.getTradeType())) {
 			if (OrderTypeEnum.SALES.getType().equals(order.getBillType())) {
 			if (OrderTypeEnum.SALES.getType().equals(order.getBillType())) {
 				this.paymentApply(order, "收费", "销售");
 				this.paymentApply(order, "收费", "销售");
 			}
 			}
 			order.setOrderStatus(OrderStatusEnum.PASS.getType());
 			order.setOrderStatus(OrderStatusEnum.PASS.getType());
+			baseMapper.updateById(order);
 		} else if (OrderTypeEnum.EXPORT.getType().equals(order.getTradeType())) {
 		} else if (OrderTypeEnum.EXPORT.getType().equals(order.getTradeType())) {
 			if (OrderTypeEnum.SALES.getType().equals(order.getBillType())) {
 			if (OrderTypeEnum.SALES.getType().equals(order.getBillType())) {
 				this.paymentApplyFD(order, "收费", "销售");
 				this.paymentApplyFD(order, "收费", "销售");
@@ -1721,10 +1720,9 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 				if (!save.isSuccess()) {
 				if (!save.isSuccess()) {
 					throw new SecurityException("发送消息失败");
 					throw new SecurityException("发送消息失败");
 				}
 				}
-
 			}
 			}
+			baseMapper.updateById(order);
 		}
 		}
-		baseMapper.updateById(order);
 	}
 	}
 
 
 	@Override
 	@Override
@@ -7986,6 +7984,45 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		return baseMapper.export(order);
 		return baseMapper.export(order);
 	}
 	}
 
 
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	@GlobalTransactional(rollbackFor = Exception.class, timeoutMills = 12000000)
+	public R synchronization(Long billId, String ordNo,String primaryOrdNo) {
+		Order order= new Order();
+		order.setId(billId);
+		order.setOrgOrderNo(ordNo);
+		order.setOrderNo(ordNo);
+		order.setOldOrderNo(primaryOrdNo);
+		baseMapper.updateById(order);
+		List<Order> orderList = baseMapper.selectList(new LambdaQueryWrapper<Order>()
+			.eq(Order::getTenantId,AuthUtil.getTenantId())
+			.eq(Order::getIsDeleted,0)
+			.eq(Order::getSrcId,billId)
+			.eq(Order::getBillType,"CG"));
+		for (Order item : orderList) {
+			if (ObjectUtils.isNotNull(ordNo)) {
+				item.setOrgOrderNo(ordNo);
+				item.setOrderNo(ordNo);
+			}
+		}
+		if (!orderList.isEmpty()) {
+			this.updateBatchById(orderList);
+		}
+		List<Acc> accList = financeClient.selectListByParentId(billId);
+		for (Acc item : accList) {
+			if (ObjectUtils.isNotNull(ordNo)) {
+				item.setAccSysNo(ordNo);
+				item.setSrcRefno(ordNo);
+				item.setPaymentType(primaryOrdNo);
+			}
+		}
+		if (!accList.isEmpty()) {
+			financeClient.submitList(accList);
+		}
+		deliveryClient.updateOrdNo(billId,ordNo);
+		return R.success("操作成功");
+	}
+
 	/**
 	/**
 	 * 状态统计
 	 * 状态统计
 	 * <p>
 	 * <p>

+ 24 - 0
blade-service/trade-finance/src/main/java/org/springblade/finance/controller/AccController.java

@@ -1041,4 +1041,28 @@ public class AccController extends BladeController {
 		Acc detail = accService.getOne(Condition.getQueryWrapper(acc));
 		Acc detail = accService.getOne(Condition.getQueryWrapper(acc));
 		return detail;
 		return detail;
 	}
 	}
+
+	/**
+	 * 查询账单详情(通过单据id)
+	 */
+	@GetMapping("/selectListByParentId")
+	@ApiOperationSupport(order = 1)
+	@ApiOperation(value = "详情", notes = "传入acc")
+	public List<Acc> selectListByParentId(@RequestParam("parentId") Long parentId) {
+		Acc acc = new Acc();
+		acc.setIsDeleted(0);
+		acc.setSrcParentId(parentId);
+		acc.setTenantId(SecureUtil.getTenantId());
+        return accService.list(Condition.getQueryWrapper(acc));
+	}
+
+	/**
+	 * 新增或修改 财务账单
+	 */
+	@PostMapping("/submitList")
+	@ApiOperationSupport(order = 6)
+	@ApiOperation(value = "新增或修改", notes = "传入acc")
+	public R submitList(@Valid @RequestBody List<Acc> accList) {
+		return R.status(accService.submitList(accList));
+	}
 }
 }

+ 2 - 0
blade-service/trade-finance/src/main/java/org/springblade/finance/service/IAccService.java

@@ -124,4 +124,6 @@ public interface IAccService extends IService<Acc> {
 
 
 	List<AccProfitStatisticsExcel> accProfitStatisticsList(AccProfitStatisticsExcel accProfitStatisticsExcel);
 	List<AccProfitStatisticsExcel> accProfitStatisticsList(AccProfitStatisticsExcel accProfitStatisticsExcel);
 	List<AccProfitStatisticsExcel> accProfitStatisticsListcode(AccProfitStatisticsExcel accProfitStatisticsExcel);
 	List<AccProfitStatisticsExcel> accProfitStatisticsListcode(AccProfitStatisticsExcel accProfitStatisticsExcel);
+
+    boolean submitList(List<Acc> accList);
 }
 }

+ 46 - 6
blade-service/trade-finance/src/main/java/org/springblade/finance/service/impl/AccServiceImpl.java

@@ -41,8 +41,6 @@ import org.springblade.finance.vo.CostMessage;
 import org.springblade.finance.vojo.Acc;
 import org.springblade.finance.vojo.Acc;
 import org.springblade.finance.vojo.Items;
 import org.springblade.finance.vojo.Items;
 import org.springblade.finance.vojo.Settlement;
 import org.springblade.finance.vojo.Settlement;
-import org.springblade.purchase.sales.feign.IOrderFeesClient;
-import org.springblade.purchase.sales.feign.IOrderItemsClient;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.annotation.Transactional;
 
 
@@ -65,10 +63,6 @@ public class AccServiceImpl extends ServiceImpl<AccMapper, Acc> implements IAccS
 
 
 	private final ItemsMapper itemsMapper;
 	private final ItemsMapper itemsMapper;
 
 
-	private final IOrderItemsClient orderItemsClient;
-
-	private final IOrderFeesClient orderFeesClient;
-
 	/**
 	/**
 	 * 获取客户信息
 	 * 获取客户信息
 	 */
 	 */
@@ -521,4 +515,50 @@ public class AccServiceImpl extends ServiceImpl<AccMapper, Acc> implements IAccS
 		accProfitStatisticsExcel.setTenantId(AuthUtil.getTenantId());
 		accProfitStatisticsExcel.setTenantId(AuthUtil.getTenantId());
 		return baseMapper.accProfitStatisticsListcode(accProfitStatisticsExcel);
 		return baseMapper.accProfitStatisticsListcode(accProfitStatisticsExcel);
 	}
 	}
+
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	@GlobalTransactional(rollbackFor = Exception.class, timeoutMills = 12000000)
+	public boolean submitList(List<Acc> accList) {
+		if (accList.isEmpty()){
+			return true;
+		}
+		String oldOrdNo = accList.get(0).getPaymentType();
+		String newOrdNo = accList.get(0).getAccSysNo();
+		List<Long> srcParentId = accList.stream().map(Acc::getSrcParentId).distinct().collect(Collectors.toList());
+		List<Items> itemsList = itemsMapper.selectList(new LambdaQueryWrapper<Items>()
+			.eq(Items::getTenantId,AuthUtil.getTenantId())
+			.eq(Items::getIsDeleted,0)
+			.in(Items::getSrcParentId,srcParentId));
+		if (itemsList.isEmpty()){
+			return true;
+		}
+		for (Items item:itemsList){
+			item.setSrcOrderno(newOrdNo);
+			item.setSrcRefno(newOrdNo);
+			item.setUpdateTime(new Date());
+			item.setUpdateUser(AuthUtil.getUserId());
+			itemsMapper.updateById(item);
+		}
+		List<Long> setIds = itemsList.stream().map(Items::getPid).distinct().collect(Collectors.toList());
+		if (setIds.isEmpty()){
+			return true;
+		}
+		List<Settlement> settlementList = settlementMapper.selectList(new LambdaQueryWrapper<Settlement>()
+			.eq(Settlement::getTenantId,AuthUtil.getTenantId())
+			.eq(Settlement::getIsDeleted,0)
+			.in(Settlement::getAccId,setIds));
+		if (settlementList.isEmpty()){
+			return true;
+		}
+		for (Settlement item:settlementList){
+			if (ObjectUtils.isNotNull(item.getSrcOrderno())){
+				item.setSrcOrderno(item.getSrcOrderno().replace(oldOrdNo,newOrdNo));
+				item.setUpdateTime(new Date());
+				item.setUpdateUser(AuthUtil.getUserId());
+				settlementMapper.updateById(item);
+			}
+		}
+		return this.updateBatchById(accList);
+	}
 }
 }