Sfoglia il codice sorgente

2022年9月22日17:47:09

纪新园 3 anni fa
parent
commit
64b705a62b
19 ha cambiato i file con 273 aggiunte e 69 eliminazioni
  1. 6 0
      blade-service-api/blade-check-api/src/main/java/org/springblade/check/feign/ICheckClient.java
  2. 3 0
      blade-service-api/trade-finance-api/src/main/java/org/springblade/finance/feign/IFinanceClient.java
  3. 6 0
      blade-service-api/trade-finance-api/src/main/java/org/springblade/finance/vojo/Items.java
  4. 11 3
      blade-service/blade-check/src/main/java/org/springblade/check/controller/AuditProecessController.java
  5. 2 0
      blade-service/blade-check/src/main/java/org/springblade/check/mapper/AuditProecessMapper.java
  6. 3 0
      blade-service/blade-check/src/main/java/org/springblade/check/mapper/AuditProecessMapper.xml
  7. 2 0
      blade-service/blade-check/src/main/java/org/springblade/check/service/IAuditProecessService.java
  8. 5 0
      blade-service/blade-check/src/main/java/org/springblade/check/service/impl/AuditProecessServiceImpl.java
  9. 3 1
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/feign/OrderDescClient.java
  10. 10 0
      blade-service/trade-finance/src/main/java/org/springblade/finance/controller/AccController.java
  11. 3 1
      blade-service/trade-finance/src/main/java/org/springblade/finance/mapper/AccMapper.java
  12. 3 0
      blade-service/trade-finance/src/main/java/org/springblade/finance/mapper/AccMapper.xml
  13. 2 0
      blade-service/trade-finance/src/main/java/org/springblade/finance/service/IAccService.java
  14. 21 6
      blade-service/trade-finance/src/main/java/org/springblade/finance/service/impl/AccServiceImpl.java
  15. 71 31
      blade-service/trade-finance/src/main/java/org/springblade/finance/service/impl/SettlementServiceImpl.java
  16. 18 4
      blade-service/trade-purchase/src/main/java/com/trade/purchase/order/controller/WoodHarvestingCloudController.java
  17. 3 2
      blade-service/trade-purchase/src/main/java/com/trade/purchase/order/mapper/OrderMapper.xml
  18. 2 0
      blade-service/trade-purchase/src/main/java/com/trade/purchase/order/service/impl/OrderItemsServiceImpl.java
  19. 99 21
      blade-service/trade-purchase/src/main/java/com/trade/purchase/order/service/impl/OrderServiceImpl.java

+ 6 - 0
blade-service-api/blade-check-api/src/main/java/org/springblade/check/feign/ICheckClient.java

@@ -45,6 +45,12 @@ public interface ICheckClient {
 	 */
 	@PostMapping("/auditproecess/update")
 	R update(@RequestBody AuditProecessDTO auditProecess);
+
+	/**
+	 * 删除审批流数据
+	 */
+	@PostMapping("/auditproecess/deteleByBillId")
+	R deteleByBillId(@RequestParam("billId") Long billId);
 	/**
 	 * 通过唯一的actId查询审批等级
 	 */

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

@@ -90,4 +90,7 @@ public interface IFinanceClient {
 	@PostMapping("/acc/updateByOrderId")
 	R updateByOrderId(@RequestParam("orderId") Long orderId);
 
+	@PostMapping("/acc/deleteBySrcFeesId")
+	R deleteBySrcFeesId(@RequestParam("feesId") Long feesId);
+
 }

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

@@ -229,4 +229,10 @@ public class Items implements Serializable {
 	 */
 	@TableField(exist = false)
 	private int statusJT;
+
+	/**
+	 * 主表费用类型
+	 */
+	@TableField(exist = false)
+	private String srcFeesType;
 }

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

@@ -115,19 +115,19 @@ public class AuditProecessController extends BladeController {
 								auditOrderVO.setCorpsName(corpsDesc.getData().getCname());
 							}
 						}
-					}else if ("RK".equals(e.getCheckType()) || "CK".equals(e.getCheckType()) || "PD".equals(e.getCheckType())){
+					} else if ("RK".equals(e.getCheckType()) || "CK".equals(e.getCheckType()) || "PD".equals(e.getCheckType())) {
 						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.getPurchaserId() != null) {
 									auditOrderVO.setCorpsName(corpsDescClient.getCorpMessage(order.getPurchaserId()).getData().getCname());
 								}
 							}
 						}
