瀏覽代碼

Merge remote-tracking branch 'origin/dev' into dev

liyuan 8 月之前
父節點
當前提交
70404f4d8e

+ 24 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/trade/entity/Agent.java

@@ -544,6 +544,30 @@ public class Agent implements Serializable {
 	private String paymentMethod;
 
 	/**
+	 * 贸易代理费
+	 */
+	@ApiModelProperty(value = "贸易代理费")
+	private BigDecimal tradeAgencyAmount;
+
+	/**
+	 * 其他费用
+	 */
+	@ApiModelProperty(value = "其他费用")
+	private BigDecimal otherAmount;
+
+	/**
+	 * 增值税
+	 */
+	@ApiModelProperty(value = "增值税")
+	private BigDecimal valueAddedTax;
+
+	/**
+	 * 关税
+	 */
+	@ApiModelProperty(value = "关税")
+	private BigDecimal tariff;
+
+	/**
 	 * 收费
 	 */
 	@TableField(exist = false)

+ 5 - 0
blade-service/blade-los/src/main/java/org/springblade/los/basic/reports/service/impl/ReportsServiceImpl.java

@@ -720,6 +720,11 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 						.eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
 						.eq(FeeCenter::getIsDeleted, 0)
 						.in(FeeCenter::getId, feeCenterIdList));
+					for (FeeCenter item :feeCenterList){
+						if (!"CNY".equals(item.getCurCode())){
+							item.setAmount(item.getAmount().multiply(item.getExrate()).setScale(2,RoundingMode.HALF_UP));
+						}
+					}
 					List<Long> idList = feeCenterList.stream().filter(e -> "SI".equals(e.getBusinessType()))
 						.map(FeeCenter::getPid).distinct().collect(Collectors.toList());
 					List<Bills> billsList = billsService.list(new LambdaQueryWrapper<Bills>()

+ 54 - 1
blade-service/blade-los/src/main/java/org/springblade/los/trade/service/impl/AgentServiceImpl.java

@@ -1496,6 +1496,8 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
 			agent.setServiceCharge(new BigDecimal("0.00"));
 		}
 		long sxfCount = feeCenters.stream().filter(e -> "SXF".equals(e.getFeeCode())).count();
+		BigDecimal tradeAgencyAmount = new BigDecimal("0.00");
+		BigDecimal otherAmount = new BigDecimal("0.00");
 		for (FeeCenter item : feeCenters) {
 			item.setStlBillId(finStlBills.getId());
 			item.setStlBillNo(finStlBills.getBillNo());
@@ -1506,6 +1508,17 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
 			} else {
 				throw new RuntimeException("生成账单失败");
 			}
+			if (!"SXF,YDF,YFK,WK,SFK,DLF".contains(item.getFeeCode())) {
+				if ("CNY".equals(item.getCurCode())) {
+					otherAmount = otherAmount.add(item.getAmount());
+				} else {
+					otherAmount = otherAmount.add(item.getAmount().multiply(agent.getExchangeRate()));
+					item.setAmount(item.getAmount().multiply(agent.getExchangeRate()));
+				}
+			}
+			if ("DLF".equals(item.getFeeCode())) {
+				tradeAgencyAmount = tradeAgencyAmount.add(item.getAmount());
+			}
 			if ("SXF".equals(item.getFeeCode())) {
 				item.setAmount(agent.getServiceCharge().divide(new BigDecimal(sxfCount), 2, RoundingMode.HALF_UP));
 				item.setPrice(item.getAmount());
@@ -1518,6 +1531,8 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
 		this.updateBatchById(agentList);
 		agent.setServiceCharge(feeCenters.stream().filter(e -> "SXF".equals(e.getFeeCode())).map(FeeCenter::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add));
 		agent.setActualAmount(agent.getGoodsValue().add(agent.getPostElectricFee()).add(agent.getServiceCharge()));
+		agent.setTradeAgencyAmount(tradeAgencyAmount);
+		agent.setOtherAmount(otherAmount);
 		updateById(agent);
 		this.updateBatchById(agentList);
 		LocalDateTime now = LocalDateTime.now();
@@ -2160,6 +2175,8 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
 			serviceChargeDiscount = new BigDecimal("0.00");
 		}
 		long sxfCount = feeCenters1.stream().filter(e -> "SXF".equals(e.getFeeCode())).count();
