纪新园 3 лет назад
Родитель
Сommit
f6871caa40
14 измененных файлов с 335 добавлено и 194 удалено
  1. 11 0
      blade-service-api/blade-client-api/src/main/java/org/springblade/client/entity/CorpsDesc.java
  2. 0 11
      blade-service-api/blade-client-api/src/main/java/org/springblade/client/vo/CorpsDescVO.java
  3. 6 0
      blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/entity/Order.java
  4. 6 0
      blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/vo/OrderVO.java
  5. 0 1
      blade-service/blade-client/src/main/java/org/springblade/client/corps/controller/CorpsDescController.java
  6. 11 17
      blade-service/blade-client/src/main/java/org/springblade/client/corps/mapper/CorpsDescMapper.xml
  7. 2 1
      blade-service/blade-client/src/main/java/org/springblade/client/corps/service/impl/CorpsDescServiceImpl.java
  8. 1 0
      blade-service/blade-client/src/main/java/org/springblade/client/goods/controller/GoodsTypeController.java
  9. 2 0
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/mapper/OrderMapper.java
  10. 22 0
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/mapper/OrderMapper.xml
  11. 75 8
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/partsapp/AppPartsController.java
  12. 4 0
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/IOrderService.java
  13. 124 85
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderServiceImpl.java
  14. 71 71
      blade-service/trade-finance/src/main/java/org/springblade/finance/service/impl/SettlementServiceImpl.java

+ 11 - 0
blade-service-api/blade-client-api/src/main/java/org/springblade/client/entity/CorpsDesc.java

@@ -424,5 +424,16 @@ public class CorpsDesc implements Serializable {
 	@TableField(exist = false)
 	private String corpsTypeName;
 
+	/**
+	 * 排序 0 正序  1 倒序
+	 */
+	@TableField(exist = false)
+	private String sort;
+	/**
+	 * 排序具体字段
+	 */
+	@TableField(exist = false)
+	private String typeSort;
+
 
 }

+ 0 - 11
blade-service-api/blade-client-api/src/main/java/org/springblade/client/vo/CorpsDescVO.java

@@ -74,15 +74,4 @@ public class CorpsDescVO extends CorpsDesc {
 	@ApiModelProperty(value = "首字母")
 	private String initials;
 
-	/**
-	 * 排序 0 正序  1 倒序
-	 */
-	@TableField(exist = false)
-	private String sort;
-	/**
-	 * 排序具体字段
-	 */
-	@TableField(exist = false)
-	private String typeSort;
-
 }

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

@@ -1043,6 +1043,12 @@ public class Order implements Serializable {
 	@TableField(exist = false)
 	private String receiptNo;
 
+	/**
+	 * 收款状态
+	 */
+	@TableField(exist = false)
+	private String collection;
+
 
 
 }

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

@@ -162,5 +162,11 @@ public class OrderVO extends Order {
 	@TableField(exist = false)
 	private String modular;
 
+	/**
+	 * modular
+	 */
+	@TableField(exist = false)
+	private String time;
+
 
 }

+ 0 - 1
blade-service/blade-client/src/main/java/org/springblade/client/corps/controller/CorpsDescController.java

