Browse Source

达沃特修改

lazhaoqian 3 years ago
parent
commit
926e1a1392
28 changed files with 313 additions and 88 deletions
  1. 3 0
      blade-service-api/blade-deliver-goods-api/src/main/java/org/springblade/deliver/goods/feign/IDeliveryClient.java
  2. 10 0
      blade-service-api/blade-mocha-item-api/src/main/java/org/springblade/mocha/entity/SalesPolicyItem.java
  3. 2 2
      blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/entity/OrderEnum.java
  4. 2 0
      blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/feign/IOrderFeesClient.java
  5. 5 1
      blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/feign/IOrderItemsClient.java
  6. 5 1
      blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/controller/DeliveryItemsController.java
  7. 5 0
      blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/feign/DeliveryClient.java
  8. 6 1
      blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/mapper/DeliveryItemsMapper.java
  9. 4 1
      blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/mapper/DeliveryItemsMapper.xml
  10. 6 0
      blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/service/IDeliveryItemsService.java
  11. 9 0
      blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/service/impl/DeliveryItemsServiceImpl.java
  12. 3 3
      blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/service/impl/DeliveryServiceImpl.java
  13. 5 1
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/controller/OrderFeesController.java
  14. 5 0
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/controller/OrderItemsController.java
  15. 5 0
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/feign/OrderItemsClient.java
  16. 6 0
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/mapper/OrderFeesMapper.java
  17. 3 0
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/mapper/OrderFeesMapper.xml
  18. 6 1
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/mapper/OrderItemsMapper.java
  19. 3 0
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/mapper/OrderItemsMapper.xml
  20. 6 1
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/IOrderFeesService.java
  21. 7 0
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/IOrderItemsService.java
  22. 10 0
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderFeesServiceImpl.java
  23. 12 0
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderItemsServiceImpl.java
  24. 69 5
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderServiceImpl.java
  25. 4 0
      blade-service/trade-finance/src/main/java/org/springblade/finance/controller/AccController.java
  26. 2 2
      blade-service/trade-finance/src/main/java/org/springblade/finance/controller/SettlementController.java
  27. 2 2
      blade-service/trade-finance/src/main/java/org/springblade/finance/service/ISettlementService.java
  28. 108 67
      blade-service/trade-finance/src/main/java/org/springblade/finance/service/impl/SettlementServiceImpl.java

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

@@ -24,6 +24,7 @@ public interface IDeliveryClient {
 	String GET_FEES_BY_ID = API_PREFIX + "getFeesById";
 	String SUBMIT_FEES = API_PREFIX + "submitFees";
 	String GET_ORDER_MESSAGE = API_PREFIX + "getOrderMessage";
+	String SUBMITPAY = API_PREFIX +"/submitPay";
 
 	/**
 	 * 生成发货单
@@ -50,5 +51,7 @@ public interface IDeliveryClient {
 	@GetMapping(GET_ORDER_MESSAGE)
 	List<Delivery> getOrderMessage(@RequestParam("srcOrderNo") String srcOrderNo,
 								   @RequestParam("tradeType") String tradeType);
+	@GetMapping(SUBMITPAY)
+	R submitPay(@RequestParam("id") Long id);
 
 }

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

@@ -189,5 +189,15 @@ public class SalesPolicyItem implements Serializable {
 	@ApiModelProperty(value = "订货数量")
 	@TableField(exist = false)
 	private BigDecimal orderQuantity;
+	/**
+	 * 箱体积
+	 */
+	@ApiModelProperty(value = "箱体积")
+	private BigDecimal cntrVolumn;
+	/**
+	 * 箱重量
+	 */
+	@ApiModelProperty(value = "箱重量")
+	private BigDecimal cartonWeight;
 
 }

+ 2 - 2
blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/entity/OrderEnum.java