+		BigDecimal tradeAgencyAmount = new BigDecimal("0.00");
+		BigDecimal otherAmount = new BigDecimal("0.00");
 		for (FeeCenter item : feeCenters1) {
 			item.setStlBillId(finStlBills.getId());
 			item.setStlBillNo(finStlBills.getBillNo());
@@ -2170,6 +2187,17 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
 			} else {
 				throw new RuntimeException("生成账单失败");
 			}
+			if (!"SXF,YDF,YFK,WK,SFK,DLF".contains(item.getFeeCode())) {
+				if ("CNY".equals(item.getCurCode())) {
+					otherAmount = otherAmount.add(item.getAmount());
+				} else {
+					otherAmount = otherAmount.add(item.getAmount().multiply(agent.getExchangeRate()));
+					item.setAmount(item.getAmount().multiply(agent.getExchangeRate()));
+				}
+			}
+			if ("DLF".equals(item.getFeeCode())) {
+				tradeAgencyAmount = tradeAgencyAmount.add(item.getAmount());
+			}
 			if ("SXF".equals(item.getFeeCode())) {
 				item.setAmount(agent.getServiceCharge().divide(new BigDecimal(sxfCount), 2, RoundingMode.HALF_UP));
 				item.setPrice(item.getAmount());
@@ -2193,6 +2221,8 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
 		agent.setPostElectricFee(feeCenters1.stream().filter(e -> "YDF".equals(e.getFeeCode())).map(FeeCenter::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add));
 		agent.setServiceCharge(feeCenters1.stream().filter(e -> "SXF".equals(e.getFeeCode())).map(FeeCenter::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add));
 		agent.setActualAmount(agent.getGoodsValue().add(agent.getPostElectricFee()).add(agent.getServiceCharge()));
+		agent.setTradeAgencyAmount(tradeAgencyAmount);
+		agent.setOtherAmount(otherAmount);
 		updateById(agent);
 		LocalDateTime now = LocalDateTime.now();
 		DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
@@ -2963,7 +2993,7 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
 			.eq(FeeCenter::getIsDeleted, 0)
 			.eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
 			.eq(FeeCenter::getDc, dc)
-			.apply("find_in_set(fee_code,'SXF,YDF,YFK,WK,SFK')")
+//			.apply("find_in_set(fee_code,'SXF,YDF,YFK,WK,SFK')")
 			.eq(FeeCenter::getStlStatus, 0)
 			.eq(FeeCenter::getAuditStatus, 0)
 			.in(FeeCenter::getPid, idList));
@@ -3104,12 +3134,32 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
 		baseMapper.insert(stlAgent);
 		long ydfCount = feeCenterList.stream().filter(e -> "YDF".equals(e.getFeeCode())).count();
 		long sxfCount = feeCenterList.stream().filter(e -> "SXF".equals(e.getFeeCode())).count();
