Browse Source

2023年2月2 17:32

wangzhuo 2 years ago
parent
commit
4f5d0bae33

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

@@ -126,6 +126,12 @@ public interface IFinanceClient {
 	@GetMapping("/settlement/selectListBySrcId")
 	List<Settlement> selectListBySrcId(@RequestParam(value = "srcId") Long srcId);
 
+	/**
+	 * 获得收付款信息
+	 */
+	@GetMapping("/settlement/selectSrcOrderNo")
+	List<Settlement> selectSrcOrderNo(@RequestParam("srcOrderNo") String srcOrderNo);
+
 	@GetMapping("/settlement/deleteBySrcId")
 	R deleteBySrcId(@RequestParam(value = "srcId") Long srcId);
 

+ 6 - 0
blade-service-api/trade-finance-api/src/main/java/org/springblade/finance/vojo/Items.java

@@ -370,4 +370,10 @@ public class Items implements Serializable {
 	@TableField("Src_date")
 	private String srcDate;
 
+	/**
+	 * 结算金额
+	 */
+	@ApiModelProperty(value = "结算金额")
+	private BigDecimal settlementAmount;
+
 }

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

@@ -851,6 +851,20 @@ public class OrderController extends BladeController {
 	}
 
 	/**
+	 * 审批通过撤销审核
+	 */
+	@PostMapping("/checkPassCancel")
+	@ApiOperationSupport(order = 12)
+	@ApiOperation(value = "审批通过撤销审核", notes = "传入id")
+	public R checkRepealCancel(@ApiParam(value = "主表id", required = true) @RequestParam Long id) {
+		if (id == null){
+			throw  new SecurityException("缺少必要的参数");
+		}
+		orderService.checkPassCancel(id);
+		return R.success("操作成功");
+	}
+
+	/**
 	 * 特批审核通过
 	 */
 	@PostMapping("/passSpecialCheck")

+ 1 - 1
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/mapper/OrderMapper.xml

@@ -2769,7 +2769,7 @@ ORDER BY
         ) BOI ON BOI.pid = BO.id
         LEFT JOIN basic_goods_desc BGD ON BOI.Item_id = BGD.id
         <where>
-            BO.tenant_id = #{totalSummaryVo.tenantId}
+            BO.tenant_id = #{statisticsVo.tenantId}
             and BO.is_deleted = 0
             and BO.bill_type = 'XS'
             and BGD.Brand is not null

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

@@ -118,6 +118,11 @@ public interface IOrderService extends IService<Order> {
 
 	void passCancel(Long id);
 
+	/**
+	 * 审批通过撤销审核
+	 */
+	void checkPassCancel(Long id);
+
 	void passSpecialCheck(Long id);
 
 	void underSpecialReview(Long id);
@@ -130,6 +135,7 @@ public interface IOrderService extends IService<Order> {
 	 */
 	void repealCancel(Order order);
 
+
 	/**
 	 * 查询锁定库存订单
 	 *

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

@@ -43,6 +43,8 @@ import org.springblade.core.secure.utils.SecureUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.BeanUtil;
 import org.springblade.core.tool.utils.ObjectUtil;
+import org.springblade.deliver.goods.entity.Delivery;
+import org.springblade.deliver.goods.feign.IDeliveryClient;
 import org.springblade.finance.dto.ApplyDTO;
 import org.springblade.finance.feign.IFinanceClient;
 import org.springblade.finance.vojo.Acc;
@@ -158,6 +160,9 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 
 	private final IDictBizClient dictBizClient;
 
+	//收发货
+	private final IDeliveryClient deliveryClient;
+
 
 	@Override
 	public IPage<OrderVO> selectOrderPage(IPage<OrderVO> page, OrderVO order) {
@@ -1342,6 +1347,47 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		baseMapper.updateById(order);
 	}
 
+	/**
+	 * 审批通过撤销审核
+	 */
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	@GlobalTransactional(rollbackFor = Exception.class)
+	public void checkPassCancel(Long id) {
+		//当销售订单完成采购订单、工厂发货、客户收货、财务收款、付款任意一个,撤销审核不能用
+		//生成的 采购订单、工厂发货、客户收货订单删除后,允许撤销
+		//撤销审核后,该条销售账单明细删除;内贸锁定库存释放;销售订单状态变为【录入】;销售订单允许重新编辑、删除,允许重新生成采购、客户收货
+		//积分 溢付款 返利 还原
+
+		//获得当前销售订单信息
+		Order orderMessage = baseMapper.selectById(id);
+		if (orderMessage == null){//判断销售订单是否为null
+			throw new SecurityException("撤销失败");
+		}
+
+		//根据销售订单id获得采购订单
+		Order orderPurchase = baseMapper.selectOne(new LambdaQueryWrapper<Order>()
+			.eq(Order::getIsDeleted, 0)
+			.eq(Order::getTenantId, AuthUtil.getTenantId())
+			.eq(Order::getSrcId, orderMessage.getId()));
+		if (ObjectUtil.isNotEmpty(orderPurchase)){
+			throw new SecurityException("采购订单已存在,禁止撤销");
+		}
+
+		//根据订单号获得工厂发货
+		List<Delivery> deliveryList = deliveryClient.getOrderMessage(orderMessage.getOrderNo(), OrderTypeEnum.DOMESTIC.getType());
+		if (CollectionUtils.isNotEmpty(deliveryList)) {
+			throw new SecurityException("收发货单据已存在,禁止撤销");
+		}
+
+		//获得财务收款信息
+		List<Settlement> settlementList = financeClient.selectSrcOrderNo(orderMessage.getOrderNo());
+		if (CollectionUtils.isNotEmpty(settlementList)) {
+			throw new SecurityException("收款单据已存在,禁止撤销");
+		}
+
+	}
+
 	@Override
 	public void passSpecialCheck(Long id) {
 		Order order = baseMapper.selectById(id);

+ 16 - 0
blade-service/trade-finance/src/main/java/org/springblade/finance/controller/SettlementController.java

@@ -769,6 +769,22 @@ public class SettlementController extends BladeController {
 	}
 
 	/**
+	 * 获得收付款信息
+	 */
+	@GetMapping("/selectSrcOrderNo")
+	public List<Settlement> selectSrcOrderNo(@RequestParam(value = "srcOrderNo") String  srcOrderNo) {
+		if (srcOrderNo == null) {
+			throw new SecurityException("缺少必要的参数");
+		}
+		LambdaQueryWrapper<Settlement> settlementLambdaQueryWrapper = new LambdaQueryWrapper<>();
+		settlementLambdaQueryWrapper.eq(Settlement::getIsDeleted, 0);
+		settlementLambdaQueryWrapper.eq(Settlement::getTenantId, AuthUtil.getTenantId());
+		settlementLambdaQueryWrapper.like(Settlement::getSrcOrderno, srcOrderNo);
+		List<Settlement> settlementList = settlementService.list(settlementLambdaQueryWrapper);
+		return settlementList;
+	}
+
+	/**
 	 * 销售-收款结算(配件)
 	 */
 	@PostMapping("/paymentApplyParts")