@@ -86,7 +86,6 @@ public class CorpsDescController extends BladeController {
 	@ApiOperationSupport(order = 2)
 	@ApiOperation(value = "分页", notes = "传入corpsDesc")
 	public R<IPage<CorpsDescVO>> list(CorpsDescVO corpsDesc, Query query) {
-		redisClient.basicData("corps");
 		// 默认查有效的
 		corpsDesc.setIsDeleted(0);
 		corpsDesc.setTenantId(SecureUtil.getTenantId());

+ 11 - 17
blade-service/blade-client/src/main/java/org/springblade/client/corps/mapper/CorpsDescMapper.xml

@@ -193,25 +193,19 @@
             </foreach>
             )
         </if>
-        <if test="CorpsDesc.sort!=null and CorpsDesc.sort != '' and CorpsDesc.sort == '1'">
-            <if test="CorpsDesc.typeSort!=null and CorpsDesc.typeSort != '' and CorpsDesc.typeSort == '1'">
-                ORDER BY cname ASC
-            </if>
-            <if test="CorpsDesc.typeSort!=null and CorpsDesc.typeSort != '' and CorpsDesc.typeSort == '2'">
-                ORDER BY tel ASC
-            </if>
-        </if>
-        <if test="CorpsDesc.sort!=null and CorpsDesc.sort != '' and CorpsDesc.sort == '2'">
-            <if test="CorpsDesc.typeSort!=null and CorpsDesc.typeSort != '' and CorpsDesc.typeSort == '1'">
-                ORDER BY cname DESC
-            </if>
-            <if test="CorpsDesc.typeSort!=null and CorpsDesc.typeSort != '' and CorpsDesc.typeSort == '2'">
-                ORDER BY tel DESC
-            </if>
-        </if>
-        <if test="CorpsDesc.sort == null and CorpsDesc.sort == ''">
+
+        <if test="CorpsDesc.sort != null and CorpsDesc.sort != '' and CorpsDesc.sort == 0 and CorpsDesc.typeSort == 1">
             ORDER BY cname ASC
         </if>
+        <if test="CorpsDesc.sort != null and CorpsDesc.sort != '' and CorpsDesc.sort == 0 and CorpsDesc.typeSort == 2">
+            ORDER BY tel ASC
+        </if>
+        <if test="CorpsDesc.sort != null and CorpsDesc.sort != '' and CorpsDesc.sort == 1 and CorpsDesc.typeSort == 1">
+            ORDER BY cname DESC
+        </if>
+        <if test="CorpsDesc.sort != null and CorpsDesc.sort != '' and CorpsDesc.sort == 1 and CorpsDesc.typeSort == 2">
+            ORDER BY tel DESC
+        </if>
     </select>
     <select id="selectShippingCompany" resultMap="corpsDescResultMap">
         SELECT * FROM basic_corps_desc

+ 2 - 1
blade-service/blade-client/src/main/java/org/springblade/client/corps/service/impl/CorpsDescServiceImpl.java

@@ -102,7 +102,8 @@ public class CorpsDescServiceImpl extends ServiceImpl<CorpsDescMapper, CorpsDesc
 			}
 		}
 		corpsDesc.setTenantId(AuthUtil.getTenantId());
-		return page.setRecords(baseMapper.selectCorpsDescPage(page, corpsDesc));
+		IPage<CorpsDescVO> page1 = page.setRecords(baseMapper.selectCorpsDescPage(page, corpsDesc));
+		return page1;
 	}
 
 	@Override

+ 1 - 0
blade-service/blade-client/src/main/java/org/springblade/client/goods/controller/GoodsTypeController.java

@@ -220,6 +220,7 @@ public class GoodsTypeController extends BladeController {
 		goodsType.setTenantId(AuthUtil.getTenantId());
 		goodsType.setType(GoodsTypeEnum.GOODS.getType());
 		goodsType.setParentId(0l);
+		goodsType.setIsDeleted(0);
 		List<GoodsType> list = goodsTypeService.list(Condition.getQueryWrapper(goodsType));
 		return R.data(list);
 	}

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

@@ -301,4 +301,6 @@ public interface OrderMapper extends BaseMapper<Order> {
 
 	BigDecimal arrears(@Param("tenantId") String tenantId,
 					   @Param("tradeType") String tradeType);
+
+    BigDecimal selectStorageAmount(@Param("order") OrderVO order);
 }

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

@@ -2449,6 +2449,28 @@ ORDER BY
             </if>
         </where>
     </select>
+    <select id="selectStorageAmount" resultType="java.math.BigDecimal">
+        SELECT
+        ifnull( sum( BO.balance_amount ), 0 ) as ProcurementExpenditure
+        FROM business_order BO
+        <where>
+            BO.is_deleted = 0
+            AND BO.bill_type = 'XS'
+            AND BO.tenant_id = #{order.tenantId}
+            <if test="order.tradeType != null and order.tradeType != ''">
+                AND BO.trade_type = #{order.tradeType}
+            </if>
+            <if test="order.time != null and order.time != '' and order.time == 1">
+                AND DATE_FORMAT(BO.busines_date,'%Y%m')=DATE_FORMAT(CURDATE(),'%Y%m');
+            </if>
+            <if test="order.time != null and order.time != '' and order.time == 2">
+                AND PERIOD_DIFF(DATE_FORMAT(NOW(),'%Y%m'),DATE_FORMAT(BO.busines_date,'%Y%m'))
+            </if>
+            <if test="order.corpId != null">
+                AND BO.corp_id = #{order.corpId}
+            </if>
+        </where>
+    </select>
     <update id="updateStockGoods" parameterType="org.springblade.stock.entity.StockGoods">
         UPDATE business_stock_goods SET surplus_route_quantity = #{surplusRouteQuantity},locking_quantity = #{lockingQuantity} WHERE tenant_id = #{tenantId} AND id = #{id} AND is_deleted = 0
     </update>

