Переглянути джерело

君海:1.付汇通知-增加判断,付款未确认付银行金额显示0
2.确认付款未计算手续费利润

纪新园 8 місяців тому
батько
коміт
3f1fb55948

+ 22 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/reports/entity/Reports.java

@@ -168,5 +168,27 @@ public class Reports implements Serializable {
 	@ApiModelProperty(value = "文件地址")
 	private String url;
 
+	/**
+	 * 授权角色
+	 */
+	@ApiModelProperty(value = "授权角色")
+	private String authorizedRole;
+	/**
+	 * 授权角色id
+	 */
+	@ApiModelProperty(value = "授权角色id")
+	private String authorizedRoleId;
+
+	/**
+	 * 授权团队
+	 */
+	@ApiModelProperty(value = "授权团队")
+	private String authorizedTeam;
+	/**
+	 * 授权团队id
+	 */
+	@ApiModelProperty(value = "授权团队id")
+	private String authorizedTeamId;
+
 
 }

+ 1 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/business/aea/entity/AeaBills.java

@@ -506,6 +506,7 @@ public class AeaBills implements Serializable {
 	 * 预付总额
 	 */
 	@ApiModelProperty(value = "预付总额")
+	@TableField("h_pay_amount")
 	private BigDecimal hPayAmount;
 	/**
 	 * HB/L 付款方式 PP=预付, CC=到付, FPA, Other

+ 12 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/edi/entity/EdiTypes.java

@@ -189,5 +189,17 @@ public class EdiTypes implements Serializable {
 	@TableField(exist = false)
 	private String billId;
 
+	/**
+	 * JSON 对象数组,权限角色
+	 */
+	@ApiModelProperty(value = "JSON 对象数组,权限角色")
+	private String rolelist;
+
+	/**
+	 * JSON 对象数组,权限团队
+	 */
+	@ApiModelProperty(value = "JSON 对象数组,权限团队")
+	private String teamlist;
+
 
 }

+ 22 - 21
blade-service/blade-los/src/main/java/org/springblade/los/business/aea/controller/AeaBillsController.java

@@ -17,32 +17,28 @@
 package org.springblade.los.business.aea.controller;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
-import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import lombok.AllArgsConstructor;
-
-import javax.validation.Valid;
-
 import org.springblade.common.annotation.RepeatSubmit;
+import org.springblade.core.boot.ctrl.BladeController;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.mp.support.Query;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.los.Util.IDeptUtils;
-import org.springblade.los.business.amends.entity.Amends;
-import org.springblade.los.business.sea.entity.Bills;
-import org.springblade.system.feign.ISysClient;
-import org.springframework.web.bind.annotation.*;
-import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springblade.los.business.aea.entity.AeaBills;
-import org.springblade.los.business.aea.vo.AeaBillsVO;
 import org.springblade.los.business.aea.service.IAeaBillsService;
-import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.los.business.aea.vo.AeaBillsVO;
+import org.springblade.system.feign.ISysClient;
+import org.springframework.web.bind.annotation.*;
 
