wangzhuo 2 lat temu
rodzic
commit
736b14c534

+ 6 - 0
blade-service-api/blade-mocha-item-api/src/main/java/org/springblade/mocha/entity/BusinessOverpaymentItem.java

@@ -68,6 +68,12 @@ public class BusinessOverpaymentItem implements Serializable {
 	*/
 		@ApiModelProperty(value = "发货单号")
 		private String billNo;
+
+	/**
+	 * 来源单号
+	 */
+	@ApiModelProperty(value = "来源单号")
+	private String srcOrderNo;
 	/**
 	* 积分
 	*/

+ 2 - 1
blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/service/impl/DeliveryItemsServiceImpl.java

@@ -811,7 +811,8 @@ public class DeliveryItemsServiceImpl extends ServiceImpl<DeliveryItemsMapper, D
 			List<BusinessOverpaymentItem> businessOverpaymentItemList = new ArrayList<>();
 			collect.stream().forEach(item ->{
 				BusinessOverpaymentItem overpaymentItem = new BusinessOverpaymentItem();
-				overpaymentItem.setBillNo(delivery.getSysNo());
+				overpaymentItem.setBillNo(delivery.getSrcOrderNo());
+				overpaymentItem.setSrcOrderNo(delivery.getSysNo());
 				overpaymentItem.setOrderNo(item.getContractNumber());
 				overpaymentItem.setSrcPid(delivery.getId());
 				overpaymentItem.setSrcId(item.getId());

+ 4 - 2
blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/service/impl/DeliveryServiceImpl.java

@@ -714,7 +714,8 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 						BigDecimal total = number.multiply(price);
 						//益付款明细
 						BusinessOverpaymentItem overpaymentItem = new BusinessOverpaymentItem();
-						overpaymentItem.setBillNo(select.getSysNo());
+						overpaymentItem.setBillNo(select.getSrcOrderNo());
+						overpaymentItem.setSrcOrderNo(select.getSysNo());
 						overpaymentItem.setOrderNo(e.getContractNumber());
 						overpaymentItem.setSrcPid(select.getId());
 						overpaymentItem.setSrcId(e.getId());
@@ -955,7 +956,8 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 						BigDecimal total = number.multiply(price);
 						//益付款明细
 						BusinessOverpaymentItem overpaymentItem = new BusinessOverpaymentItem();
-						overpaymentItem.setBillNo(select.getSysNo());
+						overpaymentItem.setBillNo(select.getSrcOrderNo());
+						overpaymentItem.setSrcOrderNo(select.getSysNo());
 						overpaymentItem.setOrderNo(e.getContractNumber());
 						overpaymentItem.setSrcPid(select.getId());
 						overpaymentItem.setSrcId(e.getId());

+ 1 - 1
blade-service/blade-mocha-item/src/main/java/org/springblade/mocha/controller/BusinessOverpaymentItemController.java

@@ -131,7 +131,7 @@ public class BusinessOverpaymentItemController extends BladeController {
 	@ApiOperationSupport(order = 6)
 	@ApiOperation(value = "新增或修改", notes = "传入businessOverpaymentItem")
 	public R submit(@Valid @RequestBody BusinessOverpaymentItem businessOverpaymentItem) {
-		return R.status(businessOverpaymentItemService.saveOrUpdate(businessOverpaymentItem));
+		return R.data(businessOverpaymentItemService.saveOrUpdateItem(businessOverpaymentItem));
 	}
 
 

+ 8 - 0
blade-service/blade-mocha-item/src/main/java/org/springblade/mocha/service/IBusinessOverpaymentItemService.java

@@ -38,4 +38,12 @@ public interface IBusinessOverpaymentItemService extends IService<BusinessOverpa
 	 */
 	IPage<BusinessOverpaymentItemVO> selectBusinessOverpaymentItemPage(IPage<BusinessOverpaymentItemVO> page, BusinessOverpaymentItemVO businessOverpaymentItem);
 
+
+	/**
+	 * 新增或修改 溢付款明细表
+	 *
+	 * @param businessOverpaymentItem
+	 * @return
+	 */
+	BusinessOverpaymentItem saveOrUpdateItem(BusinessOverpaymentItem businessOverpaymentItem);
 }

+ 64 - 0
blade-service/blade-mocha-item/src/main/java/org/springblade/mocha/service/impl/BusinessOverpaymentItemServiceImpl.java

@@ -16,7 +16,14 @@
  */
 package org.springblade.mocha.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import lombok.AllArgsConstructor;
+import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.core.tool.utils.ObjectUtil;
+import org.springblade.finance.vojo.Items;
+import org.springblade.mocha.entity.BusinessOverpayment;
 import org.springblade.mocha.entity.BusinessOverpaymentItem;
+import org.springblade.mocha.service.IBusinessOverpaymentService;
 import org.springblade.mocha.vo.BusinessOverpaymentItemVO;
 import org.springblade.mocha.mapper.BusinessOverpaymentItemMapper;
 import org.springblade.mocha.service.IBusinessOverpaymentItemService;
@@ -24,6 +31,11 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+import java.util.Objects;
+
 /**
  * 溢付款明细表 服务实现类
  *
@@ -31,11 +43,63 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
  * @since 2021-12-28
  */
 @Service
+@AllArgsConstructor
 public class BusinessOverpaymentItemServiceImpl extends ServiceImpl<BusinessOverpaymentItemMapper, BusinessOverpaymentItem> implements IBusinessOverpaymentItemService {
 
+	private final IBusinessOverpaymentService businessOverpaymentService;
+
 	@Override
 	public IPage<BusinessOverpaymentItemVO> selectBusinessOverpaymentItemPage(IPage<BusinessOverpaymentItemVO> page, BusinessOverpaymentItemVO businessOverpaymentItem) {
 		return page.setRecords(baseMapper.selectBusinessOverpaymentItemPage(page, businessOverpaymentItem));
 	}
 
+	@Override
+	public BusinessOverpaymentItem saveOrUpdateItem(BusinessOverpaymentItem businessOverpaymentItem) {
+		if (businessOverpaymentItem.getId() == null) {
+			businessOverpaymentItem.setCreateUser(AuthUtil.getUserId());
+			businessOverpaymentItem.setCreateTime(new Date());
+			businessOverpaymentItem.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
+			businessOverpaymentItem.setTenantId(AuthUtil.getTenantId());
+			baseMapper.insert(businessOverpaymentItem);
+		} else {
+			businessOverpaymentItem.setUpdateUser(AuthUtil.getUserId());
+			businessOverpaymentItem.setUpdateTime(new Date());
+			businessOverpaymentItem.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
+			businessOverpaymentItem.setTenantId(AuthUtil.getTenantId());
+			baseMapper.updateById(businessOverpaymentItem);
+		}
+		BusinessOverpayment businessOverpayment = new BusinessOverpayment();
+		businessOverpayment.setId(businessOverpaymentItem.getPid());
+		//获得增加的金额
+		LambdaQueryWrapper<BusinessOverpaymentItem> inOverpayment = new LambdaQueryWrapper<>();
+		inOverpayment.eq(BusinessOverpaymentItem::getTenantId, AuthUtil.getTenantId())
+			.eq(BusinessOverpaymentItem::getIsDeleted, 0)
+			.eq(BusinessOverpaymentItem::getPid, businessOverpaymentItem.getPid())
+			.eq(BusinessOverpaymentItem::getOverpaymentType, 0);
+		List<BusinessOverpaymentItem> inOverpaymentList = baseMapper.selectList(inOverpayment);
+		if (ObjectUtil.isNotEmpty(inOverpaymentList)){
+			businessOverpayment.setInOverpayment(inOverpaymentList.stream().map(BusinessOverpaymentItem::getOverpayment).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
+		}else {
+			businessOverpayment.setInOverpayment(BigDecimal.ZERO);
+		}
+
+		//获得消费的金额
+		LambdaQueryWrapper<BusinessOverpaymentItem> outOverpaymen = new LambdaQueryWrapper<>();
+		outOverpaymen.eq(BusinessOverpaymentItem::getTenantId, AuthUtil.getTenantId())
+			.eq(BusinessOverpaymentItem::getIsDeleted, 0)
+			.eq(BusinessOverpaymentItem::getPid, businessOverpaymentItem.getPid())
+			.eq(BusinessOverpaymentItem::getOverpaymentType, 1);
+		List<BusinessOverpaymentItem> outOverpaymenList = baseMapper.selectList(outOverpaymen);
+		if (ObjectUtil.isNotEmpty(outOverpaymenList)){
+			businessOverpayment.setOutOverpaymen(outOverpaymenList.stream().map(BusinessOverpaymentItem::getOverpayment).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
+		}else {
+			businessOverpayment.setOutOverpaymen(BigDecimal.ZERO);
+		}
+
+		businessOverpayment.setBalanceOverpaymen(businessOverpayment.getInOverpayment().subtract(businessOverpayment.getOutOverpaymen()));
+		businessOverpaymentService.updateById(businessOverpayment);
+
+		return businessOverpaymentItem;
+	}
+
 }

+ 3 - 4
blade-service/trade-finance/src/main/java/org/springblade/finance/mapper/AccMapper.xml

@@ -144,24 +144,23 @@
             FA.Amount AS amount,
             FA.create_time AS createTime,
             BO.actualQuantity AS actualQuantity,
-            BO.arrivalAmount - BO.thisUsedProfit + feesAmount AS arrivalAmount
+            BO.arrivalAmount - BO.thisUsedProfit + IFNULL( BOF.amount, 0 ) AS arrivalAmount
         FROM finance_acc FA
         LEFT JOIN (
             SELECT
                 BO.id,
                 IFNULL( SUM(BOI.actual_quantity), 0) AS actualQuantity,
                 IFNULL( SUM( BOI.actual_quantity * BOI.price ) , 0 ) AS arrivalAmount,
-                IFNULL( BO.this_used_profit, 0 ) AS thisUsedProfit,
-                IFNULL( BOF.amount, 0 ) AS feesAmount
+                IFNULL( BO.this_used_profit, 0 ) AS thisUsedProfit
             FROM business_order BO
             LEFT JOIN business_order_items BOI ON BOI.pid = BO.id
-            LEFT JOIN business_order_fees BOF ON BOF.pid = BO.id
             WHERE
                 BO.is_deleted = 0
                 AND BOI.is_deleted = 0
             GROUP BY
                 BO.id
         ) BO ON BO.id = FA.Src_parent_id
+        LEFT JOIN business_order_fees BOF ON BOF.pid = BO.id AND BOF.is_deleted = 0
         <where>
             FA.tenant_id = #{acc.tenantId}
             AND FA.is_deleted = 0

+ 1 - 1
blade-service/trade-finance/src/main/java/org/springblade/finance/service/impl/SettlementServiceImpl.java

@@ -2169,7 +2169,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 	public R updateOverpayment(Settlement settlement, String status, BigDecimal amount) {
 		List<BusinessOverpaymentItem> list = new ArrayList<>();
 		BusinessOverpaymentItem businessOverpaymentItem = new BusinessOverpaymentItem();
-		businessOverpaymentItem.setOrderNo(settlement.getSysNo());//收费系统编号
+		businessOverpaymentItem.setOrderNo(settlement.getSrcOrderno());//收费系统编号
 		businessOverpaymentItem.setSrcId(settlement.getId());//收费id
 		businessOverpaymentItem.setSrcPid(settlement.getId());//收费id
 		businessOverpaymentItem.setOverpayment(amount);//操作溢付款金额

+ 7 - 5
blade-service/trade-purchase/src/main/java/com/trade/purchase/order/controller/PurchaseOrderController.java

@@ -231,11 +231,13 @@ public class PurchaseOrderController extends BladeController {
 		queryWrapper.between(StringUtils.isNotBlank(requiredArrivalStartDate) && StringUtils.isNotBlank(requiredArrivalEndDate), "required_arrival_date", requiredArrivalStartDate, requiredArrivalEndDate);
 		queryWrapper.between(StringUtils.isNotBlank(creditStartDate) && StringUtils.isNotBlank(creditEndDate), "credit_date", creditStartDate, creditEndDate);
 		queryWrapper.eq(StringUtils.isNotBlank(orderType), "order_type", orderType);
-		if (gathering != null && gathering == 0) {
-			queryWrapper.le("balance_amount", BigDecimal.ZERO);
-			queryWrapper.gt("settlment_amount", BigDecimal.ZERO);
-		} else if (gathering != null && gathering == 1) {
-			queryWrapper.eq("settlment_amount", BigDecimal.ZERO);
+		if (gathering != null && gathering == 0) {//已付款
+			queryWrapper.le("balance_amount", BigDecimal.ZERO);//未付<=0
+			queryWrapper.gt("settlment_amount", BigDecimal.ZERO);//已付>0
+		} else if (gathering != null && gathering == 1) {//未付款
+			//queryWrapper.eq("settlment_amount", BigDecimal.ZERO);//已付=0
+			queryWrapper.and(i -> i.eq("settlment_amount", BigDecimal.ZERO)
+				.or(o -> o.gt("settlment_amount", BigDecimal.ZERO).gt("balance_amount", BigDecimal.ZERO)));
 		}
 
 		if (ObjectUtils.isNotNull(createFreight)) {