+ 75 - 8
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/partsapp/AppPartsController.java

@@ -17,14 +17,13 @@
 package org.springblade.purchase.sales.partsapp;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import com.trade.purchase.order.enums.OrderTypeEnum;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
 import lombok.AllArgsConstructor;
 import org.springblade.client.entity.CorpsDesc;
 import org.springblade.client.entity.StorageDesc;
@@ -33,6 +32,7 @@ import org.springblade.client.feign.IStorageClient;
 import org.springblade.core.boot.ctrl.BladeController;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.mp.support.Query;
+import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.secure.utils.SecureUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
@@ -43,13 +43,17 @@ import org.springblade.purchase.sales.entity.OrderItems;
 import org.springblade.purchase.sales.service.IOrderItemsService;
 import org.springblade.purchase.sales.service.IOrderService;
 import org.springblade.purchase.sales.vo.OrderVO;
-import org.springblade.system.user.entity.User;
 import org.springblade.system.user.feign.IUserClient;
 import org.springframework.web.bind.annotation.*;
 
 import javax.validation.Valid;
 import java.math.BigDecimal;
+import java.math.MathContext;
+import java.math.RoundingMode;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
+import java.util.Objects;
 
 /**
  * 国内销售或采购订单表 控制器
@@ -116,9 +120,9 @@ public class AppPartsController extends BladeController {
 		lambdaQueryWrapper.eq(Func.isNotEmpty(order.getCreateUser()), Order::getCreateUser, order.getCreateUser());//制单人
 		lambdaQueryWrapper.ge(Func.isNotEmpty(order.getOrderStartDate()), Order::getBusinesDate, order.getOrderStartDate());//订单日期开始
 		lambdaQueryWrapper.le(Func.isNotEmpty(order.getOrderEndDate()), Order::getBusinesDate, order.getOrderEndDate());//订单日期结束
-		lambdaQueryWrapper.eq(Func.isNotEmpty(order.getBillType()),Order::getBillType,order.getBillType());
-		lambdaQueryWrapper.eq(Func.isNotEmpty(order.getTradeType()),Order::getTradeType,order.getTradeType());
-		if ("1".equals(order.getModular())){
+		lambdaQueryWrapper.eq(Func.isNotEmpty(order.getBillType()), Order::getBillType, order.getBillType());
+		lambdaQueryWrapper.eq(Func.isNotEmpty(order.getTradeType()), Order::getTradeType, order.getTradeType());
+		if ("1".equals(order.getModular())) {
 			lambdaQueryWrapper.apply("debit_amount > settlment_amount");
 		}
 		if ("0".equals(order.getSort())) {
@@ -172,6 +176,11 @@ public class AppPartsController extends BladeController {
 
 		if (CollectionUtils.isNotEmpty(page.getRecords())) {
 			page.getRecords().stream().forEach(item -> {
+				if (item.getBalanceAmount().equals(new BigDecimal(0))) {
+					item.setCollection("已收款");
+				} else {
+					item.setCollection("未收款");
+				}
 				if (item.getCorpId() != null) {
 					if (ObjectUtil.isNotEmpty(corpsDescList)) {
 						CorpsDesc corpsDesc = corpsDescList.stream().filter(d -> d.getId().equals(item.getCorpId())).findFirst().orElse(null);
@@ -262,8 +271,8 @@ public class AppPartsController extends BladeController {
 	@PostMapping("/remove")
 	@ApiOperationSupport(order = 8)
 	@ApiOperation(value = "删除", notes = "传入id")
-	public R remove( @RequestParam Long id) {
-		if (id == null){
+	public R remove(@RequestParam Long id) {
+		if (id == null) {
 			throw new RuntimeException("缺少必要参数");
 		}
 		financeClient.deleteBySrcId(id);
@@ -280,4 +289,62 @@ public class AppPartsController extends BladeController {
 		return orderService.copyOrder(order);
 	}
 
+	/**
+	 * 自定义分页 销售或采购订单表
+	 */
+	@GetMapping("/profitStatistics")
+	@ApiOperationSupport(order = 3)
+	@ApiOperation(value = "分页", notes = "传入order")
+	public R<Map<String, Object>> profitStatistics(OrderVO order) {
+		LambdaQueryWrapper<Order> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+		lambdaQueryWrapper.eq(Order::getTenantId, SecureUtil.getTenantId());//租户id
+		lambdaQueryWrapper.eq(Order::getIsDeleted, 0);//订单是否有效
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getCorpId()), Order::getCorpId, order.getCorpId());//客户id
+		lambdaQueryWrapper.eq(Order::getBillType, OrderTypeEnum.SALES.getType());
+		lambdaQueryWrapper.eq(Order::getTradeType, OrderTypeEnum.PARTS.getType());
+		List<Order> orderList = orderService.list(lambdaQueryWrapper);
+
+		BigDecimal total = new BigDecimal("0.00");
+		BigDecimal month = new BigDecimal("0.00");
+		BigDecimal lastMonth = new BigDecimal("0.00");
+		BigDecimal flowAmount = new BigDecimal("0.00");
+		total = orderList.stream().map(Order::getStorageAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
+		order.setTenantId(AuthUtil.getTenantId());
+		order.setTime("1");
+		month = orderService.selectStorageAmount(order);
+		order.setTime("2");
+		lastMonth = orderService.selectStorageAmount(order);
+		flowAmount = month.subtract(lastMonth);
+		if (lastMonth.equals(new BigDecimal("0.00"))){
+			flowAmount = new BigDecimal("100.00");
+		}else{
+			flowAmount = flowAmount.divide(lastMonth, MathContext.DECIMAL32);
+			if (month.compareTo(lastMonth) < 0) {
+				flowAmount = flowAmount.setScale(2, RoundingMode.HALF_UP);
+			} else if (month.compareTo(lastMonth) > 0) {
+				flowAmount = new BigDecimal(0).subtract(flowAmount).setScale(2, RoundingMode.HALF_UP);
+			} else {
+				flowAmount = new BigDecimal("0.00");
+			}
+		}
+		total = total.setScale(2, RoundingMode.HALF_UP);
+		month = month.setScale(2, RoundingMode.HALF_UP);
+
+		Map<String, Object> map = new HashMap<>();
+		map.put("total", total);
+		map.put("month", month);
+		map.put("flowAmount", flowAmount);
+		return R.data(map);
+	}
+
+	/**
+	 * 收付款
+	 */
+	@PostMapping("/collectPayment")
+	@ApiOperationSupport(order = 6)
+	@ApiOperation(value = "新增或修改", notes = "传入order")
+	public R collectPayment(@Valid @RequestBody Order order) {
+		return orderService.collectPayment(order);
+	}
+
 }

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