@@ -8,12 +8,12 @@ import java.util.Objects;
 @AllArgsConstructor
 public enum  OrderEnum {
 	/**
-	 * 暂停
+	 * 录入
 	 */
 	PAUSE("录入"),
 
 	/**
-	 * 提交
+	 * 提交
 	 */
 	SUBMIT("已提交"),
 

+ 2 - 0
blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/feign/IOrderFeesClient.java

@@ -30,4 +30,6 @@ public interface IOrderFeesClient {
 	@GetMapping("/orderfees/getById")
 	OrderFees getById(@RequestParam("id") Long id);
 
+	@GetMapping("/orderfees/submitPay")
+	R submitPay(@RequestParam("id") Long id);
 }

+ 5 - 1
blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/feign/IOrderItemsClient.java

@@ -2,6 +2,7 @@ package org.springblade.purchase.sales.feign;
 
 import org.springblade.common.constant.LauncherConstant;
 import org.springblade.core.tool.api.R;
+import org.springblade.purchase.sales.entity.OrderFees;
 import org.springblade.purchase.sales.entity.OrderItems;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -23,7 +24,7 @@ public interface IOrderItemsClient {
 	String LIST_BY_ITEM_ID = API_PREFIX + "/listByItemId";
 	String SUBMIT = API_PREFIX + "/submit";
 	String GET_BY_ID = API_PREFIX + "/getById";
-
+	String SUBMITPAY = API_PREFIX +"/submitPay";
 
 	/**
 	 * 修改订单明细发货数量
@@ -52,4 +53,7 @@ public interface IOrderItemsClient {
 	@GetMapping(GET_BY_ID)
 	OrderItems getById(@RequestParam("id") Long id);
 
+	@GetMapping(SUBMITPAY)
+	R submitPay(@RequestParam("id") Long id);
+
 }

+ 5 - 1
blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/controller/DeliveryItemsController.java

@@ -149,7 +149,11 @@ public class DeliveryItemsController extends BladeController {
 		return R.status(deliveryItemsService.removeByIds(Func.toLongList(ids)));
 	}
 
-
+	@GetMapping("/submitPay")
+	R submitPay(@RequestParam("id") Long id)
+	{
+		return  R.status(deliveryItemsService.submitPay(id));
+	}
 
 
 

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

@@ -67,4 +67,9 @@ public class DeliveryClient implements IDeliveryClient{
 	public List<Delivery> getOrderMessage(String srcOrderNo,String tradeType) {
 		return deliveryService.list(new QueryWrapper<Delivery>().eq("src_order_no",srcOrderNo).eq("is_deleted",0).eq("tenant_id", SecureUtil.getTenantId()).eq("trade_type",tradeType));
 	}
+
+	@Override
+	public R submitPay(Long id) {
+		return R.status(deliveryItemsService.submitPay(id));
+	}
 }

+ 6 - 1
blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/mapper/DeliveryItemsMapper.java

@@ -91,5 +91,10 @@ public interface DeliveryItemsMapper extends BaseMapper<DeliveryItems> {
 						   @Param("salesCompany")Long salesCompany,
 						   @Param("businessDate") Date businessDate,
 						   @Param("deliveryStatus") String deliveryStatus);
-
+	/**
+	 * 更新生成货款状态
+	 *
+	 * @param id 订单主表id
+	 */
+	Integer submitPay(@Param("id") Long id);
 }

+ 4 - 1
blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/mapper/DeliveryItemsMapper.xml

@@ -94,7 +94,7 @@
         business_delivery	bd
         LEFT JOIN ( SELECT pid, IFNULL( SUM( actual_quantity ), 0 ) AS quantity FROM business_delivery_items WHERE is_deleted = 0 AND good_type = 0 GROUP BY pid ) bt ON bt.pid = bd.id
         WHERE bd.is_deleted = 0
-        AND bd.delivery_status = '已货'
+        AND bd.delivery_status = '已货'
         <if test="tenantId!=null and tenantId != ''">
             AND bd.tenant_id = #{tenantId}
         </if>
@@ -139,4 +139,7 @@
             AND TO_DAYS(bd.business_date) = TO_DAYS(NOW())
         </if>
     </select>
+    <update id="submitPay" parameterType="long">
+        UPDATE business_delivery_items SET is_check = '1' WHERE pid = #{id}
+    </update>
 </mapper>

+ 6 - 0
blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/service/IDeliveryItemsService.java

@@ -74,5 +74,11 @@ public interface IDeliveryItemsService extends IService<DeliveryItems> {
 	 * @return
 	 */
 	List<CorpNumberVO> corpNumber(DeliveryVO delivery);
+	/**
+	 * 更新生成货款状态
+	 *
+	 * @param id 订单主表id
+	 */
+	boolean submitPay(Long id);
 
 }

+ 9 - 0
blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/service/impl/DeliveryItemsServiceImpl.java

@@ -837,4 +837,13 @@ public class DeliveryItemsServiceImpl extends ServiceImpl<DeliveryItemsMapper, D
 		}
 		return list;
 	}
+
+	@Override
+	public boolean submitPay(Long id) {
+		Integer integer = baseMapper.submitPay(id);
+		if (integer != null && integer >0){
+			return true;
+		}
+		return false;
+	}
 }

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

@@ -476,7 +476,7 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 	}
 
 	@Override