+import javax.validation.Valid;
 import java.util.List;
 
 /**
@@ -82,18 +78,23 @@ public class AeaBillsController extends BladeController {
 	@ApiOperation(value = "分页", notes = "传入aeaBills")
 	public R<IPage<AeaBills>> list(AeaBills aeaBills, Query query) {
 		LambdaQueryWrapper<AeaBills> lambdaQueryWrapper = new LambdaQueryWrapper<>();
-		lambdaQueryWrapper.select(AeaBills::getId, AeaBills::getBillNo, AeaBills::getBillType, AeaBills::getMasterBillNo,
+		/*lambdaQueryWrapper.select(AeaBills::getId, AeaBills::getBillNo, AeaBills::getBillType, AeaBills::getMasterBillNo,
 			AeaBills::getCorpCnName, AeaBills::getCorpId, AeaBills::getCorpEnName, AeaBills::getCarrierCnName,
 			AeaBills::getCarrierId, AeaBills::getVoyageNo, AeaBills::getMblno, AeaBills::getHblno, AeaBills::getEta, AeaBills::getEtd,
 			AeaBills::getDepartureId, AeaBills::getDepartureCnName, AeaBills::getDestinationId, AeaBills::getDestinationName,
 			AeaBills::getCargoType, AeaBills::getMarks, AeaBills::getQuantity, AeaBills::getGrossWeight,
 			AeaBills::getMeasurement, AeaBills::getIsNeedLand, AeaBills::getIsNeedDeclare, AeaBills::getIsNeedIq, AeaBills::getAmountDr,
 			AeaBills::getAmountCr, AeaBills::getAmountProfit, AeaBills::getAmountDrUsd, AeaBills::getAmountCrUsd, AeaBills::getAmountProfitUsd,
-			AeaBills::getAmountDrLoc, AeaBills::getAmountCrLoc, AeaBills::getAmountProfitLoc, AeaBills::getCheckCrStatusDescr, AeaBills::getCheckDrStatusDescr,
-			AeaBills::getStlCrStatusDescr, AeaBills::getStlDrStatusDescr, AeaBills::getInvoiceCrStatusDescr, AeaBills::getInvoiceDrStatusDescr, AeaBills::getCreateUserName,
-			AeaBills::getCreateTime, AeaBills::getUpdateUserName, AeaBills::getUpdateTime, AeaBills::getStatus, AeaBills::getBillStatus,
-			AeaBills::getAccountStatus, AeaBills::getRemarks, AeaBills::getPackingUnit, AeaBills::getBillDate, AeaBills::getTeamName, AeaBills::getCreateUser,
-			AeaBills::getWarehousingDate, AeaBills::getOutboundDate);
+			AeaBills::getAmountDrLoc, AeaBills::getAmountCrLoc, AeaBills::getAmountProfitLoc, AeaBills::getCheckCrStatusDescr,
+			AeaBills::getCheckDrStatusDescr, AeaBills::getStlCrStatusDescr, AeaBills::getStlDrStatusDescr, AeaBills::getInvoiceCrStatusDescr,
+			AeaBills::getInvoiceDrStatusDescr, AeaBills::getCreateUserName, AeaBills::getCreateTime, AeaBills::getUpdateUserName,
+			AeaBills::getUpdateTime, AeaBills::getStatus, AeaBills::getBillStatus, AeaBills::getAccountStatus, AeaBills::getRemarks,
+			AeaBills::getPackingUnit, AeaBills::getBillDate, AeaBills::getTeamName, AeaBills::getCreateUser, AeaBills::getWarehousingDate,
+			AeaBills::getOutboundDate, AeaBills::getCreateTime, AeaBills::getUpdateUserName, AeaBills::getUpdateTime, AeaBills::getStatus,
+			AeaBills::getBillStatus, AeaBills::getAccountStatus, AeaBills::getRemarks, AeaBills::getPackingUnit,
+			AeaBills::getBillDate, AeaBills::getTeamName, AeaBills::getCreateUser, AeaBills::getCreateDeptName,
+			AeaBills::getCarrierCnName, AeaBills::getCyCnName, AeaBills::getSrcType, AeaBills::getSrcCnName, AeaBills::getBookingAgentCnName,
+			AeaBills::getCarrierEnName, AeaBills::getCyEnName, AeaBills::getDestinationName);*/
 		lambdaQueryWrapper.eq(AeaBills::getIsDeleted, 0)
 			.eq(AeaBills::getTenantId, AuthUtil.getTenantId())
 			.and(i -> i.isNull(AeaBills::getMasterId).or()
@@ -147,7 +148,7 @@ public class AeaBillsController extends BladeController {
 			}
 		}
 		lambdaQueryWrapper.and(ObjectUtils.isNotNull(aeaBills.getBookingAgentCnName()), i -> i.like(AeaBills::getBookingAgentCnName, aeaBills.getBookingAgentCnName()).or()
-			.like(AeaBills::getBookingAgentEnName, aeaBills.getBookingAgentCnName()))
+				.like(AeaBills::getBookingAgentEnName, aeaBills.getBookingAgentCnName()))
 			.eq(ObjectUtils.isNotNull(aeaBills.getBillType()), AeaBills::getBillType, aeaBills.getBillType())
 			.eq(ObjectUtils.isNotNull(aeaBills.getBusinessType()), AeaBills::getBusinessType, aeaBills.getBusinessType())
 			.eq(ObjectUtils.isNotNull(aeaBills.getSeaType()), AeaBills::getSeaType, aeaBills.getSeaType())