@@ -368,4 +368,8 @@ public interface IOrderService extends IService<Order> {
 	R revoke(Order order);
 
     R copyOrder(Order order);
+
+    BigDecimal selectStorageAmount(OrderVO order);
+
+	R collectPayment(Order order);
 }

+ 124 - 85
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderServiceImpl.java

@@ -524,27 +524,6 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 			order.setStorageQuantity(orderItemsList.stream().map(OrderItems::getStorageInQuantity).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
 		}
 		baseMapper.updateById(order);
-		if (ObjectUtils.isNotNull(order.getCurrentAmount()) && !order.getCurrentAmount().equals(new BigDecimal(0))) {
-			List<Settlement> settlementList = new ArrayList<>();
-			if (ObjectUtils.isNotNull(order.getSettlementList()) && order.getSettlementList().size() > 0){
-				settlementList = order.getSettlementList();
-			}
-			Settlement settlement = new Settlement();
-			settlement.setDc("d");
-			settlement.setSettlementDate(new Date());
-			settlement.setAccount(order.getAccount());
-			settlement.setAmount(order.getCurrentAmount());
-			settlementList.add(settlement);
-			order.setSettlementList(settlementList);
-			this.paymentApply(order, order.getBillType(), order.getTradeType());
-		} else {
-			//获取订单结算信息
-			/*List<Settlement> settlementList = financeClient.selectListBySrcId(order.getId());
-			order.setSettlementList(settlementList);*/
-			if (ObjectUtils.isNotNull(order.getSettlmentAmount()) && order.getSettlementList().size() > 0) {
-				this.paymentApply(order, order.getBillType(), order.getTradeType());
-			}
-		}
 		return R.data(order);
 	}
 
@@ -2116,6 +2095,27 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		}
 		selectOrder.setConfirmStatus(1);
 		baseMapper.updateById(selectOrder);
