Browse Source

2022年9月16日19:40:11

纪新园 3 years ago
parent
commit
0ad52281ff
16 changed files with 241 additions and 139 deletions
  1. 3 0
      blade-service-api/trade-finance-api/src/main/java/org/springblade/finance/feign/IFinanceClient.java
  2. 7 0
      blade-service-api/trade-finance-api/src/main/java/org/springblade/finance/vojo/Items.java
  3. 21 11
      blade-service/blade-check/src/main/java/org/springblade/check/controller/AuditProecessController.java
  4. 1 1
      blade-service/blade-check/src/main/java/org/springblade/check/service/impl/AuditProecessServiceImpl.java
  5. 1 1
      blade-service/blade-client/src/main/java/org/springblade/client/goods/mapper/GoodsDescMapper.java
  6. 3 4
      blade-service/blade-client/src/main/java/org/springblade/client/goods/mapper/GoodsDescMapper.xml
  7. 2 1
      blade-service/blade-client/src/main/java/org/springblade/client/goods/service/impl/GoodsDescServiceImpl.java
  8. 12 0
      blade-service/trade-finance/src/main/java/org/springblade/finance/controller/AccController.java
  9. 7 0
      blade-service/trade-finance/src/main/java/org/springblade/finance/mapper/AccMapper.java
  10. 5 0
      blade-service/trade-finance/src/main/java/org/springblade/finance/mapper/AccMapper.xml
  11. 2 0
      blade-service/trade-finance/src/main/java/org/springblade/finance/service/IAccService.java
  12. 10 0
      blade-service/trade-finance/src/main/java/org/springblade/finance/service/impl/AccServiceImpl.java
  13. 6 1
      blade-service/trade-finance/src/main/java/org/springblade/finance/service/impl/SettlementServiceImpl.java
  14. 4 3
      blade-service/trade-purchase/src/main/java/com/trade/purchase/financing/service/impl/FinancingServiceImpl.java
  15. 25 25
      blade-service/trade-purchase/src/main/java/com/trade/purchase/order/controller/WoodHarvestingCloudController.java
  16. 132 92
      blade-service/trade-purchase/src/main/java/com/trade/purchase/order/service/impl/OrderServiceImpl.java

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

@@ -87,4 +87,7 @@ public interface IFinanceClient {
 	@GetMapping("/settlement/details")
 	R<Settlement> details(@RequestParam(value = "id") Long id);
 
+	@PostMapping("/acc/updateByOrderId")
+	R updateByOrderId(@RequestParam("orderId") Long orderId);
+
 }

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

@@ -222,4 +222,11 @@ public class Items implements Serializable {
 	 */
 	@ApiModelProperty(value = "商品名称")
 	private String goodName;
+
+
+	/**
+	 * 嘉通费用状态
+	 */
+	@TableField(exist = false)
+	private int statusJT;
 }

+ 21 - 11
blade-service/blade-check/src/main/java/org/springblade/check/controller/AuditProecessController.java

@@ -30,6 +30,7 @@ import org.springblade.check.dto.AuditProecessDTO;
 import org.springblade.check.entity.AuditProecess;
 import org.springblade.check.service.IAuditProecessService;
 import org.springblade.check.vo.AuditOrderVO;
+import org.springblade.client.entity.CorpsDesc;
 import org.springblade.client.feign.ICorpsDescClient;
 import org.springblade.core.boot.ctrl.BladeController;
 import org.springblade.core.mp.support.Condition;