@@ -181,7 +182,7 @@ public class AeaBillsController extends BladeController {
 			AeaBills::getAmountDrLoc, AeaBills::getAmountCrLoc, AeaBills::getAmountProfitLoc, AeaBills::getCheckCrStatusDescr, AeaBills::getCheckDrStatusDescr,
 			AeaBills::getStlCrStatusDescr, AeaBills::getStlDrStatusDescr, AeaBills::getInvoiceCrStatusDescr, AeaBills::getInvoiceDrStatusDescr, AeaBills::getCreateUserName,
 			AeaBills::getCreateTime, AeaBills::getUpdateUserName, AeaBills::getUpdateTime, AeaBills::getStatus, AeaBills::getBillStatus,
-			AeaBills::getAccountStatus, AeaBills::getRemarks, AeaBills::getPackingUnit, AeaBills::getBillDate,AeaBills::getWarehousingDate, AeaBills::getOutboundDate);
+			AeaBills::getAccountStatus, AeaBills::getRemarks, AeaBills::getPackingUnit, AeaBills::getBillDate, AeaBills::getWarehousingDate, AeaBills::getOutboundDate);
 		lambdaQueryWrapper.eq(AeaBills::getIsDeleted, 0)
 			.eq(AeaBills::getTenantId, AuthUtil.getTenantId())
 			.and(i -> i.isNull(AeaBills::getMasterId).or()
@@ -215,7 +216,7 @@ public class AeaBillsController extends BladeController {
 			lambdaQueryWrapper.eq(AeaBills::getBranchId, deptUtils.getDeptPid());
 		}
 		lambdaQueryWrapper.and(ObjectUtils.isNotNull(aeaBills.getBookingAgentCnName()), i -> i.like(AeaBills::getBookingAgentCnName, aeaBills.getBookingAgentCnName()).or()
-			.like(AeaBills::getBookingAgentEnName, aeaBills.getBookingAgentCnName()))
+				.like(AeaBills::getBookingAgentEnName, aeaBills.getBookingAgentCnName()))
 			.eq(ObjectUtils.isNotNull(aeaBills.getBillType()), AeaBills::getBillType, aeaBills.getBillType())
 			.eq(ObjectUtils.isNotNull(aeaBills.getBusinessType()), AeaBills::getBusinessType, aeaBills.getBusinessType())
 			.eq(ObjectUtils.isNotNull(aeaBills.getSeaType()), AeaBills::getSeaType, aeaBills.getSeaType())
@@ -265,7 +266,7 @@ public class AeaBillsController extends BladeController {
 	@ApiOperationSupport(order = 6)
 	@ApiOperation(value = "新增或修改", notes = "传入aeaBills")
 	@RepeatSubmit
-	public R submit(@Valid @RequestBody AeaBills aeaBills) throws Exception{
+	public R submit(@Valid @RequestBody AeaBills aeaBills) throws Exception {
 		return aeaBillsService.submit(aeaBills);
 	}
 

+ 49 - 8
blade-service/blade-los/src/main/java/org/springblade/los/trade/service/impl/AgentServiceImpl.java

@@ -2149,6 +2149,26 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
 		} else {
 			agent.setServiceCharge(new BigDecimal("0.00"));
 		}
+		BigDecimal goodsValue = new BigDecimal("0.00");
+		BigDecimal serviceChargeDiscount = new BigDecimal("0.00");
+		for (FeeCenter item : feeCenters1){
+			if ("SFK,WK".contains(item.getFeeCode())){
+				goodsValue = goodsValue.add(item.getAmountLoc().multiply(item.getDiscountExrate()));
+			}
+		}
+		if (ObjectUtils.isNotNull(serviceCharge)) {
+			BigDecimal serviceChargeAmount = new BigDecimal("1").divide(new BigDecimal(serviceCharge), serviceCharge.length(), RoundingMode.HALF_UP);
+			BigDecimal amount1 = serviceChargeAmount.multiply(goodsValue);
+			if (amount1.compareTo(new BigDecimal("1000")) > 0) {
+				serviceChargeDiscount = new BigDecimal("1000");
+			} else if (amount1.compareTo(new BigDecimal("50")) < 0) {
+				serviceChargeDiscount = new BigDecimal("50");
+			} else {
+				serviceChargeDiscount = amount1;
+			}
+		} else {
+			serviceChargeDiscount = new BigDecimal("0.00");
+		}
 		long sxfCount = feeCenters1.stream().filter(e -> "SXF".equals(e.getFeeCode())).count();
 		for (FeeCenter item : feeCenters1) {
 			item.setStlBillId(finStlBills.getId());
@@ -2166,7 +2186,7 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
 				item.setStlExrate(new BigDecimal("1"));
 				item.setDiscountExrate(new BigDecimal("1"));
 				item.setExrate(new BigDecimal("1"));
-				item.setProfit(new BigDecimal("0"));
+				item.setProfit(item.getAmount().subtract(serviceChargeDiscount.divide(new BigDecimal(sxfCount), 2, RoundingMode.HALF_UP)));
 			}
 			if ("YDF".equals(item.getFeeCode())) {
 				item.setProfit(new BigDecimal("0"));
@@ -3681,9 +3701,24 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
 					.apply("stl_pid is not null")
 					.eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
 					.eq(FeeCenter::getIsDeleted, 0));
-				if (feeCenterList.isEmpty()) {
+				if (feeCenterListC.isEmpty()) {
 					throw new RuntimeException("请先维护首款费用信息");
 				}
+				boolean status = false;
+				List<Long> stlPidC = feeCenterListC.stream().map(FeeCenter::getStlPid).filter(Objects::nonNull).collect(Collectors.toList());
+				if (!stlPidC.isEmpty()) {
+					List<Agent> agentList = baseMapper.selectList(new LambdaQueryWrapper<Agent>()
+						.eq(Agent::getTenantId, AuthUtil.getTenantId())
+						.eq(Agent::getIsDeleted, 0)
+						.eq(Agent::getBusinessType, "MYDL-STL")
+						.eq(Agent::getDc, "C")
+						.in(Agent::getId, stlPidC));
+					for (Agent item : agentList) {
+						if ("已确认".equals(item.getOrderStatus())) {
+							status = true;
+						}
+					}
+				}
 				List<AgentRecordReport> reportList = new ArrayList<>();
 				List<FeeCenter> feeCentersSk = feeCenterList.stream().filter(e -> ObjectUtils.isNotNull(e.getFeeType()) &&
 						"1".equals(e.getFeeType()) && "SFK".equals(e.getFeeCode()))
@@ -3904,6 +3939,12 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
 					}
 				}
 				agentFeeReport.setSkItemsReports(agentFeeItemsReports);