+	/*	if (ObjectUtils.isNotNull(selectOrder.getCurrentAmount()) && !selectOrder.getCurrentAmount().equals(new BigDecimal(0))) {
+			List<Settlement> settlementList = new ArrayList<>();
+			if (ObjectUtils.isNotNull(order.getSettlementList()) && order.getSettlementList().size() > 0){
+				settlementList = order.getSettlementList();
+			}
+			Settlement settlement = new Settlement();
+			settlement.setDc("d");
+			settlement.setSettlementDate(new Date());
+			settlement.setAccount(order.getAccount());
+			settlement.setAmount(order.getCurrentAmount());
+			settlementList.add(settlement);
+			order.setSettlementList(settlementList);
+			this.paymentApply(order, order.getBillType(), order.getTradeType());
+		} else {*/
+		//获取订单结算信息
+		/*List<Settlement> settlementList = financeClient.selectListBySrcId(order.getId());
+		order.setSettlementList(settlementList);*/
+		if (ObjectUtils.isNotNull(selectOrder.getSettlmentAmount()) && order.getSettlementList().size() > 0) {
+			this.paymentApply(selectOrder, selectOrder.getBillType(), selectOrder.getTradeType());
+		}
+//		}
 		return R.data(selectOrder);
 	}
 
@@ -2183,6 +2183,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		}
 		selectOrder.setConfirmStatus(0);
 		baseMapper.updateById(selectOrder);
+		financeClient.deleteBySrcId(selectOrder.getId());
 		return R.data(selectOrder);
 	}
 
@@ -2222,6 +2223,43 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		return R.data(order);
 	}
 