-					}else {
+						auditOrderVO.setAmountReceivable(e.getReceivableAmount());
+					} else {
 						if (e.getBillId() != null) {
 							Order order = orderDescClient.getById(e.getBillId());
 							if (order != null) {
@@ -414,6 +414,14 @@ public class AuditProecessController extends BladeController {
 		return R.success("删除成功");
 	}
 
+	@PostMapping("/deteleByBillId")
+	@ApiOperationSupport(order = 10)
+	@ApiOperation(value = "修改", notes = "传入billId")
+	public R deteleByBillId(@RequestParam("billId") Long billId) {
+		auditProecessService.deteleByBillId(billId);
+		return R.success("删除成功");
+	}
+
 	@GetMapping("/getByOrderFiles")
 	@ApiOperationSupport(order = 11)
 	@ApiOperation(value = "查询", notes = "传入srcBillId")

+ 2 - 0
blade-service/blade-check/src/main/java/org/springblade/check/mapper/AuditProecessMapper.java

@@ -16,6 +16,7 @@
  */
 package org.springblade.check.mapper;
 
+import org.apache.ibatis.annotations.Param;
 import org.springblade.check.entity.AuditProecess;
 import org.springblade.check.vo.AuditProecessVO;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@@ -40,4 +41,5 @@ public interface AuditProecessMapper extends BaseMapper<AuditProecess> {
 	 */
 	List<AuditProecessVO> selectAuditProecessPage(IPage page, AuditProecessVO auditProecess);
 
+    void deteleByBillId(@Param("billId") Long billId);
 }

+ 3 - 0
blade-service/blade-check/src/main/java/org/springblade/check/mapper/AuditProecessMapper.xml

@@ -23,6 +23,9 @@
         <result column="fid_status" property="fidStatus"/>
         <result column="times" property="times"/>
     </resultMap>
+    <delete id="deteleByBillId">
+        delete from audit_proecess where bill_id = #{billId}
+    </delete>
 
 
     <select id="selectAuditProecessPage" resultMap="auditProecessResultMap">

+ 2 - 0
blade-service/blade-check/src/main/java/org/springblade/check/service/IAuditProecessService.java

@@ -90,4 +90,6 @@ public interface IAuditProecessService extends IService<AuditProecess> {
 	 * @param auditProecess
 	 */
 	void financingyCheck(AuditProecess auditProecess);
+
+    void deteleByBillId(Long billId);
 }

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

@@ -2476,6 +2476,11 @@ public class AuditProecessServiceImpl extends ServiceImpl<AuditProecessMapper, A
 		baseMapper.updateById(auditProecess);
 	}
 
+	@Override
+	public void deteleByBillId(Long billId) {
+		baseMapper.deteleByBillId(billId);
+	}
+
 	private void sendMsgToGroup(Message message, String group) {
 		List<String> userList = Arrays.asList(group.split(","));
 		userList.forEach(user -> {

+ 3 - 1
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/feign/OrderDescClient.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.trade.purchase.order.enums.OrderTypeEnum;
 import lombok.AllArgsConstructor;
@@ -66,7 +67,8 @@ public class OrderDescClient implements IOrderDescClient {
 		LambdaQueryWrapper<Order> orderLambdaQueryWrapper = new LambdaQueryWrapper<>();
 		orderLambdaQueryWrapper.eq(Order::getTenantId, AuthUtil.getTenantId());
 		orderLambdaQueryWrapper.eq(Order::getIsDeleted, 0);
-		orderLambdaQueryWrapper.eq(Order::getOrderNo, order.getOrderNo());
+		orderLambdaQueryWrapper.eq(ObjectUtils.isNotNull(order.getOrderNo()),Order::getOrderNo, order.getOrderNo());
+		orderLambdaQueryWrapper.eq(ObjectUtils.isNotNull(order.getSysNo()),Order::getSysNo, order.getSysNo());
 		return iOrderService.getOne(orderLambdaQueryWrapper, false);
 	}
 

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

@@ -327,4 +327,14 @@ public class AccController extends BladeController {
 		return R.data(list);
 	}
 
+	/**
+	 * 删除 财务账单
+	 */
+	@PostMapping("/deleteBySrcFeesId")
+	@ApiOperationSupport(order = 8)
+	@ApiOperation(value = "删除", notes = "传入ids")
+	public R deleteBySrcFeesId(@RequestParam("feesId") Long feesId) {
+		return accService.deleteBySrcFeesId(feesId);
+	}
+
 }

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

@@ -74,5 +74,7 @@ public interface AccMapper extends BaseMapper<Acc> {
 	 * @param orderId
 	 * @return
 	 */
-    R updateByOrderId(@Param("orderId")Long orderId);
+    int updateByOrderId(@Param("orderId")Long orderId);
+
+    int deleteBySrcFeesId(@Param("feesId") Long feesId);
 }

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

@@ -49,6 +49,9 @@
     <update id="updateByOrderId" parameterType="Long">
         UPDATE finance_acc set status = 0  WHERE Src_parent_id = #{orderId}
     </update>
+    <delete id="deleteBySrcFeesId">
+        delete from finance_acc where Src_fees_id = #{feesId}
+    </delete>
 
 
     <select id="selectAccPage" resultMap="accResultMap">

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

@@ -79,4 +79,6 @@ public interface IAccService extends IService<Acc> {
 	 * @return
 	 */
     List<Map<String, Object>> accountList(Acc acc);
+
+	R deleteBySrcFeesId(Long feesId);
 }

+ 21 - 6
blade-service/trade-finance/src/main/java/org/springblade/finance/service/impl/AccServiceImpl.java

@@ -16,8 +16,10 @@
  */
 package org.springblade.finance.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import io.seata.spring.annotation.GlobalTransactional;
 import lombok.AllArgsConstructor;
@@ -32,8 +34,6 @@ import org.springblade.finance.vo.CostMessage;
 import org.springblade.finance.vojo.Acc;
 import org.springblade.finance.vojo.Items;
 import org.springblade.finance.vojo.Settlement;
-import org.springblade.purchase.sales.entity.OrderFees;
-import org.springblade.purchase.sales.entity.OrderItems;
 import org.springblade.purchase.sales.feign.IOrderFeesClient;
 import org.springblade.purchase.sales.feign.IOrderItemsClient;
 import org.springframework.stereotype.Service;
@@ -133,8 +133,8 @@ public class AccServiceImpl extends ServiceImpl<AccMapper, Acc> implements IAccS
 	}
 
 	@Override
-	public IPage<CostMessage> salaryMessage(AccVO accVO,IPage<CostMessage> page) {
-		return page.setRecords(baseMapper.salaryMessage(accVO,page));
+	public IPage<CostMessage> salaryMessage(AccVO accVO, IPage<CostMessage> page) {
+		return page.setRecords(baseMapper.salaryMessage(accVO, page));
 	}
 
 	@Override
@@ -145,7 +145,7 @@ public class AccServiceImpl extends ServiceImpl<AccMapper, Acc> implements IAccS
 	@Override
 	public IPage<CostMessage> salaryProfit(AccVO accVO, IPage<CostMessage> page) {
 		List<CostMessage> costMessages = baseMapper.salaryProfit(accVO, page);
-		if (CollectionUtils.isNotEmpty(costMessages)){
+		if (CollectionUtils.isNotEmpty(costMessages)) {
 			costMessages = costMessages.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(CostMessage::getCorpId))), ArrayList::new));
 		}
 		return page.setRecords(costMessages);
@@ -154,7 +154,7 @@ public class AccServiceImpl extends ServiceImpl<AccMapper, Acc> implements IAccS
 	@Override
 	public List<CostMessage> salaryProfit(AccVO accVO) {
 		List<CostMessage> costMessages = baseMapper.salaryProfit(accVO);
-		if (CollectionUtils.isNotEmpty(costMessages)){
+		if (CollectionUtils.isNotEmpty(costMessages)) {
 			costMessages = costMessages.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(CostMessage::getCorpId))), ArrayList::new));
 		}
 		return costMessages;