+		BigDecimal tradeAgencyAmount = new BigDecimal("0.00");
+		BigDecimal otherAmount = new BigDecimal("0.00");
+		BigDecimal valueAddedTax = new BigDecimal("0.00");
+		BigDecimal tariff = new BigDecimal("0.00");
 		for (FeeCenter item : feeCenterList) {
 			if ("5".equals(item.getAuditStatus())) {
 				throw new RuntimeException("费用:" + item.getFeeCnName() + "已申请");
 			}
 			item.setStlExrate(stlAgent.getExchangeRate());
 			item.setDiscountExrate(stlAgent.getExchangeRate());
+			if (!"SXF,YDF,YFK,WK,SFK,DLF,ZZS,GS".contains(item.getFeeCode())) {
+				if ("CNY".equals(item.getCurCode())) {
+					otherAmount = otherAmount.add(item.getAmount());
+				} else {
+					otherAmount = otherAmount.add(item.getAmount().multiply(item.getStlExrate()));
+				}
+			}
+			if ("DLF".equals(item.getFeeCode())) {
+				tradeAgencyAmount = tradeAgencyAmount.add(item.getAmount());
+			}
+			if ("ZZS".equals(item.getFeeCode())) {
+				valueAddedTax = valueAddedTax.add(item.getAmount());
+			}
+			if ("GS".equals(item.getFeeCode())) {
+				tariff = tariff.add(item.getAmount());
+			}
 			if ("SFK,WK".contains(item.getFeeCode())) {
 				item.setAmount(stlAgent.getExchangeRate().multiply(item.getAmountLoc()).setScale(2, RoundingMode.HALF_UP));
 				item.setStlExrate(stlAgent.getExchangeRate());
@@ -3138,6 +3188,9 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
 			item.setAuditStatus("5");
 			item.setStlPid(stlAgent.getId());
 		}
+		stlAgent.setTradeAgencyAmount(tradeAgencyAmount);
+		stlAgent.setOtherAmount(otherAmount);
+		baseMapper.updateById(stlAgent);
 		feeCenterService.saveOrUpdateBatch(feeCenterList);
 		//给角色为财务的人发送消息
 		String processType;

+ 22 - 0
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/brand/controller/BrandDescController.java

@@ -47,7 +47,9 @@ import org.springblade.system.user.feign.IUserClient;
 import org.springframework.web.bind.annotation.*;
 
 import javax.validation.Valid;
+import java.util.ArrayList;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * 配件批发品牌表控制器
@@ -363,6 +365,26 @@ public class BrandDescController extends BladeController {
 			lambdaQueryWrapper.eq(PjBrandDesc::getSalesCompanyId, AuthUtil.getDeptId());//公司
 		}
 		List<PjBrandDesc> list = brandDescService.list(lambdaQueryWrapper);
+		if (!list.isEmpty()) {
+			List<Long> idList = list.stream().map(PjBrandDesc::getId).collect(Collectors.toList());
+			List<PjBrandFiles> brandFilesList = brandFilesService.list(new LambdaQueryWrapper<PjBrandFiles>()
+				.eq(PjBrandFiles::getTenantId, AuthUtil.getTenantId())
+				.eq(PjBrandFiles::getIsDeleted, 0)
+				.in(PjBrandFiles::getPid, idList)
+				.eq(PjBrandFiles::getVersion, 0));
+			for (PjBrandDesc item : list) {
+				if (!brandFilesList.isEmpty()) {
+					List<PjBrandFiles> brandFiles = brandFilesList.stream().filter(e -> e.getPid().equals(item.getId())).collect(Collectors.toList());
+					if (!brandFiles.isEmpty()) {
+						item.setBrandFilesList(brandFiles);
+					} else {
+						item.setBrandFilesList(new ArrayList<>());
+					}
+				} else {
+					item.setBrandFilesList(new ArrayList<>());
+				}
+			}
+		}
 		return R.data(list);
 	}
 

+ 3 - 0
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/service/impl/OrderServiceImpl.java

@@ -4869,6 +4869,9 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 						//计算成本
 						goodsName.append(goodsDesc.getCname()).append(",");
 						retrieval.append(goodsDesc.getCnameInt()).append(",");
+						if(ObjectUtils.isNull(item.getSendNum())){
+							item.setSendNum(new BigDecimal("0.00"));
+						}
 						if (new BigDecimal("0.00").compareTo(item.getSendNum()) == 0){
 							item.setCostprie(item.getGoodsNum().multiply(inventoryCostPrice));
 							item.setCostpriePrice(inventoryCostPrice);