+	/**
+	 * @param order
+	 * @return
+	 */
+	@Override
+	public BigDecimal selectStorageAmount(OrderVO order) {
+		return baseMapper.selectStorageAmount(order);
+	}
+
+
+	@Override
+	public R collectPayment(Order order) {
+		Order selectOrder = baseMapper.selectById(order.getId());
+		if (ObjectUtils.isNotNull(order.getCurrentAmount()) && !order.getCurrentAmount().equals(new BigDecimal(0))) {
+			List<Settlement> settlementList = new ArrayList<>();
+			if (ObjectUtils.isNotNull(order.getSettlementList()) && order.getSettlementList().size() > 0) {
+				settlementList = order.getSettlementList();
+			}
+			Settlement settlement = new Settlement();
+			settlement.setDc("d");
+			settlement.setSettlementDate(new Date());
+			settlement.setAccount(order.getAccount());
+			settlement.setAmount(order.getCurrentAmount());
+			settlementList.add(settlement);
+			selectOrder.setSettlementList(settlementList);
+			this.paymentApply(selectOrder, selectOrder.getBillType(), selectOrder.getTradeType());
+		} else {
+			List<Settlement> settlementList1 = financeClient.selectListBySrcId(order.getId());
+			selectOrder.setSettlementList(settlementList1);
+			//获取订单结算信息
+			if (ObjectUtils.isNotNull(selectOrder.getSettlmentAmount()) && selectOrder.getSettlementList().size() > 0) {
+				this.paymentApply(selectOrder, selectOrder.getBillType(), selectOrder.getTradeType());
+			}
+		}
+		return R.data(selectOrder);
+	}
+
 	@Override
 	public MonthSales monthSales(OrderVO order) {
 		MonthSales monthSales = new MonthSales();
@@ -2702,70 +2740,63 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 				orderFeesService.submitPay(order.getId());
 			}
 		} else {
+//			if (ObjectUtils.isNotNull(order.getSettlementList()) && order.getSettlementList().size() > 0) {
+			applyDTO.setBillType(billType);
+			applyDTO.setTradeType(order.getTradeType());
+			applyDTO.setBelongCompany(order.getBelongToCorpName());
+			applyDTO.setUrl(order.getUrl());
+			applyDTO.setPageStatus(order.getPageStatus());
+			applyDTO.setPageLabel(order.getPageLabel());
+			applyDTO.setCheckType(order.getCheckType());
+			applyDTO.setAccDate(order.getBusinesDate());
+			if (OrderTypeEnum.PURCHASE.getType().equals(billType)) {
+				applyDTO.setDc("C");
+			} else if (OrderTypeEnum.SALES.getType().equals(billType)) {
+				applyDTO.setDc("D");
+			}
+			applyDTO.setSettlementList(order.getSettlementList());
+
+			amount = amount.add(order.getStorageAmount());
+			quantity = quantity.add(new BigDecimal(1));
+			price = price.add(amount);
+
+			applyDTO.setSrcParentId(order.getId());
+			applyDTO.setSrcSysno(order.getSysNo());
+			applyDTO.setItemType(itemType);
+			applyDTO.setCorpId(order.getCorpId());
+			applyDTO.setSrcId(order.getId());
+			applyDTO.setSrcFeesId(order.getId());
+			applyDTO.setCurrency("CNY");
+			applyDTO.setExchangeRate(order.getExchangeRate());
+			applyDTO.setTaxRate(BigDecimal.ZERO);
+			applyDTO.setSrcType(1);
+			applyDTO.setTradeType(order.getTradeType());
+			applyDTO.setChargeMember(order.getChargeMember());
+			applyDTO.setUnit("条");
+			applyDTO.setRemarks(order.getOrderRemark());
+			//获取费用id
+			R<FeesDesc> fees = feesDescClient.getFeesByName("货款");
+			if (fees.isSuccess() && fees.getData() != null) {
+				applyDTO.setCostType(fees.getData().getId().toString());
+			}
+			applyDTO.setQuantity(new BigDecimal(1));
+			applyDTO.setPrice(order.getDebitAmount());
+			applyDTO.setAmount(order.getDebitAmount());
+			applyDTO.setSrcDate(order.getBusinesDate());
+			applyDTO.setSrcBillNo(order.getOrderNo());
+			applyDTO.setAccSysNo(order.getSysNo());
+			applyDTO.setSrcRefno(order.getSysNo());
+			applyDTO.setRetrieval(order.getAdvanceCollectionDate());
+			applyDTO.setCorpName(order.getCorpsName());
+
+			applyDTO.setAmount(amount);
+			applyDTO.setPrice(price);
+			applyDTO.setQuantity(quantity);
+			applyDTO.setReceivedAmount(order.getCurrentAmount());
+			applyDTO.setSettlementAmount(order.getSettlmentAmount());
 			if (ObjectUtils.isNotNull(order.getSettlementList()) && order.getSettlementList().size() > 0) {
-				applyDTO.setBillType(billType);
-				applyDTO.setTradeType(order.getTradeType());
-				applyDTO.setBelongCompany(order.getBelongToCorpName());
-				applyDTO.setUrl(order.getUrl());
-				applyDTO.setPageStatus(order.getPageStatus());
-				applyDTO.setPageLabel(order.getPageLabel());
-				applyDTO.setCheckType(order.getCheckType());
-				applyDTO.setAccDate(order.getBusinesDate());
-				if (OrderTypeEnum.PURCHASE.getType().equals(billType)) {
-					applyDTO.setDc("C");
-				} else if (OrderTypeEnum.SALES.getType().equals(billType)) {
-					applyDTO.setDc("D");
-				}
-				applyDTO.setSettlementList(order.getSettlementList());
-
-				amount = amount.add(order.getStorageAmount());
-				quantity = quantity.add(new BigDecimal(1));
-				price = price.add(amount);
-
-				applyDTO.setSrcParentId(order.getId());
-				applyDTO.setSrcSysno(order.getSysNo());
-				applyDTO.setItemType(itemType);
-				applyDTO.setCorpId(order.getCorpId());
-				applyDTO.setSrcId(order.getId());
-				applyDTO.setSrcFeesId(order.getId());
-				applyDTO.setCurrency("CNY");
-				applyDTO.setExchangeRate(order.getExchangeRate());
-				applyDTO.setTaxRate(BigDecimal.ZERO);
-				applyDTO.setSrcType(1);
-				applyDTO.setTradeType(order.getTradeType());
-				applyDTO.setChargeMember(order.getChargeMember());
-				applyDTO.setUnit("条");
-				applyDTO.setRemarks(order.getOrderRemark());
-				//获取费用id
-				R<FeesDesc> fees = feesDescClient.getFeesByName("货款");
-				if (fees.isSuccess() && fees.getData() != null) {
-					applyDTO.setCostType(fees.getData().getId().toString());
-				}
-				applyDTO.setQuantity(new BigDecimal(1));
-				applyDTO.setPrice(order.getDebitAmount());
-				applyDTO.setAmount(order.getDebitAmount());
-				applyDTO.setSrcDate(order.getBusinesDate());
-				applyDTO.setSrcBillNo(order.getOrderNo());
-				applyDTO.setAccSysNo(order.getSysNo());
-				applyDTO.setSrcRefno(order.getSysNo());
-				applyDTO.setRetrieval(order.getAdvanceCollectionDate());
-				applyDTO.setCorpName(order.getCorpsName());
-
-				applyDTO.setAmount(amount);
-				applyDTO.setPrice(price);
-				applyDTO.setQuantity(quantity);
-				applyDTO.setReceivedAmount(order.getCurrentAmount());
-				applyDTO.setSettlementAmount(order.getSettlmentAmount());
 				List<Settlement> settlementList = order.getSettlementList().stream().filter(o -> o.getAccId() != null).collect(Collectors.toList());
-				if (settlementList.size() > 0) {
-					applyDTO.setId(settlementList.get(0).getAccId());
-				}
-
-				//生成账单
-				R paymentApply = financeClient.paymentApplyParts(applyDTO);
-				if (!paymentApply.isSuccess()) {
-					throw new RuntimeException(paymentApply.getMsg());
-				}
+				applyDTO.setId(settlementList.get(0).getAccId());
 
 				BigDecimal receivedAmount = order.getCurrentAmount();
 				receivedAmount = receivedAmount.add(order.getSettlmentAmount());
@@ -2776,7 +2807,15 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 				order1.setSettlmentAmount(receivedAmount);
 				order1.setBalanceAmount(amount);
 				baseMapper.updateById(order1);
-				//给角色为财务的人发送消息
+			}
+			//生成账单
+			R paymentApply = financeClient.paymentApplyParts(applyDTO);
+			if (!paymentApply.isSuccess()) {
+				throw new RuntimeException(paymentApply.getMsg());
+			}
+
+
+			//给角色为财务的人发送消息
 				/*R<String> clientDeptIds = sysClient.getRoleIds(SecureUtil.getTenantId(), "财务");
 				if (clientDeptIds.isSuccess() && StringUtils.isNotBlank(clientDeptIds.getData())) {
 					R<List<User>> userList = userClient.listUserByRoleId(Long.valueOf(clientDeptIds.getData()));
@@ -2804,7 +2843,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 						}
 					}
 				}*/
-			}
+//			}
 		}
 	}
 

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