@@ -162,6 +162,7 @@ public class AccServiceImpl extends ServiceImpl<AccMapper, Acc> implements IAccS
 
 	/**
 	 * 通过orderId修改账单状态
+	 *
 	 * @param orderId
 	 * @return
 	 */
@@ -172,6 +173,7 @@ public class AccServiceImpl extends ServiceImpl<AccMapper, Acc> implements IAccS
 
 	/**
 	 * 应收应付总账
+	 *
 	 * @param acc
 	 * @return
 	 */
@@ -182,4 +184,17 @@ public class AccServiceImpl extends ServiceImpl<AccMapper, Acc> implements IAccS
 		return mapList;
 	}
 
+
+	@Override
+	public R deleteBySrcFeesId(Long feesId) {
+		LambdaQueryWrapper<Items> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+		lambdaQueryWrapper.eq(Items::getTenantId, AuthUtil.getTenantId()).eq(Items::getIsDeleted, 0).eq(Items::getSrcFeesId, feesId);
+		Items items = itemsMapper.selectOne(lambdaQueryWrapper);
+		if (ObjectUtils.isNotNull(items)){
+			itemsMapper.deleteById(items.getId());
+			settlementMapper.deleteById(items.getPid());
+		}
+		return R.data(baseMapper.deleteBySrcFeesId(feesId));
+	}
+
 }

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

@@ -161,7 +161,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 		if ("待结算".equals(settlement.getFinanceStatus())) {
 			throw new SecurityException("此结算单未结算 或者 已经撤销,禁止重复操作");
 		}