-	@GlobalTransactional
+	@GlobalTransactional(timeoutMills = 12000000)
 	@Transactional(rollbackFor = Exception.class)
 	public R revocation(Delivery delivery) {
 		String billStatus = null;//订单状态
@@ -850,7 +850,7 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 
 	@Override
 	@Transactional(rollbackFor = Exception.class)
-	@GlobalTransactional
+	@GlobalTransactional(timeoutMills = 12000000)
 	public R affirmAllot(Delivery delivery) {
 		Delivery select = baseMapper.selectById(delivery.getId());
 		if (select == null){
@@ -877,7 +877,7 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 
 	@Override
 	@Transactional(rollbackFor = Exception.class)
-	@GlobalTransactional
+	@GlobalTransactional(timeoutMills = 12000000)
 	public R repealAllot(Delivery delivery) {
 		Delivery select = baseMapper.selectById(delivery.getId());
 		if (select == null){

+ 5 - 1
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/controller/OrderFeesController.java

@@ -135,6 +135,10 @@ public class OrderFeesController extends BladeController {
 	public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
 		return R.status(orderFeesService.removeByIds(Func.toLongList(ids)));
 	}
-
+	@GetMapping("/submitPay")
+	R submitPay(@RequestParam("id") Long id)
+	{
+		return  R.status(orderFeesService.submitPay(id));
+	}
 
 }

+ 5 - 0
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/controller/OrderItemsController.java

@@ -323,5 +323,10 @@ public class OrderItemsController extends BladeController {
 		}
 		return orderItemsService.importPolicy(excelList, false,policyName,salesType);
 	}
+	@GetMapping("/submitPay")
+	R submitPay(@RequestParam("id") Long id)
+	{
+		return  R.status(orderItemsService.submitPay(id));
+	}
 
 }

+ 5 - 0
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/feign/OrderItemsClient.java

@@ -118,4 +118,9 @@ public class OrderItemsClient implements IOrderItemsClient {
 		return orderItemsService.getById(id);
 	}
 
+	@Override
+	public R submitPay(Long id) {
+		return R.status(orderItemsService.submitPay(id));
+	}
+
 }

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

@@ -44,5 +44,11 @@ public interface OrderFeesMapper extends BaseMapper<OrderFees> {
 	 * @param id
 	 */
 	void updateByPid (@Param("id") Long id);
+	/**
+	 * 更新生成货款状态
+	 *
+	 * @param id
+	 */
+	Integer submitPay(@Param("id") Long id);
 
 }

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

@@ -36,5 +36,8 @@
     <update id="updateByPid" parameterType="long">
         UPDATE business_order_fees SET is_deleted = '1' WHERE pid = #{id}
     </update>
+    <update id="submitPay" parameterType="long">
+        UPDATE business_order_fees SET submit_pay = '1',is_check = '1' WHERE pid = #{id}
+    </update>
 
 </mapper>

+ 6 - 1
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/mapper/OrderItemsMapper.java

@@ -191,5 +191,10 @@ public interface OrderItemsMapper extends BaseMapper<OrderItems> {
 	 * @return
 	 */
 	List<DatasetVO> dataset(IPage<DatasetVO> page, @Param("dataset") DatasetVO datasetVO);
-
+	/**
+	 * 更新生成货款状态
+	 *
+	 * @param id 订单主表id
+	 */
+	Integer submitPay(@Param("id") Long id);
 }

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

@@ -500,4 +500,7 @@ WHERE
             </if>
         </where>
     </select>
+    <update id="submitPay" parameterType="long">
+        UPDATE business_order_items SET submit_pay = '1' WHERE pid = #{id}
+    </update>
 </mapper>

+ 6 - 1
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/IOrderFeesService.java

@@ -42,5 +42,10 @@ public interface IOrderFeesService extends IService<OrderFees> {
 	 * @param id
 	 */
 	public void updateByPid(Long id);
-
+	/**
+	 * 更新生成货款状态
+	 *
+	 * @param id 订单主表id
+	 */
+	boolean submitPay(Long id);
 }

+ 7 - 0
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/IOrderItemsService.java

@@ -18,6 +18,7 @@ package org.springblade.purchase.sales.service;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
+import org.apache.ibatis.annotations.Param;
 import org.springblade.core.tool.api.R;
 import org.springblade.purchase.sales.entity.Order;
 import org.springblade.purchase.sales.entity.OrderItems;
@@ -211,4 +212,10 @@ public interface IOrderItemsService extends IService<OrderItems> {
 	 */
 	R<Map<String,Object>> importPolicy(List<PolicyExcel> data, Boolean isCovered,Long policyName,String salesType);
 
+	/**
+	 * 更新生成货款状态
+	 *
+	 * @param id 订单主表id
+	 */
+	boolean submitPay(Long id);
 }

+ 10 - 0
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderFeesServiceImpl.java

@@ -112,4 +112,14 @@ public class OrderFeesServiceImpl extends ServiceImpl<OrderFeesMapper, OrderFees
 	public void updateByPid(Long id) {
 		baseMapper.updateByPid(id);
 	}
+
+	@Override
+	public boolean submitPay(Long id) {
+		Integer integer = baseMapper.submitPay(id);
+		if (integer != null && integer >0){
+			return true;
+		}else {
+			return false;
+		}
+	}
 }

+ 12 - 0
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderItemsServiceImpl.java

@@ -131,6 +131,8 @@ public class OrderItemsServiceImpl extends ServiceImpl<OrderItemsMapper, OrderIt
 				orderItems.setPriceCategory("一般");//价格类别
 				orderItems.setCorpId(goods.getData().getCorpId());//供应id
 				orderItems.setCorpName(goods.getData().getCorpName());//供应商名称