@@ -2298,79 +2298,79 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 			acc.setCreateUser(AuthUtil.getUserId());
 			accMapper.insert(acc);
 		} else {
-			acc.setUpdateTime(new Date());
-			acc.setUpdateUser(AuthUtil.getUserId());
-			accMapper.updateById(acc);
-		}
-		Long id = acc.getId();
-		Long srcId = acc.getSrcId();
-		BigDecimal settlementAmount = new BigDecimal(0.00);
-		settlementAmount.add(acc.getSettlementAmount());
-		for (Settlement settlement : dto.getSettlementList()) {
-			if (settlement.getId() == null) {
-				Settlement model = new Settlement();
-				model.setSrcOrderno(acc.getAccSysNo());
-				model.setBillType(acc.getDc());
-				model.setCorpId(acc.getCorpId());
-				model.setCorpName(acc.getCorpName());
-				model.setPlanSettlementDate(acc.getRetrieval());
-				model.setSettlementDate(settlement.getSettlementDate());
-				model.setCurrency(acc.getCurrency());
-				model.setExchangeRate(acc.getExchangeRate());
-				model.setAmount(settlement.getAmount());
-				model.setAccountName(settlement.getAccountName());
-				model.setAccountBank(settlement.getAccountBank());
-				model.setAccountNo(settlement.getAccountNo());
-				model.setRemark(settlement.getRemark());
-				model.setFoundStatus("结算完成");
-				model.setBillNo(acc.getSrcBillNo());
-				model.setDc(acc.getDc());
-				model.setSrcBillId(acc.getSrcId());
-				model.setItemType(acc.getItemType());
-				model.setSysNo(String.valueOf(System.currentTimeMillis()));
-				model.setTenantId(AuthUtil.getTenantId());
-				model.setCreateTime(new Date());
-				model.setCreateUser(AuthUtil.getUserId());
-				model.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
-				model.setAccId(acc.getId());
-				model.setAccount(settlement.getAccount());
-				baseMapper.insert(model);
-
-				Items items = new Items();
-				items.setItemId(acc.getSrcFeesId());
-				items.setCorpId(acc.getCorpId());
-				items.setQuantity(acc.getQuantity());
-				items.setUnit(acc.getUnit());
-				items.setPrice(dto.getReceivedAmount());
-				items.setSrcOrderno(dto.getSrcSysno());
-				items.setSrcBillNo(dto.getSrcBillNo());
-				items.setAmount(dto.getReceivedAmount());
-				items.setCurrency(dto.getCurrency());
-				items.setExchangeRate(dto.getExchangeRate());
-				items.setTaxRate(dto.getTaxRate());
-				items.setItemType(dto.getBillType());
-				items.setSrcParentId(dto.getSrcParentId());
-				items.setSrcFeesId(dto.getSrcFeesId());
-				items.setSrcType(dto.getSrcType());
-				items.setCostType(dto.getCostType());
-				items.setBillNo(dto.getSrcBillNo());
-				items.setThisAmount(dto.getReceivedAmount());
-				items.setTradeType(dto.getTradeType());
-				items.setAccId(id);
-				items.setPid(model.getId());
-				items.setTenantId(AuthUtil.getTenantId());
-				items.setCreateTime(new Date());
-				items.setCreateUser(AuthUtil.getUserId());
-				items.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
-				items.setTradeType(dto.getTradeType());
-				itemsMapper.insert(items);
-
-				settlementAmount = settlementAmount.add(settlement.getAmount());
+			acc = accMapper.selectById(acc.getId());
+			Long id = acc.getId();
+			BigDecimal settlementAmount = new BigDecimal(0.00);
+			settlementAmount.add(acc.getSettlementAmount());
+			for (Settlement settlement : dto.getSettlementList()) {
+				if (settlement.getId() == null) {
+					Settlement model = new Settlement();
+					model.setSrcOrderno(acc.getAccSysNo());
+					model.setBillType(acc.getDc());
+					model.setCorpId(acc.getCorpId());
+					model.setCorpName(acc.getCorpName());
+					model.setPlanSettlementDate(acc.getRetrieval());
+					model.setSettlementDate(settlement.getSettlementDate());
+					model.setCurrency(acc.getCurrency());
+					model.setExchangeRate(acc.getExchangeRate());
+					model.setAmount(settlement.getAmount());
+					model.setAccountName(settlement.getAccountName());
+					model.setAccountBank(settlement.getAccountBank());
+					model.setAccountNo(settlement.getAccountNo());
+					model.setRemark(settlement.getRemark());
+					model.setFoundStatus("结算完成");
+					model.setBillNo(acc.getSrcBillNo());
+					model.setDc(acc.getDc());
+					model.setSrcBillId(acc.getSrcId());
+					model.setItemType(acc.getItemType());
+					model.setSysNo(String.valueOf(System.currentTimeMillis()));
+					model.setTenantId(AuthUtil.getTenantId());
+					model.setCreateTime(new Date());
+					model.setCreateUser(AuthUtil.getUserId());
+					model.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
+					model.setAccId(acc.getId());
+					model.setAccount(settlement.getAccount());
+					baseMapper.insert(model);
+
+					Items items = new Items();
+					items.setItemId(acc.getSrcFeesId());
+					items.setCorpId(acc.getCorpId());
+					items.setQuantity(acc.getQuantity());
+					items.setUnit(acc.getUnit());
+					items.setPrice(dto.getReceivedAmount());
+					items.setSrcOrderno(acc.getSrcSysno());
+					items.setSrcBillNo(acc.getSrcBillNo());
+					items.setAmount(dto.getReceivedAmount());
+					items.setCurrency(acc.getCurrency());
+					items.setExchangeRate(acc.getExchangeRate());
+					items.setTaxRate(acc.getTaxRate());
+					items.setItemType(acc.getBillType());
+					items.setSrcParentId(acc.getSrcParentId());
+					items.setSrcFeesId(acc.getSrcFeesId());
+					items.setSrcType(acc.getSrcType());
+					items.setCostType(acc.getCostType());
+					items.setBillNo(acc.getSrcBillNo());
+					items.setThisAmount(dto.getReceivedAmount());
+					items.setTradeType(acc.getTradeType());
+					items.setAccId(id);
+					items.setPid(model.getId());
+					items.setTenantId(AuthUtil.getTenantId());
+					items.setCreateTime(new Date());
+					items.setCreateUser(AuthUtil.getUserId());
+					items.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
+					items.setTradeType(acc.getTradeType());
+					itemsMapper.insert(items);
+
+					settlementAmount = settlementAmount.add(settlement.getAmount());
+				}
+				acc.setSettlementAmount(settlementAmount);
+				acc.setId(id);
+				acc.setUpdateTime(new Date());
+				acc.setUpdateUser(AuthUtil.getUserId());
+				accMapper.updateById(acc);
 			}
-			acc.setSettlementAmount(settlementAmount);
-			acc.setId(id);
-			accMapper.updateById(acc);
 		}
+
 	}
 
 	@Override