+				if (!status) {
+					agentFeeReport.setRealitySumAmount(new BigDecimal("0.00"));
+					agentFeeReport.setRemainingAmount(new BigDecimal("0.00"));
+					agentFeeReport.setSurplusAmount(new BigDecimal("0.00"));
+					agentFeeReport.setRepairAmount(new BigDecimal("0.00"));
+				}
 				map.put(MagicValues.DATA, agentFeeReport);
 			} else {
 				map.put(MagicValues.DATA, new AgentFeeReport());
@@ -4028,9 +4069,9 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
 				}
 				agent.setFeeCenterReportsList(feeCenterReportsList);
 				BigDecimal equivalentToRmbDr = ibCurrencyService.converterCny(MagicValues.USD, amountDrUsd, MagicValues.D, "1");
-				agent.setAmount(amountDr.setScale(2,RoundingMode.HALF_UP));
-				agent.setAmountUsd(amountDrUsd.setScale(2,RoundingMode.HALF_UP));
-				agent.setEquivalentToRmbDr(equivalentToRmbDr.setScale(2,RoundingMode.HALF_UP));
+				agent.setAmount(amountDr.setScale(2, RoundingMode.HALF_UP));
+				agent.setAmountUsd(amountDrUsd.setScale(2, RoundingMode.HALF_UP));
+				agent.setEquivalentToRmbDr(equivalentToRmbDr.setScale(2, RoundingMode.HALF_UP));
 				agent.setAmountLoc(agent.getAmount().add(agent.getEquivalentToRmbDr()));
 				List<BCorpsBank> bCorpsBanks = bCorpsBankService.list(new LambdaQueryWrapper<BCorpsBank>()
 					.eq(BCorpsBank::getTenantId, AuthUtil.getTenantId())
@@ -4167,9 +4208,9 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
 				}
 				agent.setFeeCenterReportsList(feeCenterReportsList);
 				BigDecimal equivalentToRmbCr = ibCurrencyService.converterCny(MagicValues.USD, amountCrUsd, MagicValues.C, "1");
-				agent.setAmount(amountCr.setScale(2,RoundingMode.HALF_UP));
-				agent.setAmountUsd(amountCrUsd.setScale(2,RoundingMode.HALF_UP));
-				agent.setEquivalentToRmbCr(equivalentToRmbCr.setScale(2,RoundingMode.HALF_UP));
+				agent.setAmount(amountCr.setScale(2, RoundingMode.HALF_UP));
+				agent.setAmountUsd(amountCrUsd.setScale(2, RoundingMode.HALF_UP));
+				agent.setEquivalentToRmbCr(equivalentToRmbCr.setScale(2, RoundingMode.HALF_UP));
 				agent.setAmountLoc(agent.getAmount().add(agent.getEquivalentToRmbCr()));
 				agent.setDept(dept);
 				map.put(MagicValues.DATA, agent);