+				orderItems.setCntrVolumn(goods.getData().getCntrVolumn());//箱体积
+				orderItems.setCartonWeight(goods.getData().getCartonWeight());//箱重量
 				GoodsType goodsType = goodsDescClient.goodTypeId(goods.getData().getId());
 				orderItems.setPriceCategory(goodsType.getCname());//商品类别名称
 				StockGoods stockGoods = new StockGoods();
@@ -611,4 +613,14 @@ public class OrderItemsServiceImpl extends ServiceImpl<OrderItemsMapper, OrderIt
 		return R.data(map);
 	}
 
+	@Override
+	public boolean submitPay(Long id) {
+		Integer integer = baseMapper.submitPay(id);
+		if (integer != null && integer >0){
+			return true;
+		}else {
+			return false;
+		}
+	}
+
 }

+ 69 - 5
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderServiceImpl.java

@@ -47,6 +47,7 @@ import org.springblade.finance.feign.IFinanceClient;
 import org.springblade.finance.vojo.Items;
 import org.springblade.purchase.sales.entity.*;
 import org.springblade.purchase.sales.enums.OrderStatusEnum;
+import org.springblade.purchase.sales.mapper.OrderFeesMapper;
 import org.springblade.purchase.sales.mapper.OrderItemsMapper;
 import org.springblade.purchase.sales.mapper.OrderMapper;
 import org.springblade.purchase.sales.service.IOrderService;
@@ -527,6 +528,13 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 				selectById.setIfEnquiry(null);
 				selectById.setIfShipping(null);
 				selectById.setNumToEnglish(null);
+				selectById.setSettlmentAmount(BigDecimal.ZERO);
+				selectById.setDebitAmount(BigDecimal.ZERO);
+				selectById.setSpecialCheck(0);
+				selectById.setSpecialCheckStatus(0);
+				selectById.setSpecialCheckTime(null);
+				selectById.setSpecialCheckUser(null);
+				selectById.setSpecialRemarks(null);
 				selectById.setIfInvoice("否");
 				selectById.setBillType(order.getBillType());
 				selectById.setTradeType(order.getTradeType());