@@ -103,18 +104,27 @@ public class AuditProecessController extends BladeController {
 		if (CollectionUtils.isNotEmpty(auditProecessList)) {
 			List<AuditOrderVO> auditOrderVOS = new ArrayList<>();
 			auditProecessList.forEach(e -> {
-				if(!"N".equals(e.getAuditStatus())){
+				if (!"N".equals(e.getAuditStatus())) {
 					AuditOrderVO auditOrderVO = new AuditOrderVO();
 					BeanUtil.copyProperties(e, auditOrderVO);
 					//采购销售表相关数据
-					if (e.getBillId() != null) {
-						Order order = orderDescClient.getById(e.getBillId());
-						if (order != null) {
-							auditOrderVO.setOrderDate(order.getCreateTime());
-							auditOrderVO.setOrderNo(order.getOrderNo());
-							auditOrderVO.setAmountReceivable(order.getDebitAmount());
-							if (order.getCorpId() != null) {
-								auditOrderVO.setCorpsName(corpsDescClient.getCorpMessage(order.getCorpId()).getData().getCname());
+					if ("rzgl".equals(e.getCheckType())) {
+						if (ObjectUtils.isNotNull(e.getCorpId())) {
+							R<CorpsDesc> corpsDesc = corpsDescClient.getCorpMessage(e.getCorpId());
+							if (corpsDesc.isSuccess()) {
+								auditOrderVO.setCorpsName(corpsDesc.getData().getCname());
+							}
+						}
+					} else {
+						if (e.getBillId() != null) {
+							Order order = orderDescClient.getById(e.getBillId());
+							if (order != null) {
+								auditOrderVO.setOrderDate(order.getCreateTime());
+								auditOrderVO.setOrderNo(order.getOrderNo());
+								auditOrderVO.setAmountReceivable(order.getDebitAmount());
+								if (order.getCorpId() != null) {
+									auditOrderVO.setCorpsName(corpsDescClient.getCorpMessage(order.getCorpId()).getData().getCname());
+								}
 							}
 						}
 					}
@@ -249,9 +259,9 @@ public class AuditProecessController extends BladeController {
 		}// 销售机会审批
 		else if ("xsjh".equals(proecess.getCheckType())) {
 			auditProecessService.leadsCheck(auditProecess);
-		}else if ("RK".equals(proecess.getCheckType()) || "CK".equals(proecess.getCheckType()) || "PD".equals(proecess.getCheckType())) {
+		} else if ("RK".equals(proecess.getCheckType()) || "CK".equals(proecess.getCheckType()) || "PD".equals(proecess.getCheckType())) {
 			auditProecessService.cmyCheck(auditProecess);
-		}else if ("rzgl".equals(proecess.getCheckType())) {
+		} else if ("rzgl".equals(proecess.getCheckType())) {
 			auditProecessService.financingyCheck(auditProecess);
 		} else {
 			auditProecessService.commonCheck(auditProecess);

+ 1 - 1
blade-service/blade-check/src/main/java/org/springblade/check/service/impl/AuditProecessServiceImpl.java

@@ -2372,7 +2372,7 @@ public class AuditProecessServiceImpl extends ServiceImpl<AuditProecessMapper, A
 			if (operate == 1) {
 				//如果是第一级, 则修改状态为审批中
 				if (auditProecess.getLevelId() == 1) {
-					R submit = financingClient.passCheck(auditProecess.getSrcBillId());
+					R submit = financingClient.underReview(auditProecess.getSrcBillId());
 					if (!submit.isSuccess()) {
 						throw new SecurityException("审批开始修改审核状态失败");
 					}

+ 1 - 1
blade-service/blade-client/src/main/java/org/springblade/client/goods/mapper/GoodsDescMapper.java

@@ -56,7 +56,7 @@ public interface GoodsDescMapper extends BaseMapper<GoodsDesc> {
 	 * @param Id
 	 * @return
 	 */
-	GoodsDescVO selectGoodsMessage(@Param("Id") Long Id);
+	GoodsDescVO selectGoodsMessage(@Param("Id") Long Id,@Param("tenantId") String tenantId);
 	/**
 	 * 获取商品信息
 	 *

+ 3 - 4
blade-service/blade-client/src/main/java/org/springblade/client/goods/mapper/GoodsDescMapper.xml

@@ -210,10 +210,9 @@
         select
         *
         from basic_goods_desc
-        where is_deleted = 0
-        <if test="Id!=null">
-            and id = #{Id}
-        </if>
+        where id = #{Id}
+            and is_deleted = 0
+            and tenant_id = #{tenantId}
     </select>
     <select id="getTerraceCode" resultMap="goodsDescResultMap">
         select

+ 2 - 1
blade-service/blade-client/src/main/java/org/springblade/client/goods/service/impl/GoodsDescServiceImpl.java

@@ -184,7 +184,8 @@ public class GoodsDescServiceImpl extends ServiceImpl<GoodsDescMapper, GoodsDesc
 
 	@Override
 	public GoodsDescVO selectGoodsMessage(Long id) {
-		return baseMapper.selectGoodsMessage(id);
+
+		return baseMapper.selectGoodsMessage(id,AuthUtil.getTenantId());
 	}
 
 	@Override

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

@@ -136,6 +136,7 @@ public class AccController extends BladeController {
 		}else if (acc.getSettlementStatus() != null && acc.getSettlementStatus() == 2){
 			accLambdaQueryWrapper.apply("Amount != Settlement_Amount");
 		}
+		accLambdaQueryWrapper.eq(Acc::getStatus,0);
 		accLambdaQueryWrapper.orderByDesc(Acc::getCreateTime);
 		IPage<Acc> pages = accService.page(Condition.getPage(query), accLambdaQueryWrapper);
 		pages.getRecords().forEach(e -> {
@@ -302,4 +303,15 @@ public class AccController extends BladeController {
 		}
 		ExcelUtil.export(response, "收付费明细", "收付费明细", feeStatisticsExcelArrayList, FeeStatisticsExcel.class);
 	}
+
+	/**
+	 * 修改 财务账单
+	 */
+	@PostMapping("/updateByOrderId")
+	@ApiOperationSupport(order = 5)
+	@ApiOperation(value = "修改", notes = "传入orderId")
+	public void updateByOrderId(@RequestParam("orderId") Long orderId) {
+		accService.updateByOrderId(orderId);
+	}
+
 }

+ 7 - 0
blade-service/trade-finance/src/main/java/org/springblade/finance/mapper/AccMapper.java

@@ -17,6 +17,7 @@
 package org.springblade.finance.mapper;
 
 import org.apache.ibatis.annotations.Param;
+import org.springblade.core.tool.api.R;
 import org.springblade.finance.vo.CostMessage;
 import org.springblade.finance.vojo.Acc;
 
@@ -68,4 +69,10 @@ public interface AccMapper extends BaseMapper<Acc> {
 	 */
 	List<CostMessage> salaryProfit(@Param("acc") AccVO accVO);
 
+	/**
+	 * 通过orderId修改账单状态
+	 * @param orderId
+	 * @return
+	 */
+    R updateByOrderId(@Param("orderId")Long orderId);
 }

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

@@ -46,6 +46,11 @@
     </resultMap>
 
 
+    <update id="updateByOrderId" parameterType="Long">
+        UPDATE finance_acc set status = 0  WHERE Src_parent_id = #{orderId}
+    </update>
+
+
     <select id="selectAccPage" resultMap="accResultMap">
         select * from finance_acc where is_deleted = 0
     </select>

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

@@ -18,6 +18,7 @@ package org.springblade.finance.service;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
+import org.springblade.core.tool.api.R;
 import org.springblade.finance.vo.AccVO;
 import org.springblade.finance.vo.CostMessage;
 import org.springblade.finance.vojo.Acc;
@@ -69,4 +70,5 @@ public interface IAccService extends IService<Acc> {
 	 */
 	List<CostMessage> salaryProfit(AccVO accVO);
 
+	void updateByOrderId(Long orderId);
 }

+ 10 - 0
blade-service/trade-finance/src/main/java/org/springblade/finance/service/impl/AccServiceImpl.java

@@ -160,4 +160,14 @@ public class AccServiceImpl extends ServiceImpl<AccMapper, Acc> implements IAccS
 		return costMessages;
 	}
 
+	/**
+	 * 通过orderId修改账单状态
+	 * @param orderId
+	 * @return
+	 */
+	@Override
+	public void updateByOrderId(Long orderId) {
+		baseMapper.updateByOrderId(orderId);
+	}
+
 }

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

@@ -982,12 +982,17 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 			acc.setDc("d");
 			acc.setItemType(e.getItemType());
 			acc.setAccSysNo(e.getSrcOrderno());
+			acc.setSrcRefno(e.getSrcOrderno());
 			acc.setSrcParentId(e.getSrcParentId());
 			acc.setSrcBillNo(e.getBillNo());
 			acc.setBillType(billType);
 			acc.setCreateTime(new Date());
 			acc.setTradeType(e.getTradeType());
-			acc.setStatus(0);
+			if (ObjectUtils.isNotNull(e.getStatusJT())){
+				acc.setStatus(e.getStatusJT());
+			}else{
+				acc.setStatus(0);
+			}
 			acc.setRemarks(e.getRemarks());
 			acc.setCostType(e.getCostType());
 			acc.setCreateUser(AuthUtil.getUserId());

+ 4 - 3
blade-service/trade-purchase/src/main/java/com/trade/purchase/financing/service/impl/FinancingServiceImpl.java

@@ -165,7 +165,7 @@ public class FinancingServiceImpl extends ServiceImpl<FinancingMapper, Financing
 			AuditProecessDTO auditProecessDTO = new AuditProecessDTO();
 
 			// 绑定审核类型
-			auditProecessDTO.setCheckType(financing.getCheckType());
+			auditProecessDTO.setCheckType("rzgl");
 			// 追加跳转路由url
 			auditProecessDTO.setUrl(financing.getUrl());
 			auditProecessDTO.setPageStatus(financing.getPageStatus());
@@ -175,13 +175,14 @@ public class FinancingServiceImpl extends ServiceImpl<FinancingMapper, Financing
 			if (financing.getCheckFlag() == 1) {
 				auditProecessDTO.setProcessType("融资审批");
 			}
+			auditProecessDTO.setAmount(salesFinancing.getFinancingAmount());
 			auditProecessDTO.setOrderRemark(salesFinancing.getRemarks());
 			auditProecessDTO.setCorpId(salesFinancing.getCorpId());
-			auditProecessDTO.setCheckType(salesFinancing.getCheckType());
+			auditProecessDTO.setCheckType("rzgl");
 			auditProecessDTO.setPathsLevelsList(auditPathsLevels);
 			auditProecessDTO.setActId(1);
 			auditProecessDTO.setSrcBillId(salesFinancing.getId());
-			auditProecessDTO.setBillId(salesFinancing.getId());
+			auditProecessDTO.setBillId(salesFinancing.getCorpId());
 			auditProecessDTO.setBillNo(salesFinancing.getSysNo());
 			auditProecessDTO.setSendUserId(AuthUtil.getUserId());
 			auditProecessDTO.setSendName(AuthUtil.getUserName());

+ 25 - 25
blade-service/trade-purchase/src/main/java/com/trade/purchase/order/controller/WoodHarvestingCloudController.java

@@ -3,7 +3,6 @@ package com.trade.purchase.order.controller;
 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.metadata.OrderItem;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -17,7 +16,6 @@ import com.trade.purchase.order.entity.OrderItems;
 import com.trade.purchase.order.enums.OrderTypeEnum;
 import com.trade.purchase.order.service.IOrderItemsService;
 import com.trade.purchase.order.service.IOrderService;
-import com.trade.purchase.order.vo.OrderDTO;
 import com.trade.purchase.order.vo.OrderTotalDTO;
 import com.trade.purchase.order.vo.OrderVO;
 import io.swagger.annotations.Api;
@@ -37,7 +35,6 @@ 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.system.feign.ISysClient;
 import org.springblade.system.user.entity.User;
 import org.springblade.system.user.feign.IUserClient;
 import org.springframework.web.bind.annotation.*;
@@ -124,7 +121,6 @@ public class WoodHarvestingCloudController {
 			.eq("tenant_id", AuthUtil.getTenantId())
 			.eq(ObjectUtils.isNotNull(order.getBillType()), "bill_type", order.getBillType())
 			.eq("trade_type", OrderTypeEnum.WOOD_HARVESTING_CLOUD.getType())
-			.eq(ObjectUtils.isNotNull(order.getSpecialCheckStatus()), "special_check_status", order.getSpecialCheckStatus())
 			.eq(ObjectUtils.isNotNull(order.getBusinessType()), "business_type", order.getBusinessType())
 			.eq(ObjectUtils.isNotNull(order.getPurchaserId()), "purchaser_id", order.getPurchaserId())
 			.like(ObjectUtils.isNotNull(order.getSysNo()), "sys_no", order.getSysNo())
@@ -165,7 +161,7 @@ public class WoodHarvestingCloudController {
 			if (userR.isSuccess()) {
 				orders.setSalesName(userR.getData().getName());
 			}
-			// 查询订单明细信息
+			/*// 查询订单明细信息
 			List<OrderItems> orderItemsList = orderItemsService.list(Wrappers.<OrderItems>lambdaQuery()
 				.eq(OrderItems::getPid, orders.getId()).eq(OrderItems::getTenantId, SecureUtil.getTenantId())
 				.eq(OrderItems::getIsDeleted, 0).orderByAsc(OrderItems::getSort));
@@ -178,7 +174,7 @@ public class WoodHarvestingCloudController {
 					}
 				}
 			}
-			orders.setItemsList(orderItemsList);
+			orders.setItemsList(orderItemsList);*/
 		}
 		return R.data(pages);
 	}
@@ -264,7 +260,7 @@ public class WoodHarvestingCloudController {
 		financingLambdaQueryWrapper
 			.eq(Financing::getIsDeleted, 0)
 			.eq(Financing::getTenantId, AuthUtil.getTenantId())
-			.eq(Financing::getCorpId, order.getCorpId());
+			.eq(Financing::getCorpId, order.getId());
 		List<Financing> financingList = financingService.list(financingLambdaQueryWrapper);
 		BigDecimal financing = financingList.stream().map(Financing::getFinancingAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
 
@@ -276,11 +272,14 @@ public class WoodHarvestingCloudController {
 			.eq(Order::getBillType, OrderTypeEnum.WAREHOUSING.getType())
 			.eq(Order::getTradeType, OrderTypeEnum.WOOD_HARVESTING_CLOUD.getType())
 			.eq(Order::getSpecialCheckStatus, 0)
-			.eq(Order::getCorpId, order.getCorpId());
+			.eq(Order::getCorpId, order.getId());
 		List<Order> orderList = orderService.list(orderLambdaQueryWrapper);
 		BigDecimal storageAmount = orderList.stream().map(Order::getStorageAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
-		if (storageAmount.compareTo(financing) < 0) {
-			return R.data("您的现有资产已不足融资金额,请先还款在进行操作");
+		int num = financing.signum();
+		if (num == -1){
+			if (storageAmount.compareTo(financing.abs()) < 0) {
+				return R.data("您的现有资产已不足融资金额,请先还款在进行操作");
+			}
 		}
 		return R.data("操作成功");
 	}
@@ -335,13 +334,15 @@ public class WoodHarvestingCloudController {
 				queryWrapper.eq("is_deleted", 0);
 				List<OrderItems> orderItemsList = orderItemsService.list(queryWrapper);
 				for (OrderItems orderItems : orderItemsList) {
-					if ("N".equals(orderItems.getScanningComparison())) {
-						return R.fail("捆包号:" + orderItems.getBillNo() + "未扫描确认,不能出库");
-					}
+					orderItems.setScanningComparison("Y");
+					orderItems.setUpdateTime(new Date());
+					orderItems.setUpdateUser(AuthUtil.getUserId());
+					orderItemsService.updateById(orderItems);
 				}
 				LambdaQueryWrapper<Order> RKOrderLambdaQueryWrapper = new LambdaQueryWrapper<>();
 				RKOrderLambdaQueryWrapper
 					.eq(Order::getIsDeleted, 0)
+					.eq(Order::getOrderNo, order.getOrderNo())
 					.eq(Order::getBillType, OrderTypeEnum.WAREHOUSING.getType())
 					.eq(Order::getTenantId, AuthUtil.getTenantId());
 				Order RKOrder = orderService.getOne(RKOrderLambdaQueryWrapper);
@@ -385,30 +386,29 @@ public class WoodHarvestingCloudController {
 	@GetMapping("/appScanningCodeComparison")
 	@ApiOperationSupport(order = 8)
 	@ApiOperation(value = "手动确认比对", notes = "明细id")
-	public R appScanningCodeComparison( @RequestParam(value = "id") Long id, @RequestParam(value = "billNo") String billNo) {
-		if (ObjectUtils.isNull(id)|| ObjectUtils.isNull(billNo)) {
+	public R appScanningCodeComparison(@RequestParam(value = "id") Long id, @RequestParam(value = "map") List<Map<String, String>> map) {
+		if (ObjectUtils.isNull(id) || ObjectUtils.isNull(map)) {
 			return R.fail("缺少必要参数");
 		}
-		Order order = orderService.getById(id);
-		if (ObjectUtils.isNotNull(order)){
+		for (Map<String, String> ma : map) {
 			QueryWrapper<OrderItems> queryWrapper = new QueryWrapper<>();
-			queryWrapper.eq("pid",id);
-			queryWrapper.eq("bill_no",billNo);
-			queryWrapper.eq("tenant_id",AuthUtil.getTenantId());
-			queryWrapper.eq("is_deleted",0);
+			queryWrapper.eq("pid", id);
+			queryWrapper.eq("id", ma.get("itemId"));
+			queryWrapper.eq("bill_no", ma.get("billNo"));
+			queryWrapper.eq("tenant_id", AuthUtil.getTenantId());
+			queryWrapper.eq("is_deleted", 0);
 			OrderItems orderItems = orderItemsService.getOne(queryWrapper);
-			if (ObjectUtils.isNotNull(orderItems)){
+			if (ObjectUtils.isNotNull(orderItems)) {
 				orderItems.setScanningComparison("Y");
 				orderItems.setUpdateTime(new Date());
 				orderItems.setUpdateUser(AuthUtil.getUserId());
 				orderItemsService.updateById(orderItems);
 				return R.data(orderItems);
-			}else{
+			} else {
 				return R.fail("扫码比对失败!未在本单据中找到次码信息");
 			}
-		}else{
-			return R.fail("扫码比对失败!未找到单据信息");
 		}
+		return R.success("");
 	}
 
 	/**

+ 132 - 92
blade-service/trade-purchase/src/main/java/com/trade/purchase/order/service/impl/OrderServiceImpl.java

@@ -1436,7 +1436,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 			auditProecessDTO.setOrderRemark(salesOrder.getOrderRemark());
 			auditProecessDTO.setGrossProfit(salesOrder.getGrossProfit());
 			auditProecessDTO.setGrossProfitRate(salesOrder.getGrossProfitRate());
-			auditProecessDTO.setCorpId(salesOrder.getCorpId());
+			auditProecessDTO.setCorpId(salesOrder.getPurchaserId());
 			auditProecessDTO.setCheckType(order.getCheckType());
 			auditProecessDTO.setPathsLevelsList(auditPathsLevels);
 			auditProecessDTO.setActId(1);
@@ -1461,12 +1461,13 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 			order.setOrgOrderNo(order.getOrgOrderNo());
 			order.setOrderRemark(salesOrder.getOrderRemark());
 			order.setStorageQuantity(salesOrder.getStorageQuantity());
+			order.setBillNo(salesOrder.getBillNo());
 			//出库生成仓储费
 			if ("CK".equals(salesOrder.getBillType())) {
 				this.paymentApply(order, "收费", OrderTypeEnum.STORAGE_FEE.getType());
 				this.paymentApply(order, "收费", "出库");
-			}else if ("RK".equals(salesOrder.getBillType())){
-				this.paymentApply(order, "付费", "入库");
+			} else if ("RK".equals(salesOrder.getBillType())) {
+				this.paymentApply(order, "申请", "入库");
 			}
 
 		}
@@ -1487,7 +1488,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 			throw new SecurityException("订单已审批通过请勿重复审批");
 		}
 		order.setStatus(3);
-		order.setConfirmStatus("1");
+//		order.setConfirmStatus("1");
 		order.setOrderStatus("审批通过");
 
 		// ===========================end 审核通过修改入出库订单信息==========================
@@ -1517,8 +1518,12 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 				//盘点明细
 				List<OrderItems> PDOrderItemsList = orderItemsMapper.selectList(PDOrderItemsLambdaQueryWrapper);
 				//入库明细
-				PDOrderItemsLambdaQueryWrapper.eq(OrderItems::getPid, RKOrder.getId());
-				List<OrderItems> RKOrderItemsList = orderItemsMapper.selectList(PDOrderItemsLambdaQueryWrapper);
+				LambdaQueryWrapper<OrderItems> RKOrderItemsLambdaQueryWrapper = new LambdaQueryWrapper<>();
+				RKOrderItemsLambdaQueryWrapper
+					.eq(OrderItems::getIsDeleted, 0)
+					.eq(OrderItems::getPid, RKOrder.getId())
+					.eq(OrderItems::getTenantId, AuthUtil.getTenantId());
+				List<OrderItems> RKOrderItemsList = orderItemsMapper.selectList(RKOrderItemsLambdaQueryWrapper);
 				for (OrderItems orderItems : PDOrderItemsList) {
 					for (OrderItems RKOrderItems : RKOrderItemsList) {
 						//判断盘点与入库明细捆包号是否相等 true修改入库盘点量,结余量,结余金额
@@ -1531,8 +1536,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 					}
 				}
 			}
-
 		}
+		financeClient.updateByOrderId(order.getId());
 		baseMapper.updateById(order);
 		return R.success("审核通过");
 	}
@@ -1628,11 +1633,6 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		applyDTO.setCheckType(order.getCheckType());
 		applyDTO.setAccDate(order.getBusinesDate());
 
-
-		List<Items> itemsList = new ArrayList<>();
-
-		Items items = new Items();
-
 		//判断是否未仓储费
 		if (!OrderTypeEnum.STORAGE_FEE.getType().equals(itemType)) {
 			//获取订单明细信息
@@ -1649,82 +1649,92 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 			LambdaQueryWrapper<OrderFees> orderFeesLambdaQueryWrapper = new LambdaQueryWrapper<>();
 			orderFeesLambdaQueryWrapper.eq(OrderFees::getIsDeleted, 0);
 			orderFeesLambdaQueryWrapper.eq(OrderFees::getPid, order.getId());
-			orderFeesLambdaQueryWrapper.eq(OrderFees::getFeesType, 1);
+			if ("入库".equals(itemType)) {
+				orderFeesLambdaQueryWrapper.eq(OrderFees::getFeesType, 2);
+			} else {
+				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.setItemType(itemType);
-				items.setPrice(price);
-				//账单数据
-				items.setAmount(amount);
-				items.setQuantity(quantity);
-				items.setSrcOrderno(order.getOrgOrderNo());
-				items.setCorpId(order.getPurchaserId());
-				items.setSrcParentId(order.getId());
-				items.setCurrency("CNY");
-				items.setExchangeRate(new BigDecimal(1));
-				items.setTaxRate(BigDecimal.ZERO);
-				items.setSrcType(1);
-				items.setTradeType(order.getTradeType());
-				items.setUnit("条");
-				items.setRemarks(order.getOrderRemark());
-				//获取费用id
-				R<FeesDesc> fees = feesDescClient.getFeesByName("货款");
-				if (fees.isSuccess() && fees.getData() != null) {
-					items.setCostType(fees.getData().getId().toString());
-				}
-				itemsList.add(items);
-				applyDTO.setItemsList(itemsList);
-				if (CollectionUtils.isNotEmpty(itemsList)) {
-					//生成账单
-					R paymentApply = financeClient.paymentApply(applyDTO);
-					if (!paymentApply.isSuccess()) {
-						throw new RuntimeException(paymentApply.getMsg());
+				for (OrderFees orderFees : orderFeesList) {
+					List<Items> itemsList = new ArrayList<>();
+					Items items = new Items();
+					amount = orderFees.getAmount();
+					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.setItemType(itemType);
+					items.setPrice(price);
+					//账单数据
+					items.setAmount(amount);
+					items.setQuantity(quantity);
+					items.setSrcOrderno(order.getOrgOrderNo());
+					items.setCorpId(orderFees.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.setUnit("条");
+					items.setRemarks(order.getOrderRemark());
+					items.setSrcBillNo(order.getBillNo());
+					items.setStatusJT(1);
+					//获取费用id
+					R<FeesDesc> fees = feesDescClient.getFeesByName("货款");
+					if (fees.isSuccess() && fees.getData() != null) {
+						items.setCostType(fees.getData().getId().toString());
 					}
-					//给角色为财务的人发送消息
-					R<String> clientDeptIds = sysClient.getRoleIds(SecureUtil.getTenantId(), "财务");
-					if (clientDeptIds.isSuccess() && StringUtils.isNotBlank(clientDeptIds.getData())) {
-						R<List<User>> userList = userClient.listUserByRoleId(Long.valueOf(clientDeptIds.getData()));
-						if (userList.isSuccess() && CollectionUtils.isNotEmpty(userList.getData())) {
-							for (User datum : userList.getData()) {
-								//循环发送消息
-								Message sendMessage = new Message();
-								sendMessage.setParameter(String.valueOf(order.getId()));
-								sendMessage.setUserName(AuthUtil.getUserName());
-								sendMessage.setUserId(AuthUtil.getUserId());
-								sendMessage.setToUserId(datum.getId());
-								sendMessage.setToUserName(datum.getName());
-								sendMessage.setMessageType(1);
-								sendMessage.setTenantId(AuthUtil.getTenantId());
-								sendMessage.setCreateUser(AuthUtil.getUserId());
-								sendMessage.setCreateTime(new Date());
-								sendMessage.setUrl(order.getUrl());
-								sendMessage.setPageLabel(order.getPageLabel());
-								sendMessage.setPageStatus(order.getPageStatus());
-								sendMessage.setMessageBody(order.getBelongToCorpName() + " 您的客户:" + order.getCorpName() + "的订单 " + order.getSysNo() + "审核通过,请查看");
-								R save = messageClient.save(sendMessage);
-								if (!save.isSuccess()) {
-									throw new SecurityException("发送消息失败");
+					itemsList.add(items);
+					applyDTO.setItemsList(itemsList);
+					if (CollectionUtils.isNotEmpty(itemsList)) {
+						//生成账单
+						R paymentApply = financeClient.paymentApply(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()));
+							if (userList.isSuccess() && CollectionUtils.isNotEmpty(userList.getData())) {
+								for (User datum : userList.getData()) {
+									//循环发送消息
+									Message sendMessage = new Message();
+									sendMessage.setParameter(String.valueOf(order.getId()));
+									sendMessage.setUserName(AuthUtil.getUserName());
+									sendMessage.setUserId(AuthUtil.getUserId());
+									sendMessage.setToUserId(datum.getId());
+									sendMessage.setToUserName(datum.getName());
+									sendMessage.setMessageType(1);
+									sendMessage.setTenantId(AuthUtil.getTenantId());
+									sendMessage.setCreateUser(AuthUtil.getUserId());
+									sendMessage.setCreateTime(new Date());
+									sendMessage.setUrl(order.getUrl());
+									sendMessage.setPageLabel(order.getPageLabel());
+									sendMessage.setPageStatus(order.getPageStatus());
+									sendMessage.setMessageBody(order.getBelongToCorpName() + " 您的客户:" + order.getCorpName() + "的订单 " + order.getSysNo() + "审核通过,请查看");
+									R save = messageClient.save(sendMessage);
+									if (!save.isSuccess()) {
+										throw new SecurityException("发送消息失败");
+									}
 								}
 							}
 						}
+						//修改原数据表示已生成账单
+						//修改商品明细
+						orderItemsMapper.submitPay(order.getId());
+						//修改费用明细
+						orderFeesService.submitPay(order.getId());
 					}
-					//修改原数据表示已生成账单
-					//修改商品明细
-					orderItemsMapper.submitPay(order.getId());
-					//修改费用明细
-					orderFeesService.submitPay(order.getId());
 				}
-			}else{
-
 			}
 		} else {
+			List<Items> itemsList = new ArrayList<>();
+			Items items = new Items();
 			items.setItemType("仓储费");
 
 			int date = 0;
@@ -1757,16 +1767,13 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 				.eq(Agreement::getFeetypeId, "0")
 				.eq(Agreement::getDelFlag, "0")
 				.eq(Agreement::getTenantId, AuthUtil.getTenantId())
-			.apply("FIND_IN_SET("+order.getStorageId()+",warehouse_id)");
+				.apply("FIND_IN_SET(" + order.getStorageId() + ",warehouse_id)");
 			Agreement agreement = agreementService.getOne(agreementLambdaQueryWrapper);
 			if (agreement == null) {
 				throw new SecurityException("未找到仓储费协议");
 			}
 			//获取实际收费天数  (存放天数减去免费天数)
-			int days = date - agreement.getFreeDays();
-
-			//业务天数
-			date = date - agreement.getFreeDays();
+			int days = date;
 
 			//获取仓储费协议明细
 			LambdaQueryWrapper<Agreementitems> agreementItemsLambdaQueryWrapper = new LambdaQueryWrapper<>();
@@ -1775,16 +1782,27 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 				.orderByAsc(Agreementitems::getLineno)
 				.eq(Agreementitems::getDelFlag, "0");
 			List<Agreementitems> agreementItemsList = agreementitemsService.list(agreementItemsLambdaQueryWrapper);
+			int count = 0;
+			StringBuilder text = new StringBuilder();
 			for (Agreementitems agreementitems : agreementItemsList) {
-				//判断实际存放天数是否大于本条结束天数
-				if (days >= agreementitems.getEnDays()) {
-					//本条收费天数乘以单价 = 所需收费金额
-					amount = amount.add((new BigDecimal((agreementitems.getEnDays() - agreementitems.getFromDays()+1), MathContext.UNLIMITED)).multiply(agreementitems.getPrice(), MathContext.UNLIMITED).multiply(order.getStorageQuantity()));
-					//业务天数减去本条结束天数所得天数为下一条要收费天数
-					date = date - (agreementitems.getEnDays() - agreementitems.getFromDays()+1);
+				if (count == 0 && days <= agreementitems.getEnDays()) {
+					break;
 				} else {
-					//业务天数乘以单价 = 剩余所需收费金额
-					amount = amount.add((new BigDecimal(date+1)).multiply(agreementitems.getPrice(), MathContext.UNLIMITED).multiply(order.getStorageQuantity()));
+					//判断实际存放天数是否大于本条结束天数
+					if (days >= agreementitems.getEnDays()) {
+						//本条收费天数乘以单价 = 所需收费金额
+						amount = amount.add((new BigDecimal((agreementitems.getEnDays() - agreementitems.getFromDays() + 1), MathContext.UNLIMITED)).multiply(agreementitems.getPrice(), MathContext.UNLIMITED).multiply(order.getStorageQuantity()));
+						//业务天数减去本条结束天数所得天数为下一条要收费天数
+						date = date - (agreementitems.getEnDays() - agreementitems.getFromDays() + 1);
+						text.append(order.getStorageQuantity()).append("*").append(agreementitems.getPrice()).append("*").append(agreementitems.getEnDays() - agreementitems.getFromDays() + 1).append("+");
+					} else {
+						if (agreementitems.getPrice().compareTo(new BigDecimal(0)) > 0) {
+							//业务天数乘以单价 = 剩余所需收费金额
+							amount = amount.add((new BigDecimal(date + 1)).multiply(agreementitems.getPrice(), MathContext.UNLIMITED).multiply(order.getStorageQuantity()));
+							text.append(order.getStorageQuantity()).append("*").append(agreementitems.getPrice()).append("*").append(date + 1);
+						}
+					}
+					count++;
 				}
 			}
 			quantity = RKoOrder.getStorageQuantity();
@@ -1801,8 +1819,10 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 			items.setTradeType(order.getTradeType());
 			items.setUnit("条");
 			items.setRemarks(order.getOrderRemark());
+			items.setSrcBillNo(order.getBillNo());
+			items.setStatusJT(1);
 			//获取费用id
-			R<FeesDesc> fees = feesDescClient.getFeesByName("货款");
+			R<FeesDesc> fees = feesDescClient.getFeesByName("仓储费");
 			if (fees.isSuccess() && fees.getData() != null) {
 				items.setCostType(fees.getData().getId().toString());
 			}
@@ -1814,6 +1834,26 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 				if (!paymentApply.isSuccess()) {
 					throw new RuntimeException(paymentApply.getMsg());
 				}
+
+				//将仓储费添加到费用明细中
+				OrderFees orderFees = new OrderFees();
+				orderFees.setPid(order.getId());
+				orderFees.setItemId(fees.getData().getId());
+				orderFees.setCorpId(order.getPurchaserId());
+				orderFees.setQuantity(new BigDecimal("1"));
+				orderFees.setPrice(amount);
+				orderFees.setAmount(amount);
+				orderFees.setCurrency("CNY");
+				orderFees.setExchangeRate(new BigDecimal("1"));
+				orderFees.setUnit(ObjectUtils.isNull(agreementItemsList) ? "" : agreementItemsList.get(0).getFeeUnitId().toString());
+				orderFees.setFeesType(1);
+				orderFees.setRemarks(text.toString());
+				orderFees.setCreateTime(new Date());
+				orderFees.setCreateUser(AuthUtil.getUserId());
+				orderFees.setCreateUserName(AuthUtil.getUserName());
+				orderFees.setTenantId(AuthUtil.getTenantId());
+				orderFeesService.save(orderFees);
+
 				//给角色为财务的人发送消息
 				R<String> clientDeptIds = sysClient.getRoleIds(SecureUtil.getTenantId(), "财务");
 				if (clientDeptIds.isSuccess() && StringUtils.isNotBlank(clientDeptIds.getData())) {