-		if ("结算完成".equals(settlement.getFinanceStatus()) && "681169".equals(AuthUtil.getTenantId())){
+		if ("结算完成".equals(settlement.getFinanceStatus()) && "681169".equals(AuthUtil.getTenantId())) {
 			throw new SecurityException("此结算单已生成凭证,禁止撤销");
 		}
 
@@ -221,7 +221,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 		Order order = new Order();
 		order.setOrderNo(settlement.getSrcOrderno());
 		Order order1 = orderDescClient.getByOrder(order);
-		if (ObjectUtils.isNotNull(order1)){
+		if (ObjectUtils.isNotNull(order1)) {
 			orderFeesClient.updateOrder(order1.getId());
 		}
 		return model;
@@ -256,7 +256,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 			itemsLambdaQueryWrapper.eq(Items::getPid, settlement.getId()).eq(Items::getIsDeleted, 0);
 			itemsLambdaQueryWrapper.last("limit 1");
 			List<Items> list = itemsMapper.selectList(itemsLambdaQueryWrapper);
-			if (CollectionUtils.isNotEmpty(list)){
+			if (CollectionUtils.isNotEmpty(list)) {
 				//获取来源订单号
 				List<String> stringList = list.stream().filter(e -> StringUtils.isNotBlank(e.getSrcOrderno())).map(Items::getSrcOrderno).collect(Collectors.toList());
 				for (String s : stringList) {
@@ -269,7 +269,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 					} else {
 						String accountName = settlement.getBelongCompany();
 						if (!"青岛通用沃德轮胎有限公司".equals(accountName)) {
-							accountName="青岛达沃特轮胎有限公司";
+							accountName = "青岛达沃特轮胎有限公司";
 						}
 						LambdaQueryWrapper<JdTenant> jdTenantLambdaQueryWrapper = new LambdaQueryWrapper<>();
 						jdTenantLambdaQueryWrapper
@@ -277,7 +277,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 							.eq(JdTenant::getTenantId, AuthUtil.getTenantId())
 							.eq(JdTenant::getAccountName, accountName);
 						JdTenant jdTenant = jdTenantMapper.selectOne(jdTenantLambdaQueryWrapper);
-						if(jdTenant != null) {
+						if (jdTenant != null) {
 							//销售
 							if ("XS".equals(order.getBillType())) {
 								//销售收款-保存凭证
@@ -492,6 +492,29 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 			throw new SecurityException("撤销账单失败,已结算金额为负数");
 		}
 		accMapper.updateById(acc);
+
+		if (acc.getTradeType().equals("CMY")) {
+			Long srcFeesId = acc.getSrcFeesId();
+			if (srcFeesId == null) {
+				throw new SecurityException("操作失败,未获取到原业务信息");
+			}
+
+			OrderFees orderFees = orderFeesClient.getById(srcFeesId);
+			if (orderFees == null) {
+				throw new SecurityException("修改原单据失败");
+			}
+			//回退原业务表数据
+			if (orderFees.getSettlmentAmount() == null) {
+				throw new SecurityException("撤销账单失败,原业务表已收金额为空");
+			}
+			BigDecimal decimal = orderFees.getSettlmentAmount().subtract(items.getThisAmount());
+			if (decimal.compareTo(BigDecimal.ZERO) < 0) {
+				throw new SecurityException("撤销账单失败,剩余已收金额不够本次扣款");
+			}
+			orderFees.setSettlmentAmount(decimal);
+			orderFeesClient.submit(orderFees);
+		}
+
 		//修改原业务表数据
 		if (type == 1) {
 			Long srcParentId = acc.getSrcParentId();
@@ -605,8 +628,20 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 			throw new SecurityException("结算金额超过账单明细总金额");
 		}*/
 
-		if (acc.getTradeType().equals("CMY")){
+		if (acc.getTradeType().equals("CMY")) {
+			Long srcFeesId = acc.getSrcFeesId();
+			if (srcFeesId == null) {
+				throw new SecurityException("操作失败,未获取到原业务信息");
+			}
 
+			OrderFees orderFees = orderFeesClient.getById(srcFeesId);
+			if (orderFees == null) {
+				throw new SecurityException("修改原单据失败");
+			}
+			acc.setSettlementAmount(acc.getSettlementAmount() != null ? acc.getSettlementAmount().add(items.getThisAmount()) : new BigDecimal("0").add(items.getThisAmount()));
+			orderFees.setSettlmentAmount(orderFees.getSettlmentAmount() != null ? orderFees.getSettlmentAmount().add(items.getThisAmount()) : new BigDecimal("0").add(items.getThisAmount()));
+			accMapper.updateById(acc);
+			orderFeesClient.submit(orderFees);
 		}
 
 		//修改原业务表和账单明细的数据
@@ -753,7 +788,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 		baseMapper.insert(settlement);
 
 
-		if ((StringUtils.isBlank(tradeType)) || (StringUtils.isNotBlank(tradeType)) && !tradeType.equals(OrderTypeEnum.DOMESTIC.getType())){
+		if ((StringUtils.isBlank(tradeType)) || (StringUtils.isNotBlank(tradeType)) && !tradeType.equals(OrderTypeEnum.DOMESTIC.getType())) {
 			itemsList.forEach(e -> {
 				// 修改原费用明细状态
 				if (e.getSrcType() == 2) {
@@ -802,7 +837,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 					e.setCorpName(corpMessage.getData().getCname());
 				}
 			});
-		}else {
+		} else {
 			for (Items e : itemsList) {// 修改原费用明细状态
 				if (e.getSrcType() == 2) {
 					Order order = orderDescClient.getById(e.getSrcParentId());
@@ -937,7 +972,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 
 	@Override
 	@Transactional
-	public void paymentApply(List<Items> itemsList, String billType, String belongCompany,String tradeType) {
+	public void paymentApply(List<Items> itemsList, String billType, String belongCompany, String tradeType) {
 		itemsList.forEach(e -> {
 			//产生凭证: 销售订单-生成账单
 		/*	if(e.getSrcType()==1 && e.getItemType().equals("销售"))
@@ -953,8 +988,9 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 					throw new SecurityException(exception.getMessage());
 				}
 			}*/
-			if (!tradeType.equals(OrderTypeEnum.WOOD_HARVESTING_CLOUD.getType())){
-				if ((StringUtils.isBlank(tradeType)) || (StringUtils.isNotBlank(tradeType)) && !tradeType.equals(OrderTypeEnum.DOMESTIC.getType())){
+			Acc acc = new Acc();
+			if (!tradeType.equals(OrderTypeEnum.WOOD_HARVESTING_CLOUD.getType())) {
+				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) {
@@ -978,9 +1014,10 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 						}
 					}
 				}
+				acc.setBillType(billType);
+			} else {
+				acc.setBillType(e.getSrcFeesType());
 			}
-
-			Acc acc = new Acc();
 			BeanUtils.copyProperties(e, acc);
 			acc.setId(null);
 			acc.setDc("d");
@@ -989,12 +1026,11 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 			acc.setSrcRefno(e.getSrcOrderno());
 			acc.setSrcParentId(e.getSrcParentId());
 			acc.setSrcBillNo(e.getBillNo());
-			acc.setBillType(billType);
 			acc.setCreateTime(new Date());
 			acc.setTradeType(e.getTradeType());
-			if (ObjectUtils.isNotNull(e.getStatusJT())){
+			if (ObjectUtils.isNotNull(e.getStatusJT())) {
 				acc.setStatus(e.getStatusJT());
-			}else{
+			} else {
 				acc.setStatus(0);
 			}
 			acc.setRemarks(e.getRemarks());
@@ -1025,6 +1061,9 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 		if (!"681169".equals(SecureUtil.getTenantId())) {
 			model.setAmount(total);
 		}
+		if ("673511".equals(SecureUtil.getTenantId()) && itemsList.size() > 0) {
+			model.setBillNo(itemsList.get(0).getBillNo());
+		}
 		//如果id=null, 无论主表还是从表, 必然都是新增
 		Long id = settlementDTO.getId();
 		if (id == null) {
@@ -1247,9 +1286,9 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 				//增加明细开票金额
 				acc.setInvoiceAmount(acc.getInvoiceAmount() != null ? acc.getInvoiceAmount().add(e.getThisAmount()) : new BigDecimal("0").add(e.getThisAmount()));
 				accMapper.updateById(acc);
-				if (ObjectUtils.isNotNull(acc.getSrcFeesId())){
-					orderFeesClient.updateInvoiceAmount(acc.getSrcFeesId(),acc.getInvoiceAmount());
-				}else{
+				if (ObjectUtils.isNotNull(acc.getSrcFeesId())) {
+					orderFeesClient.updateInvoiceAmount(acc.getSrcFeesId(), acc.getInvoiceAmount());
+				} else {
 					throw new SecurityException("更新费用明细失败");
 				}
 			});
@@ -1499,7 +1538,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 
 
 	//金蝶保存凭证测试-采购付款生成凭证
-	public JdyTool.voucher toPurchaseJinDie(Date date,String subjectNumber, String account, String createUser, String corpName, String corpNumber, String accountId, String groupName, JdTenant jdTenant) {
+	public JdyTool.voucher toPurchaseJinDie(Date date, String subjectNumber, String account, String createUser, String corpName, String corpNumber, String accountId, String groupName, JdTenant jdTenant) {
 		JDYitems item = new JDYitems();
 		item.setDate(new SimpleDateFormat("yyyy-MM-dd").format(date));
 		List<JDYentries> entriesList = new ArrayList<>();
@@ -1519,9 +1558,9 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 		if (dModule == null) {
 			throw new SecurityException("获取采购订单科目号失败");
 		}
-		if (null != subjectNumber && !subjectNumber.equals("")){
+		if (null != subjectNumber && !subjectNumber.equals("")) {
 			dModule.setProjectCode(subjectNumber);
-		}else {
+		} else {
 			throw new SecurityException("科目编码为空");
 		}
 		d.setExplanation(dModule.getAbstractStatic() + "-" + corpName);
@@ -1610,7 +1649,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 
 
 	//金蝶保存凭证测试-销售收款生成凭证
-	public JdyTool.voucher toSaleCollectionJinDie(Date date,String subjectNumber, String account, String corpName,String corpNumber, String accountId, String groupName, JdTenant jdTenant) {
+	public JdyTool.voucher toSaleCollectionJinDie(Date date, String subjectNumber, String account, String corpName, String corpNumber, String accountId, String groupName, JdTenant jdTenant) {
 		JDYitems item = new JDYitems();
 		item.setDate(new SimpleDateFormat("yyyy-MM-dd").format(date));
 		List<JDYentries> entriesList = new ArrayList<>();
@@ -1630,9 +1669,9 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 		if (dModule == null) {
 			throw new SecurityException("获取销售订单科目号失败");
 		}
-		if (null != subjectNumber && !subjectNumber.equals("")){
+		if (null != subjectNumber && !subjectNumber.equals("")) {
 			dModule.setProjectCode(subjectNumber);
-		}else {
+		} else {
 			throw new SecurityException("科目编码为空");
 		}
 		d.setExplanation(dModule.getAbstractStatic() + "-" + corpName);
@@ -1802,7 +1841,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 	}
 
 	//采购付款生成凭证
-	public void testPurchaseSaveVoucher(Settlement settlement, String accountName, String createUser, String corpName,  String corpNumber, String account) throws Exception {
+	public void testPurchaseSaveVoucher(Settlement settlement, String accountName, String createUser, String corpName, String corpNumber, String account) throws Exception {
 		// TODO 临时屏蔽
 //		if (!"test".equals(AuthUtil.getTenantId())) {
 //			return;
@@ -1855,7 +1894,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 			return;
 		}
 		//2.采购收款-保存凭证
-		JdyTool.voucher voucher = toPurchaseJinDie(settlement.getSettlementDate(),settlement.getSubjectNumber(), account, createUser, corpName, corpNumber, jdTenant.getAccountId(), group.getGroupName(), jdTenant);
+		JdyTool.voucher voucher = toPurchaseJinDie(settlement.getSettlementDate(), settlement.getSubjectNumber(), account, createUser, corpName, corpNumber, jdTenant.getAccountId(), group.getGroupName(), jdTenant);
 		if (voucher == null) {
 			throw new SecurityException("获取凭证信息失败");
 		}
@@ -1867,7 +1906,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 
 
 	//销售收款生成账单
-	public void testSaleCollectionSaveVoucher(Settlement settlement, String accountName, String corpName,String corpNumber, String account) throws Exception {
+	public void testSaleCollectionSaveVoucher(Settlement settlement, String accountName, String corpName, String corpNumber, String account) throws Exception {
 		// TODO 临时屏蔽
 //		if (!"test".equals(AuthUtil.getTenantId())) {
 //			return;
@@ -1919,7 +1958,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 			return;
 		}
 		//2.销售收款-保存凭证
-		JdyTool.voucher voucher = toSaleCollectionJinDie(settlement.getSettlementDate(),settlement.getSubjectNumber(), account, corpName, corpNumber, jdTenant.getAccountId(), group.getGroupName(), jdTenant);
+		JdyTool.voucher voucher = toSaleCollectionJinDie(settlement.getSettlementDate(), settlement.getSubjectNumber(), account, corpName, corpNumber, jdTenant.getAccountId(), group.getGroupName(), jdTenant);
 		if (voucher == null) {
 			throw new SecurityException("获取凭证信息失败");
 		}
@@ -2036,6 +2075,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 
 	/**
 	 * 首页获取今日收款或付款
+	 *
 	 * @param settlement
 	 * @return
 	 */
@@ -2043,9 +2083,9 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 	public CollectionPayment selMoneyToday(Settlement settlement) {
 		CollectionPayment collectionPayment = new CollectionPayment();
 		// 获取已收或已付金额
-		collectionPayment.setReceived(baseMapper.selMoneyToday(AuthUtil.getTenantId(),settlement.getCreateStartDate(),settlement.getCreateEndDate(),"结算完成",settlement.getBillType()));
+		collectionPayment.setReceived(baseMapper.selMoneyToday(AuthUtil.getTenantId(), settlement.getCreateStartDate(), settlement.getCreateEndDate(), "结算完成", settlement.getBillType()));
 		// 获取待收或代付金额
-		collectionPayment.setToBeReceived(baseMapper.selMoneyToday(AuthUtil.getTenantId(),settlement.getCreateStartDate(),settlement.getCreateEndDate(),"待结算",settlement.getBillType()));
+		collectionPayment.setToBeReceived(baseMapper.selMoneyToday(AuthUtil.getTenantId(), settlement.getCreateStartDate(), settlement.getCreateEndDate(), "待结算", settlement.getBillType()));
 		return collectionPayment;
 	}
 

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

@@ -43,6 +43,7 @@ import org.springframework.web.multipart.MultipartFile;
 import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
 import java.math.BigDecimal;
+import java.math.MathContext;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
@@ -296,13 +297,26 @@ public class WoodHarvestingCloudController {
 	@PostMapping("/financingExcess")
 	public R financingExcess(@RequestBody Order order) {
 		//获取该客户是否有融资
-		LambdaQueryWrapper<Financing> financingLambdaQueryWrapper = new LambdaQueryWrapper<>();
-		financingLambdaQueryWrapper
+		//借款
+		LambdaQueryWrapper<Financing> borrowLambdaQueryWrapper = new LambdaQueryWrapper<>();
+		borrowLambdaQueryWrapper
 			.eq(Financing::getIsDeleted, 0)
 			.eq(Financing::getTenantId, AuthUtil.getTenantId())
+			.eq(Financing::getFinancingType, "1")
 			.eq(Financing::getCorpId, order.getId());
-		List<Financing> financingList = financingService.list(financingLambdaQueryWrapper);
-		BigDecimal financing = financingList.stream().map(Financing::getFinancingAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+		List<Financing> borrowList = financingService.list(borrowLambdaQueryWrapper);
+		BigDecimal borrow = borrowList.stream().map(Financing::getFinancingAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+		//还款
+		LambdaQueryWrapper<Financing> stillLambdaQueryWrapper = new LambdaQueryWrapper<>();
+		stillLambdaQueryWrapper
+			.eq(Financing::getIsDeleted, 0)
+			.eq(Financing::getTenantId, AuthUtil.getTenantId())
+			.eq(Financing::getFinancingType, "2")
+			.eq(Financing::getCorpId, order.getId());
+		List<Financing> stillList = financingService.list(stillLambdaQueryWrapper);
+		BigDecimal still = stillList.stream().map(Financing::getFinancingAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+
+		BigDecimal financing = still.subtract(borrow, MathContext.UNLIMITED);
 
 		//获取该客户还在库的货物金额
 		LambdaQueryWrapper<Order> orderLambdaQueryWrapper = new LambdaQueryWrapper<>();

+ 3 - 2
blade-service/trade-purchase/src/main/java/com/trade/purchase/order/mapper/OrderMapper.xml

@@ -388,7 +388,6 @@
         and bo.status = 3
         and bo.bill_type = 'RK'
         and bo.trade_type = 'CMY'
-        and boi.is_Issue = '1' or boi.is_Issue = '2'
         <if test="Order.sysNo!=null and Order.sysNo != ''">
             and bo.sys_no=#{Order.sysNo}
         </if>
@@ -443,6 +442,7 @@
          <if test="Order.unit!=null and Order.unit != ''">
             and boi.unit = #{Order.unit}
         </if>
+        and (boi.is_Issue = '1' or boi.is_Issue = '2')
         order by bo.busines_date
     </select>
 
@@ -472,7 +472,8 @@
                     and bo.bill_type = 'RK'
                     and bo.trade_type = 'CMY'
                     and bo.confirm_status = 1
-                    AND bo.special_check_status = 1
+                    AND bo.special_check_status = 0
+                    AND boi.is_Issue = '1'
                     <if test="tenantId != null and tenantId != ''">
                         and bg.tenant_id = #{tenantId}
                         and bo.tenant_id = #{tenantId}

+ 2 - 0
blade-service/trade-purchase/src/main/java/com/trade/purchase/order/service/impl/OrderItemsServiceImpl.java

@@ -13,6 +13,7 @@ import com.trade.purchase.order.mapper.OrderMapper;
 import com.trade.purchase.order.service.IOrderItemsService;
 import com.trade.purchase.order.service.IOrderService;
 import com.trade.purchase.order.vo.OrderItemsVO;
+import lombok.AllArgsConstructor;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.secure.utils.SecureUtil;
 import org.springblade.core.tool.api.R;
@@ -28,6 +29,7 @@ import java.util.List;
  * @since 2021-09-26
  */
 @Service
+@AllArgsConstructor
 public class OrderItemsServiceImpl extends ServiceImpl<OrderItemsMapper, OrderItems> implements IOrderItemsService {
 
 	private OrderMapper orderMapper;

+ 99 - 21
blade-service/trade-purchase/src/main/java/com/trade/purchase/order/service/impl/OrderServiceImpl.java

@@ -57,7 +57,6 @@ import org.springblade.mocha.feign.IPriceBankClient;
 import org.springblade.stock.entity.StockGoods;
 import org.springblade.stock.feign.IStockGoodsClient;
 import org.springblade.stock.vo.StockGoodsVO;
-import org.springblade.system.entity.DictBiz;
 import org.springblade.system.feign.IDictBizClient;
 import org.springblade.system.feign.ISysClient;
 import org.springblade.system.user.entity.User;
@@ -1353,7 +1352,6 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 			} else {
 				auditProecessDTO.setProcessType("盘点审批");
 			}
-
 			LambdaQueryWrapper<OrderItems> orderItemsLambdaQueryWrapper = new LambdaQueryWrapper<>();
 			orderItemsLambdaQueryWrapper
 				.eq(OrderItems::getGoodType, 0)
@@ -1361,6 +1359,17 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 				.eq(OrderItems::getIsDeleted, 0);
 			List<OrderItems> orderItems = orderItemsMapper.selectList(orderItemsLambdaQueryWrapper);
 			if (CollectionUtils.isNotEmpty(orderItems)) {
+				//仓库
+				StorageType storageType = iStorageClient.getStorageType(salesOrder.getStorageId());
+				if (ObjectUtils.isNotNull(storageType)) {
+					salesOrder.setStorageName(storageType.getCname());
+				}
+				//货权人
+				R<CorpsDesc> corpsDesc = corpsDescClient.getCorpMessage(salesOrder.getPurchaserId());
+				if (corpsDesc.isSuccess()) {
+					salesOrder.setPurchaser(corpsDesc.getData().getCname());
+				}
+
 				order.setOrderItemsList(orderItems);
 				auditProecessDTO.setOrderQuantity(orderItems.stream().map(OrderItems::getOrderQuantity).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
 				auditProecessDTO.setAmount(orderItems.stream().map(OrderItems::getAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
@@ -1388,7 +1397,22 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 						oneCode = oneCode.replace("/home/minio", "http://121.37.83.47");
 						System.out.println(oneCode);
 						item.setOneCode(oneCode);
-						String qRCode = QRCodeTest.generateQRCode(qRCodeFile, JSONObject.toJSONString(item));
+						R<GoodsDescVO> goodsMessage = goodsDescClient.selectGoodsMessage(item.getItemId());
+						Map<String, Object> map = new HashMap<>();
+						map.put("purchaser", salesOrder.getPurchaser());
+						map.put("billNo", item.getBillNo());
+						map.put("stockTime", salesOrder.getStockTime());
+						map.put("storageName", salesOrder.getStorageName());
+						if (goodsMessage.isSuccess() && goodsMessage.getData() != null) {
+							map.put("goodsName", goodsMessage.getData().getCname());
+						}
+						map.put("balanceNumber", item.getBalanceNumber());
+						map.put("length", item.getLength());
+						map.put("thickness", item.getThickness());
+						map.put("remarks", item.getRemarks());
+						map.put("itemId", item.getId());
+						map.put("orderId", item.getPid());
+						String qRCode = QRCodeTest.generateQRCode(qRCodeFile, JSONObject.toJSONString(map));
 						qRCode = qRCode.replace("/home/minio", "http://121.37.83.47");
 						System.out.println(qRCode);
 						item.setQrCode(qRCode);
@@ -1402,19 +1426,25 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 				auditProecessDTO.setOrderQuantity(BigDecimal.ZERO);
 				auditProecessDTO.setAmount(BigDecimal.ZERO);
 			}
-
-			//获取订单收款信息
-			LambdaQueryWrapper<OrderFees> orderFeesLambdaQueryWrapper = new LambdaQueryWrapper<>();
-			orderFeesLambdaQueryWrapper.eq(OrderFees::getIsDeleted, 0);
-			orderFeesLambdaQueryWrapper.eq(OrderFees::getPid, order.getId());
-			//应付
-			orderFeesLambdaQueryWrapper.eq(OrderFees::getFeesType, 2);
-			List<OrderFees> receivableOrderFeesList = orderFeesService.list(orderFeesLambdaQueryWrapper);
-			auditProecessDTO.setReceivableAmount(receivableOrderFeesList.stream().map(OrderFees::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add));
-			//应收
-			orderFeesLambdaQueryWrapper.eq(OrderFees::getFeesType, 1);
-			List<OrderFees> payOrderFeesList = orderFeesService.list(orderFeesLambdaQueryWrapper);
-			auditProecessDTO.setPayAmount(payOrderFeesList.stream().map(OrderFees::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add));
+			if (OrderTypeEnum.WAREHOUSING.getType().equals(order.getCheckType()) || OrderTypeEnum.OUT_WAREHOUSING.getType().equals(order.getCheckType())) {
+				//获取订单收款信息
+				//应付
+				LambdaQueryWrapper<OrderFees> receivableLambdaQueryWrapper = new LambdaQueryWrapper<>();
+				receivableLambdaQueryWrapper.eq(OrderFees::getIsDeleted, 0);
+				receivableLambdaQueryWrapper.eq(OrderFees::getTenantId, AuthUtil.getTenantId());
+				receivableLambdaQueryWrapper.eq(OrderFees::getPid, order.getId());
+				receivableLambdaQueryWrapper.eq(OrderFees::getFeesType, 2);
+				List<OrderFees> receivableOrderFeesList = orderFeesService.list(receivableLambdaQueryWrapper);
+				auditProecessDTO.setReceivableAmount(receivableOrderFeesList.stream().map(OrderFees::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add));
+				//应收
+				LambdaQueryWrapper<OrderFees> payLambdaQueryWrapper = new LambdaQueryWrapper<>();
+				payLambdaQueryWrapper.eq(OrderFees::getIsDeleted, 0);
+				payLambdaQueryWrapper.eq(OrderFees::getTenantId, AuthUtil.getTenantId());
+				payLambdaQueryWrapper.eq(OrderFees::getPid, order.getId());
+				payLambdaQueryWrapper.eq(OrderFees::getFeesType, 1);
+				List<OrderFees> payOrderFeesList = orderFeesService.list(payLambdaQueryWrapper);
+				auditProecessDTO.setPayAmount(payOrderFeesList.stream().map(OrderFees::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add));
+			}
 
 			auditProecessDTO.setOrderQuantity(salesOrder.getStorageQuantity());
 			auditProecessDTO.setAmount(salesOrder.getStorageAmount());
@@ -1606,6 +1636,23 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		if (order.getStatus() == 0) {
 			throw new SecurityException("订单已驳回或未提交审批,请勿重复操作");
 		}
+		//删除账单单据
+		LambdaQueryWrapper<OrderFees> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+		lambdaQueryWrapper.eq(OrderFees::getTenantId, AuthUtil.getTenantId())
+			.eq(OrderFees::getIsDeleted, 0)
+			.eq(OrderFees::getPid, order.getId())
+			.eq(OrderFees::getIsCheck, 1)
+			.ne(OrderFees::getSettlmentAmount, 0)
+			.eq(OrderFees::getSubmitPay, 1);
+		List<OrderFees> orderFeesList = orderFeesService.list(lambdaQueryWrapper);
+		for (OrderFees orderFees : orderFeesList) {
+			orderFees.setIsCheck(0);
+			orderFees.setSubmitPay(0);
+			orderFees.setSettlmentAmount(new BigDecimal("0"));
+			financeClient.deleteBySrcFeesId(orderFees.getId());
+			orderFeesService.updateById(orderFees);
+		}
+
 		order.setStatus(0);
 		order.setOrderStatus("录入");
 		baseMapper.updateById(order);
@@ -1713,6 +1760,26 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 	public OrderSubmitDto revokeWarehousing(OrderSubmitDto submitDto) {
 		Order order = orderMapper.selectById(submitDto.getId());
 		if (ObjectUtils.isNotNull(order)) {
+
+			LambdaQueryWrapper<OrderFees> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+			lambdaQueryWrapper.eq(OrderFees::getTenantId, AuthUtil.getTenantId())
+				.eq(OrderFees::getIsDeleted, 0)
+				.eq(OrderFees::getPid, order.getId())
+				.eq(OrderFees::getIsCheck, 1)
+				.eq(OrderFees::getSubmitPay, 1);
+			List<OrderFees> orderFeesList = orderFeesService.list(lambdaQueryWrapper);
+			for (OrderFees orderFees : orderFeesList) {
+				if (orderFees.getSettlmentAmount().compareTo(new BigDecimal(0)) > 0) {
+					throw new SecurityException("账务已结算,撤回失败");
+				}
+				orderFees.setIsCheck(0);
+				orderFees.setSubmitPay(0);
+				orderFees.setSettlmentAmount(new BigDecimal("0"));
+				orderFeesService.updateById(orderFees);
+				financeClient.deleteBySrcFeesId(orderFees.getId());
+			}
+
+
 			List<OrderItemsVO> orderItemsVOList = submitDto.getItemsVOList();
 
 			//入库撤销
@@ -1798,6 +1865,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 			} else {
 				throw new SecurityException("撤销失败,单据类型不存在");
 			}
+			//删除审批记录
+			iCheckClient.deteleByBillId(order.getId());
 		} else {
 			throw new SecurityException("撤销失败,未找到单据信息");
 		}
@@ -1858,11 +1927,13 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 			LambdaQueryWrapper<OrderFees> orderFeesLambdaQueryWrapper = new LambdaQueryWrapper<>();
 			orderFeesLambdaQueryWrapper.eq(OrderFees::getIsDeleted, 0);
 			orderFeesLambdaQueryWrapper.eq(OrderFees::getPid, order.getId());
-			if ("入库".equals(itemType)) {
+			orderFeesLambdaQueryWrapper.eq(OrderFees::getIsCheck, 0);
+			orderFeesLambdaQueryWrapper.eq(OrderFees::getSubmitPay, 0);
+			/*if ("入库".equals(itemType)) {
 				orderFeesLambdaQueryWrapper.eq(OrderFees::getFeesType, 2);
 			} else {
 				orderFeesLambdaQueryWrapper.eq(OrderFees::getFeesType, 1);
-			}
+			}*/
 			List<OrderFees> orderFeesList = orderFeesService.list(orderFeesLambdaQueryWrapper);
 			if (CollectionUtils.isNotEmpty(orderFeesList)) {
 				for (OrderFees orderFees : orderFeesList) {
@@ -1875,6 +1946,11 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 					if (quantity.compareTo(BigDecimal.ZERO) > 0) {
 						price = amount.divide(quantity, 5, RoundingMode.HALF_UP).setScale(2, RoundingMode.HALF_UP);
 					}
+					if (2 == orderFees.getFeesType()) {
+						items.setSrcFeesType("申请");
+					} else {
+						items.setSrcFeesType("收费");
+					}
 					items.setItemType(itemType);
 					items.setPrice(price);
 					//账单数据
@@ -1894,9 +1970,9 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 					items.setStatusJT(1);
 					items.setBillNo(order.getBillNo());
 					//获取费用id
-					R<FeesDesc> fees = feesDescClient.getFeesByName("货款");
-					if (fees.isSuccess() && fees.getData() != null) {
-						items.setCostType(fees.getData().getId().toString());
+					if (ObjectUtils.isNotNull(orderFees.getItemId())) {
+						items.setCostType(orderFees.getItemId().toString());
+						items.setSrcFeesId(orderFees.getId());
 					}
 					itemsList.add(items);
 					applyDTO.setItemsList(itemsList);
@@ -2034,6 +2110,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 			//账单数据
 			items.setPrice(amount);
 			items.setAmount(amount);
+			items.setSrcFeesType("收费");
 			items.setQuantity(new BigDecimal("1"));
 			items.setSrcOrderno(order.getOrgOrderNo());
 			items.setCorpId(order.getPurchaserId());
@@ -2052,6 +2129,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 			R<FeesDesc> fees = feesDescClient.getFeesByName("仓储费");
 			if (fees.isSuccess() && fees.getData() != null) {
 				items.setCostType(fees.getData().getId().toString());
+				items.setSrcFeesId(fees.getData().getId());
 			}
 			itemsList.add(items);
 			applyDTO.setItemsList(itemsList);