@@ -536,13 +544,16 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 				baseMapper.insert(selectById);
 				// 保存订单明细
 				List<OrderItems> orderList = orderItemsService.list(new QueryWrapper<OrderItems>().eq("pid", order.getId()).eq("is_deleted", 0)
-					.eq("corp_id", item.getCorpId()));
+					.eq("good_type", 0).eq("corp_id", item.getCorpId()));
 				if (CollectionUtils.isNotEmpty(orderList)) {
 					orderList.forEach(items -> {
 						items.setAmount(items.getPurchaseAmount().multiply(items.getOrderQuantity()));
 						items.setPid(selectById.getId());
 						items.setId(null);
 						items.setSubmitPay(0);
+						items.setActualQuantity(BigDecimal.ZERO);
+						items.setSubmitPay(0);
+						items.setStatus(0);
 						items.setCreateTime(new Date());
 						items.setCreateUser(SecureUtil.getUserId());
 						items.setUpdateTime(null);
@@ -552,6 +563,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 					// 计算主表总金额
 					BigDecimal itemTotalAmount = orderList.stream().map(OrderItems::getAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
 					selectById.setOrderAmount(itemTotalAmount);
+					//应付今额
+					selectById.setDebitAmount(itemTotalAmount);
 					//国内订单需要体积和重量
 					if (StringUtils.isNotBlank(selectById.getTradeType()) && selectById.getTradeType().equals(OrderTypeEnum.DOMESTIC.getType())){
 						//总重量求和
@@ -696,7 +709,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 			throw new SecurityException("请核失败:未配置请核标识");
 		}
 		// 销售锁定库存
-		if (checkFlag == 2 && "681169".equals(SecureUtil.getTenantId())) {
+		if (checkFlag == 2 && salesOrder.getTradeType().equals(OrderTypeEnum.DOMESTIC.getType())) {
 			if ("XS".equals(salesOrder.getBillType())) {
 				// ===========================Start 审核通过锁定库存=============================
 				// 获取此销售订单下,所有明细的库存
@@ -1020,7 +1033,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 			throw new SecurityException("订单已驳回或未提交审批,请勿重复操作");
 		}
 		// 销售审核不通过释放库存
-		if ("XS".equals(order.getBillType()) && "681169".equals(SecureUtil.getTenantId())) {
+		if ("XS".equals(order.getBillType()) && order.getTradeType().equals(OrderTypeEnum.DOMESTIC.getType())) {
 			// ===========================Start 审核驳回释放库存=============================
 			// 获取此销售订单下,所有明细的库存
 			LambdaQueryWrapper<OrderItems> orderItemsLambdaQueryWrapper = new LambdaQueryWrapper<>();
@@ -1128,7 +1141,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 				throw new SecurityException("订单已经开启审批不能撤销");
 			}
 			// 销售审核撤销释放库存
-			if ("XS".equals(order.getBillType()) && "681169".equals(SecureUtil.getTenantId())) {
+			if ("XS".equals(order.getBillType()) && order.getTradeType().equals(OrderTypeEnum.DOMESTIC.getType())) {
 				// ===========================Start 审核撤销释放库存=============================
 				// 获取此销售订单下,所有明细的库存
 				LambdaQueryWrapper<OrderItems> orderItemsLambdaQueryWrapper = new LambdaQueryWrapper<>();
@@ -1391,8 +1404,12 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 				order.setCorpsName(corpMessage.getData().getCname());
 			}
 		}
+		BigDecimal amount = BigDecimal.ZERO;//对账金额   销售订单生成的金额  销售金额-本次使用返利金额+费用明细
+		BigDecimal quantity = BigDecimal.ZERO;//对账数量 数量为 就是轮胎条数的和
+		BigDecimal price = BigDecimal.ZERO;//对账单价
 		ApplyDTO applyDTO = new ApplyDTO();
 		applyDTO.setBillType(billType);
+		applyDTO.setTradeType(order.getTradeType());
 		applyDTO.setDc("D");
 		applyDTO.setBelongCompany(order.getBelongToCorpName());
 		applyDTO.setUrl(order.getUrl());
@@ -1408,6 +1425,48 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		orderItemsLambdaQueryWrapper.eq(OrderItems::getGoodType,0);
 		List<OrderItems> orderItemsList = orderItemsService.list(orderItemsLambdaQueryWrapper);
 		if (CollectionUtils.isNotEmpty(orderItemsList)){
+			amount = amount.add(orderItemsList.stream().map(OrderItems::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add));
+			quantity = quantity.add(orderItemsList.stream().map(OrderItems::getOrderQuantity).reduce(BigDecimal.ZERO, BigDecimal::add));
+		}
+		//获取订单收款信息
+		LambdaQueryWrapper<OrderFees> orderFeesLambdaQueryWrapper = new LambdaQueryWrapper<>();
+		orderFeesLambdaQueryWrapper.eq(OrderFees::getIsDeleted,0);
+		orderFeesLambdaQueryWrapper.eq(OrderFees::getPid,order.getId());
+		orderFeesLambdaQueryWrapper.eq(OrderFees::getFeesType,1);
+		List<OrderFees> orderFeesList = orderFeesService.list(orderFeesLambdaQueryWrapper);
+		if (CollectionUtils.isNotEmpty(orderFeesList)){
+			amount = amount.add(orderFeesList.stream().map(OrderFees::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add));
+		}
+		if (order.getThisUsedProfit() != null){
+			amount = amount.subtract(order.getThisUsedProfit());
+		}
+		if (quantity.compareTo(BigDecimal.ZERO) > 0){
+			price = amount.divide(quantity, 5, RoundingMode.HALF_UP).setScale(2, RoundingMode.HALF_UP);
+		}
+		Items items = new Items();
+		items.setSrcOrderno(order.getOrgOrderNo());
+		items.setItemType(itemType);
+		items.setCorpId(order.getCorpId());
+		items.setSrcParentId(order.getId());
+		items.setCurrency("CNY");
+		items.setExchangeRate(new BigDecimal(1));
+		items.setTaxRate(BigDecimal.ZERO);
+		items.setSrcType(1);
+		items.setTradeType(order.getTradeType());
+		items.setChargeMember(order.getChargeMember());
+		items.setAmount(amount);
+		items.setQuantity(quantity);
+		items.setPrice(price);
+		items.setUnit("条");
+		items.setRemarks(order.getOrderRemark());
+		//items.setSrcFeesId(orderItems.getId());
+		//获取费用id
+		R<FeesDesc> fees = feesDescClient.getFeesByName("货款");
+		if (fees.isSuccess() && fees.getData() != null){
+			items.setCostType(fees.getData().getId().toString());
+		}
+		itemsList.add(items);
+		/*if (CollectionUtils.isNotEmpty(orderItemsList)){
 			for (OrderItems orderItems : orderItemsList) {
 				Items items = new Items();
 				items.setSrcOrderno(order.getOrgOrderNo());
@@ -1466,7 +1525,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 				items.setCostType(orderFees.getItemId().toString());
 				itemsList.add(items);
 			}
-		}
+		}*/
 		applyDTO.setItemsList(itemsList);
 		if (CollectionUtils.isNotEmpty(itemsList)){
 			//生成账单
@@ -1502,6 +1561,11 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 					}
 				}
 			}
+			//修改原数据表示已生成账单
+			//修改商品明细
+			orderItemsMapper.submitPay(order.getId());
+			//修改费用明细
+			orderFeesService.submitPay(order.getId());
 		}
 	}
 }

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

@@ -35,6 +35,7 @@ import org.springblade.core.excel.util.ExcelUtil;
 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;
 import org.springblade.finance.excel.FeeStatisticsExcel;
@@ -94,6 +95,7 @@ public class AccController extends BladeController {
 	@ApiOperationSupport(order = 1)
 	@ApiOperation(value = "详情", notes = "传入acc")
 	public R<Acc> detail(Acc acc) {
+		acc.setTenantId(SecureUtil.getTenantId());
 		Acc detail = accService.getOne(Condition.getQueryWrapper(acc));
 		return R.data(detail);
 	}
@@ -127,6 +129,8 @@ public class AccController extends BladeController {
 			.eq(acc.getCheckStatus() != null && acc.getCheckStatus() == 2, Acc::getSettlementAmount, 0)
 			.gt(acc.getCheckStatus() != null && acc.getCheckStatus() == 1, Acc::getInvoiceAmount, 0)
 			.eq(acc.getCheckStatus() != null && acc.getCheckStatus() == 2, Acc::getInvoiceAmount, 0)
+			.eq(Acc::getTenantId, SecureUtil.getTenantId())
+			.eq(Acc::getIsDeleted, 0)
 			.orderByDesc(Acc::getCreateTime);
 		IPage<Acc> pages = accService.page(Condition.getPage(query), accLambdaQueryWrapper);
 		pages.getRecords().forEach(e -> {

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

@@ -276,7 +276,7 @@ public class SettlementController extends BladeController {
 		if (CollectionUtils.isEmpty(dto.getItemsList())) {
 			throw new SecurityException("传入数据不能为空");
 		}
-		return R.data(settlementService.apply(dto.getItemsList(), dto.getBillType(), dto.getUrl(), dto.getPageStatus(), dto.getPageLabel(), dto.getCheckType()));
+		return R.data(settlementService.apply(dto.getItemsList(), dto.getBillType(), dto.getUrl(), dto.getPageStatus(), dto.getPageLabel(), dto.getCheckType(),dto.getTradeType()));
 	}
 
 	/**
@@ -319,7 +319,7 @@ public class SettlementController extends BladeController {
 	@ApiOperationSupport(order = 8)
 	@ApiOperation(value = "付销售-收款结算-生成-销售收费账单", notes = "传入销售申请对象")
 	public R paymentApply(@RequestBody ApplyDTO dto) {
-		settlementService.paymentApply(dto.getItemsList(), dto.getBillType(), dto.getBelongCompany());
+		settlementService.paymentApply(dto.getItemsList(), dto.getBillType(), dto.getBelongCompany(),dto.getTradeType());
 		return R.success("操作成功");
 	}
 

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

@@ -52,13 +52,13 @@ public interface ISettlementService extends IService<Settlement> {
 	//取消结算
 	Settlement cancelModify(SettlementDTO settlementDTO);
 
-	Settlement apply(List<Items> itemsList, String billType, String url, String pageStatus, String pageLabel, String checkType) throws Exception;
+	Settlement apply(List<Items> itemsList, String billType, String url, String pageStatus, String pageLabel, String checkType, String tradeType) throws Exception;
 
 	void applyList(List<Items> itemsList, String billType, String url, String pageStatus, String pageLabel, String checkType);
 
 	void check(Settlement settlement);
 
-	void paymentApply(List<Items> itemsList, String billType, String belongCompany);
+	void paymentApply(List<Items> itemsList, String billType, String belongCompany,String tradeType);
 
 	SettlementDTO saveOrEdit(SettlementDTO settlementDTO);
 

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

@@ -23,6 +23,7 @@ import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.toolkit.SqlHelper;
+import com.trade.purchase.order.enums.OrderTypeEnum;
 import io.seata.spring.annotation.GlobalTransactional;
 import lombok.AllArgsConstructor;
 import lombok.Data;
@@ -59,6 +60,7 @@ import org.springblade.mocha.entity.BusinessOverpaymentItem;
 import org.springblade.mocha.entity.Overpayment;
 import org.springblade.mocha.feign.IBusinessOverpaymentClient;
 import org.springblade.purchase.sales.entity.Order;
+import org.springblade.purchase.sales.entity.OrderEnum;
 import org.springblade.purchase.sales.entity.OrderFees;
 import org.springblade.purchase.sales.entity.OrderItems;
 import org.springblade.purchase.sales.feign.IOrderDescClient;
@@ -503,7 +505,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 				}
 			}
 			//原业务表,计算应收未收款,应收未收款 = 销售金额 - 本次溢付款 - 已收款
-			client.setBalanceAmount((client.getOrderAmount().subtract(client.getSettlmentAmount())).subtract(client.getCaseOverPayment()));
+			client.setBalanceAmount((client.getDebitAmount().subtract(client.getSettlmentAmount())).subtract(client.getCaseOverPayment()));
 			orderDescClient.updateOrder(client);
 		}
 		//修改费用明细
@@ -631,7 +633,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 			//明细账单操作
 			accMapper.updateById(acc);
 			//原业务表,计算应收未收款,应收未收款 = 销售金额 - 本次溢付款 - 已收款
-			client.setBalanceAmount((client.getOrderAmount().subtract(client.getSettlmentAmount())).subtract(client.getCaseOverPayment()));
+			client.setBalanceAmount((client.getDebitAmount().subtract(client.getSettlmentAmount())).subtract(client.getCaseOverPayment()));
 			orderDescClient.updateOrder(client);
 
 		}
@@ -684,7 +686,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 
 	@Override
 	@Transactional
-	public Settlement apply(List<Items> itemsList, String billType, String url, String pageStatus, String pageLabel, String checkType) throws Exception {
+	public Settlement apply(List<Items> itemsList, String billType, String url, String pageStatus, String pageLabel, String checkType, String tradeType) throws Exception {
 		BigDecimal total = itemsList.stream().filter(e -> e.getAmount() != null && "CNY".equals(e.getCurrency())).map(Items::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
 		BigDecimal foreignTotal = itemsList.stream().filter(e -> e.getAmount() != null && !"CNY".equals(e.getCurrency())).map(Items::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
 		Settlement settlement = new Settlement();
@@ -713,55 +715,92 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 		settlement.setDc("c");
 		settlement.setSettlementType(1);
 		baseMapper.insert(settlement);
-
-		itemsList.forEach(e -> {
-			// 修改原费用明细状态
-			if (e.getSrcType() == 2) {
-				OrderFees client = orderFeesClient.getById(e.getSrcFeesId());
-				if (client == null) {
-					throw new SecurityException("未查到原单据的费用明细,无法修改状态");
-				}
-				client.setIsCheck(1);
-				client.setSubmitPay(1);
-				R submit = orderFeesClient.submit(client);
-				if (!submit.isSuccess()) {
-					throw new SecurityException("财务-修改原单据的费用明细错误");
-				}
-			} else if (e.getSrcType() == 3) {
-				R<DeliveryFees> fees = deliveryClient.getFeesById(e.getSrcFeesId());
-				DeliveryFees feesData = fees.getData();
-				if (feesData == null) {
-					throw new SecurityException("未查到原单据的费用明细,无法修改状态");
-				}
-				feesData.setIsCheck(1);
-				R submit = deliveryClient.submitFees(feesData);
-				if (!submit.isSuccess()) {
-					throw new SecurityException("财务-修改原单据的费用明细错误");
+		if ((StringUtils.isBlank(tradeType)) || (StringUtils.isNotBlank(tradeType)) && !tradeType.equals(OrderTypeEnum.DOMESTIC.getType())){
+			itemsList.forEach(e -> {
+				// 修改原费用明细状态
+				if (e.getSrcType() == 2) {
+					OrderFees client = orderFeesClient.getById(e.getSrcFeesId());
+					if (client == null) {
+						throw new SecurityException("未查到原单据的费用明细,无法修改状态");
+					}
+					client.setIsCheck(1);
+					client.setSubmitPay(1);
+					R submit = orderFeesClient.submit(client);
+					if (!submit.isSuccess()) {
+						throw new SecurityException("财务-修改原单据的费用明细错误");
+					}
+				} else if (e.getSrcType() == 3) {
+					R<DeliveryFees> fees = deliveryClient.getFeesById(e.getSrcFeesId());
+					DeliveryFees feesData = fees.getData();
+					if (feesData == null) {
+						throw new SecurityException("未查到原单据的费用明细,无法修改状态");
+					}
+					feesData.setIsCheck(1);
+					R submit = deliveryClient.submitFees(feesData);
+					if (!submit.isSuccess()) {
+						throw new SecurityException("财务-修改原单据的费用明细错误");
+					}
+				} else if (e.getSrcType() == 1) {
+					OrderItems client = orderItemsClient.getById(e.getSrcFeesId());
+					if (client == null) {
+						throw new SecurityException("未查到原单据的商品明细,无法修改状态");
+					}
+					client.setSubmitPay(1);
+					R submit = orderItemsClient.submit(client);
+					if (!submit.isSuccess()) {
+						throw new SecurityException("财务-修改原单据的商品明细错误");
+					}
 				}
-			} else if (e.getSrcType() == 1) {
-				OrderItems client = orderItemsClient.getById(e.getSrcFeesId());
-				if (client == null) {
-					throw new SecurityException("未查到原单据的商品明细,无法修改状态");
+
+				e.setId(null);
+				e.setPid(settlement.getId());
+				e.setCreateTime(new Date());
+				e.setTenantId(AuthUtil.getTenantId());
+				e.setCreateUser(AuthUtil.getUserId());
+				itemsMapper.insert(e);
+
+				R<CorpsDesc> corpMessage = corpsDescClient.getCorpMessage(e.getCorpId());
+				if (corpMessage.isSuccess() && corpMessage.getData() != null) {
+					e.setCorpName(corpMessage.getData().getCname());
 				}
-				client.setSubmitPay(1);
-				R submit = orderItemsClient.submit(client);
-				if (!submit.isSuccess()) {
-					throw new SecurityException("财务-修改原单据的商品明细错误");
+			});
+		}else {
+			for (Items e : itemsList) {// 修改原费用明细状态
+				if (e.getSrcType() == 2) {
+					Order order = orderDescClient.getById(e.getSrcParentId());
+					if (order == null) {
+						throw new SecurityException("未查到原单据信息,请查看单据是否存在");
+					}
+					R submit = orderFeesClient.submitPay(e.getSrcParentId());
+					if (!submit.isSuccess()) {
+						throw new SecurityException("财务-修改原单据的费用明细错误");
+					}
+				} else if (e.getSrcType() == 3) {
+					R submit = deliveryClient.submitPay(e.getSrcParentId());
+					if (!submit.isSuccess()) {
+						throw new SecurityException("财务-修改原单据的费用明细错误");
+					}
+				} else if (e.getSrcType() == 1) {
+					R submit = orderItemsClient.submitPay(e.getSrcParentId());
+					if (!submit.isSuccess()) {
+						throw new SecurityException("财务-修改原单据的商品明细错误");
+					}
 				}
-			}
 
-			e.setId(null);
-			e.setPid(settlement.getId());
-			e.setCreateTime(new Date());
-			e.setTenantId(AuthUtil.getTenantId());
-			e.setCreateUser(AuthUtil.getUserId());
-			itemsMapper.insert(e);
+				e.setId(null);
+				e.setPid(settlement.getId());
+				e.setCreateTime(new Date());
+				e.setTenantId(AuthUtil.getTenantId());
+				e.setCreateUser(AuthUtil.getUserId());
+				itemsMapper.insert(e);
 
-			R<CorpsDesc> corpMessage = corpsDescClient.getCorpMessage(e.getCorpId());
-			if (corpMessage.isSuccess() && corpMessage.getData() != null) {
-				e.setCorpName(corpMessage.getData().getCname());
+				R<CorpsDesc> corpMessage = corpsDescClient.getCorpMessage(e.getCorpId());
+				if (corpMessage.isSuccess() && corpMessage.getData() != null) {
+					e.setCorpName(corpMessage.getData().getCname());
+				}
 			}
-		});
+		}
+
 		List<CorpsBank> corpsBanks = corpsDescClient.listBankByCorpId(settlement.getCorpId());
 		settlement.setBankList(corpsBanks);
 		// 付费申请-直接开启审批
@@ -859,7 +898,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 
 	@Override
 	@Transactional
-	public void paymentApply(List<Items> itemsList, String billType, String belongCompany) {
+	public void paymentApply(List<Items> itemsList, String billType, String belongCompany,String tradeType) {
 		itemsList.forEach(e -> {
 			//产生凭证: 销售订单-生成账单
 		/*	if(e.getSrcType()==1 && e.getItemType().equals("销售"))
@@ -875,26 +914,28 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 					throw new SecurityException(exception.getMessage());
 				}
 			}*/
-			if (e.getSrcType() == 2) {
-				OrderFees orderFees = orderFeesClient.getById(e.getSrcFeesId());
-				if (orderFees == null) {
-					throw new SecurityException("未查到原单据的费用明细,无法修改状态");
-				}
-				orderFees.setSubmitPay(1);
-				orderFees.setIsCheck(1);
-				R submit = orderFeesClient.submit(orderFees);
-				if (!submit.isSuccess()) {
-					throw new SecurityException("财务-修改原单据的费用明细错误");
-				}
-			} else {
-				OrderItems client = orderItemsClient.getById(e.getSrcFeesId());
-				if (client == null) {
-					throw new SecurityException("未查到原单据的商品明细,无法修改状态");
-				}
-				client.setSubmitPay(1);
-				R submit = orderItemsClient.submit(client);
-				if (!submit.isSuccess()) {
-					throw new SecurityException("财务-修改原单据的商品明细错误");
+			if ((StringUtils.isBlank(tradeType)) || (StringUtils.isNotBlank(tradeType)) && !tradeType.equals(OrderTypeEnum.DOMESTIC.getType())){
+				if (e.getSrcType() == 2) {
+					OrderFees orderFees = orderFeesClient.getById(e.getSrcFeesId());
+					if (orderFees == null) {
+						throw new SecurityException("未查到原单据的费用明细,无法修改状态");
+					}
+					orderFees.setSubmitPay(1);
+					orderFees.setIsCheck(1);
+					R submit = orderFeesClient.submit(orderFees);
+					if (!submit.isSuccess()) {
+						throw new SecurityException("财务-修改原单据的费用明细错误");
+					}
+				} else {
+					OrderItems client = orderItemsClient.getById(e.getSrcFeesId());
+					if (client == null) {
+						throw new SecurityException("未查到原单据的商品明细,无法修改状态");
+					}
+					client.setSubmitPay(1);
+					R submit = orderItemsClient.submit(client);
+					if (!submit.isSuccess()) {
+						throw new SecurityException("财务-修改原单据的商品明细错误");
+					}
 				}
 			}