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

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

liyuan 2 місяців тому
батько
коміт
583cc9b6b0
19 змінених файлів з 643 додано та 186 видалено
  1. 6 0
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/reports/entity/Reports.java
  2. 77 0
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/business/sea/entity/Bills.java
  3. 24 0
      blade-service/blade-los/src/main/java/org/springblade/los/Util/MagicValues.java
  4. 50 0
      blade-service/blade-los/src/main/java/org/springblade/los/Util/RegularUtils.java
  5. 9 2
      blade-service/blade-los/src/main/java/org/springblade/los/basic/fees/controller/LosBFeesTemplateController.java
  6. 2 1
      blade-service/blade-los/src/main/java/org/springblade/los/basic/reports/controller/ReportsController.java
  7. 1 0
      blade-service/blade-los/src/main/java/org/springblade/los/basic/reports/mapper/ReportsMapper.xml
  8. 1 1
      blade-service/blade-los/src/main/java/org/springblade/los/basic/reports/service/IReportsService.java
  9. 219 17
      blade-service/blade-los/src/main/java/org/springblade/los/basic/reports/service/impl/ReportsServiceImpl.java
  10. 4 0
      blade-service/blade-los/src/main/java/org/springblade/los/business/aea/service/impl/AeaBillsServiceImpl.java
  11. 4 0
      blade-service/blade-los/src/main/java/org/springblade/los/business/amends/service/impl/AmendsServiceImpl.java
  12. 4 0
      blade-service/blade-los/src/main/java/org/springblade/los/business/customsDeclaration/service/impl/CustomsDeclarationServiceImpl.java
  13. 4 0
      blade-service/blade-los/src/main/java/org/springblade/los/business/generalBill/service/impl/GeneralBillServiceImpl.java
  14. 15 4
      blade-service/blade-los/src/main/java/org/springblade/los/business/sea/controller/BillsController.java
  15. 176 147
      blade-service/blade-los/src/main/java/org/springblade/los/business/sea/service/impl/BillsServiceImpl.java
  16. 34 1
      blade-service/blade-los/src/main/java/org/springblade/los/business/sea/service/impl/DataProcessingImplService.java
  17. 1 1
      blade-service/blade-los/src/main/java/org/springblade/los/business/sea/service/impl/MscZipImportImpl.java
  18. 11 11
      blade-service/blade-los/src/main/java/org/springblade/los/finance/fee/service/impl/FeeCenterServiceImpl.java
  19. 1 1
      blade-service/blade-los/src/main/java/org/springblade/los/trade/service/impl/ReportDataTradeServiceImpl.java

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

@@ -169,6 +169,12 @@ public class Reports implements Serializable {
 	private String url;
 
 	/**
+	 * 报表用户参数,用于提取报表数据
+	 */
+	@ApiModelProperty(value = "报表用户参数,用于提取报表数据")
+	private String params;
+
+	/**
 	 * 授权角色
 	 */
 	@ApiModelProperty(value = "授权角色")

+ 77 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/business/sea/entity/Bills.java

@@ -1006,6 +1006,28 @@ public class Bills implements Serializable {
 	@ApiModelProperty(value = "大写取值规则")
 	private Integer capitalLettersRule;
 	/**
+	 * 提单上 No. of containers or packages
+	 */
+	@TableField(exist = false)
+	private String numOfContainersOrPackages;
+	/**
+	 * 提单上 GrossWeight
+	 */
+	@TableField(exist = false)
+	private String grossWeightOfBL;
+
+	/**
+	 * 签单日期(报关日期)
+	 */
+	@TableField(exist = false)
+	private String issueDateOfBL;
+	/**
+	 * 提单上 Measurement
+	 */
+	@TableField(exist = false)
+	private String measurementOfBL;
+
+	/**
 	 * 危险品分类代码(IMDG CODE)
 	 */
 	@ApiModelProperty(value = "危险品分类代码(IMDG CODE)")
@@ -1598,6 +1620,11 @@ public class Bills implements Serializable {
 	@TableField(exist = false)
 	private List<Containers> containersList;
 	/**
+	 * 配箱箱号 CSV
+	 */
+	@TableField(exist = false)
+	private String containerNosCsv;
+	/**
 	 * 配箱报表
 	 */
 	@TableField(exist = false)
@@ -2372,6 +2399,56 @@ public class Bills implements Serializable {
 	@TableField(exist = false)
 	private String issueTypeDisplay;
 	/**
+	 * 备用字段,用于打印提单报表
+	 */
+	@TableField(exist = false)
+	private String reserve1;
+	/**
+	 * 备用字段,用于打印提单报表
+	 */
+	@TableField(exist = false)
+	private String reserve2;
+	/**
+	 * 备用字段,用于打印提单报表
+	 */
+	@TableField(exist = false)
+	private String reserve3;
+	/**
+	 * 备用字段,用于打印提单报表
+	 */
+	@TableField(exist = false)
+	private String reserve4;
+	/**
+	 * 备用字段,用于打印提单报表
+	 */
+	@TableField(exist = false)
+	private String reserve5;
+	/**
+	 * 备用字段,用于打印提单报表
+	 */
+	@TableField(exist = false)
+	private String reserve6;
+	/**
+	 * 备用字段,用于打印提单报表
+	 */
+	@TableField(exist = false)
+	private String reserve7;
+	/**
+	 * 备用字段,用于打印提单报表
+	 */
+	@TableField(exist = false)
+	private String reserve8;
+	/**
+	 * 备用字段,用于打印提单报表
+	 */
+	@TableField(exist = false)
+	private String reserve9;
+	/**
+	 * 备用字段,用于打印提单报表
+	 */
+	@TableField(exist = false)
+	private String reserve10;
+	/**
 	 * ids
 	 */
 	@TableField(exist = false)

+ 24 - 0
blade-service/blade-los/src/main/java/org/springblade/los/Util/MagicValues.java

@@ -1,5 +1,7 @@
 package org.springblade.los.Util;
 
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+
 /**
  * @author :jixinyuan
  * @date : 2024/1/18
@@ -36,6 +38,7 @@ public class MagicValues {
 	public static final String INCOMING_NOTIFICATION = "入货通知";
 	public static final String SALES_REPORT = "销售报告";
 	public static final String SALES_REPORT_AMEND = "销售报告-amend";
+	public static final String FREIGHT_NOTE = "FREIGHT NOTE";
 
 	public static final String ORDER_ALLOCATION = "配单";
 
@@ -43,9 +46,14 @@ public class MagicValues {
 
 	public static final String THE_FIRST_ONE_CORP = "货款-客户";
 	public static final String BALANCE_PAYMENT = "尾款";
+
 	public static final String MASTER_BILLS = "MASTER 提单";
 	public static final String BILLS_DETAIL = "提单详情";
+	public static final String BILLS_DETAIL_H = "提单详情(H)";
 	public static final String BILLS_DETAIL_M = "提单详情(M)";
+	public static final String BILLS_JMS = "JMS提单";
+	public static final String BILLS_CTO = "CTO";
+
 	public static final String HYCK = "HYCK";
 	public static final String HYJK = "HYJK";
 	public static final String KYCK = "KYCK";
@@ -114,6 +122,22 @@ public class MagicValues {
 	public static final String GAUGE_OUTFIT = "gaugeOutfit";
 	public static final String HUNDRED = "100";
 
+	// 是否提单详情
+	public static final Boolean IsBillsDetail(String code){
+		return MagicValues.BILLS_DETAIL.equals(code) || MagicValues.BILLS_DETAIL_H.equals(code) || MagicValues.BILLS_DETAIL_M.equals(code)
+			|| MagicValues.BILLS_JMS.equals(code) || MagicValues.BILLS_CTO.equals(code);
+	}
+
+	// 是否海运进出口
+	public static final Boolean IsSea(String code){
+		return MagicValues.HYCK.equals(code) || MagicValues.HYJK.equals(code);
+	}
+
+	// 是否空运进出口
+	public static final Boolean IsAir(String code){
+		return MagicValues.KYCK.equals(code) || MagicValues.KYJK.equals(code);
+	}
+
 	private MagicValues() {} // 防止外部实例化该类
 
 }

+ 50 - 0
blade-service/blade-los/src/main/java/org/springblade/los/Util/RegularUtils.java

@@ -2,6 +2,7 @@ package org.springblade.los.Util;
 
 import com.alibaba.fastjson.JSONArray;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.fasterxml.jackson.databind.JsonNode;
 import com.sun.org.apache.xpath.internal.operations.Bool;
 import io.reactivex.Single;
 import org.springblade.los.business.sea.entity.Bills;
@@ -12,6 +13,7 @@ import org.springblade.los.edi.dto.InttraSoDto;
 import java.lang.reflect.Field;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
+import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
@@ -500,6 +502,54 @@ public class RegularUtils {
 		}
 	}
 
+	public static String readJSONStringValue(JsonNode json, String keyName, String defaultValue) {
+		String res = defaultValue;
+		if (ObjectUtils.isNotNull(json)) {
+			try {
+				JsonNode js = json.findValue(keyName);
+				if (ObjectUtils.isNotNull(js) && js.isValueNode()) {
+					res = js.asText().trim();
+					if (ObjectUtils.isNull(res)) {
+						res = defaultValue;
+					}
+				}
+			} catch (Exception ignored) {
+
+			}
+		}
+
+		return res;
+	}
+
+	public static Boolean readJSONBooleanValue(JsonNode json, String keyName, Boolean defaultValue) {
+		Boolean res = defaultValue;
+		if (ObjectUtils.isNotNull(json)) {
+			try {
+				JsonNode js = json.findValue(keyName);
+				if (ObjectUtils.isNotNull(js) && js.isBoolean()) {
+					res = js.asBoolean();
+				}
+			} catch (Exception ignored) {
+
+			}
+		}
+
+		return res;
+	}
+
+	public static String translateEngMonthDate(Date d){
+		if(ObjectUtils.isNotNull(d)){
+			int y = d.getYear() + 1900;
+			if(y>2000){
+				String[] engMonths = "Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec".split(",");
+				return engMonths[d.getMonth()] + " " + d.getDate() + "," + y;
+			}else{
+				return "";
+			}
+		}else{
+			return "";
+		}
+	}
 }
 
 	/*Class<?> ediObjClass = ediData.getClass();

+ 9 - 2
blade-service/blade-los/src/main/java/org/springblade/los/basic/fees/controller/LosBFeesTemplateController.java

@@ -25,6 +25,7 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
 import lombok.AllArgsConstructor;
+import org.springblade.client.entity.CorpsDesc;
 import org.springblade.common.annotation.RepeatSubmit;
 import org.springblade.core.boot.ctrl.BladeController;
 import org.springblade.core.excel.util.ExcelUtil;
@@ -80,10 +81,16 @@ public class LosBFeesTemplateController extends BladeController {
 	public R<IPage<LosBFeesTemplate>> list(LosBFeesTemplate losBFeesTemplate, Query query) {
 		LambdaQueryWrapper<LosBFeesTemplate> lambdaQueryWrapper = new LambdaQueryWrapper<>();
 		lambdaQueryWrapper.eq(LosBFeesTemplate::getTenantId, AuthUtil.getTenantId())
-			.eq(LosBFeesTemplate::getIsDeleted, 0)
-			.like(ObjectUtils.isNotNull(losBFeesTemplate.getCode()), LosBFeesTemplate::getCode, losBFeesTemplate.getCode())
+			.eq(LosBFeesTemplate::getIsDeleted, 0);
+		// 出系统管理员外,其他人只能看自己的
+		String role = AuthUtil.getUserRole();
+		if (!role.contains("admin")) {
+			lambdaQueryWrapper.eq(LosBFeesTemplate::getCreateUser, AuthUtil.getUserId());
+		}
+		lambdaQueryWrapper.like(ObjectUtils.isNotNull(losBFeesTemplate.getCode()), LosBFeesTemplate::getCode, losBFeesTemplate.getCode())
 			.like(ObjectUtils.isNotNull(losBFeesTemplate.getCnName()), LosBFeesTemplate::getCnName, losBFeesTemplate.getCnName())
 			.like(ObjectUtils.isNotNull(losBFeesTemplate.getEnName()), LosBFeesTemplate::getEnName, losBFeesTemplate.getEnName())
+			.like(ObjectUtils.isNotNull(losBFeesTemplate.getCreateUserName()), LosBFeesTemplate::getCreateUserName, losBFeesTemplate.getCreateUserName())
 			.like(ObjectUtils.isNotNull(losBFeesTemplate.getStatus()), LosBFeesTemplate::getStatus, losBFeesTemplate.getStatus())
 			.like(ObjectUtils.isNotNull(losBFeesTemplate.getBusinessTypeId()), LosBFeesTemplate::getBusinessTypeId, losBFeesTemplate.getBusinessTypeId())
 			.orderByDesc(LosBFeesTemplate::getCreateTime);

+ 2 - 1
blade-service/blade-los/src/main/java/org/springblade/los/basic/reports/controller/ReportsController.java

@@ -181,10 +181,11 @@ public class ReportsController extends BladeController {
 						   @RequestParam(value = "corpIds", required = false) String corpIds,
 						   @RequestParam(value = "itemIds", required = false) String itemIds,
 						   @RequestParam(value = "BillNumber", required = false) String BillNumber,
+						   @RequestParam(value = "params", required = false) String params,
 						   @RequestParam(value = "curCode", required = false) String curCode,
 						   @RequestParam(value = "type", required = false) String type
 	) {
-		return reportsService.getReportData(billId, reportCode, groupCode, corpIds, itemIds, type, curCode,BillNumber);
+		return reportsService.getReportData(billId, reportCode, groupCode, corpIds, itemIds, type, curCode,BillNumber, params);
 	}
 
 

+ 1 - 0
blade-service/blade-los/src/main/java/org/springblade/los/basic/reports/mapper/ReportsMapper.xml

@@ -24,6 +24,7 @@
         <result column="authorized_users" property="authorizedUsers"/>
         <result column="version" property="version"/>
         <result column="status" property="status"/>
+        <result column="params" property="params"/>
         <result column="remarks" property="remarks"/>
         <result column="is_deleted" property="isDeleted"/>
     </resultMap>

+ 1 - 1
blade-service/blade-los/src/main/java/org/springblade/los/basic/reports/service/IReportsService.java

@@ -53,7 +53,7 @@ public interface IReportsService extends IService<Reports> {
 	 * 获取模本数据加信息
 	 */
     R getReportData(String billId, String reportCode, String groupCode,String corpIds,
-					String itemIds,String type,String curCode,String BillNumber);
+					String itemIds,String type,String curCode,String BillNumber, String params);
 
     List<Reports> getReports(Reports reports);
 

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

@@ -22,6 +22,8 @@ import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.echepei.dto.mail.MailDto;
 import com.echepei.utils.mail.SendMailUtil;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
 import lombok.AllArgsConstructor;
 import org.springblade.common.enums.CommonEnum;
 import org.springblade.core.secure.BladeUser;
@@ -32,6 +34,7 @@ import org.springblade.core.tool.utils.FileUtil;
 import org.springblade.los.Util.BigDecimalUtils;
 import org.springblade.los.Util.IDeptUtils;
 import org.springblade.los.Util.MagicValues;
+import org.springblade.los.Util.RegularUtils;
 import org.springblade.los.basic.corps.entity.BCorps;
 import org.springblade.los.basic.corps.entity.BCorpsBank;
 import org.springblade.los.basic.corps.service.IBCorpsBankService;
@@ -189,7 +192,8 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 
 	@Override
 	public R<Map<String, Object>> getReportData(String billId, String reportCode, String groupCode, String corpIds,
-												String itemIds, String type, String curCode, String BillNumber) {
+												String itemIds, String type, String curCode, String BillNumber,
+												String params) {
 		Map<String, Object> map = new HashMap<>();
 		if (ObjectUtils.isNull(billId)) {
 			throw new RuntimeException("缺少比要参数");
@@ -216,8 +220,18 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 		} else {
 			throw new RuntimeException("获取报表表头数据失败");
 		}
+
+		ObjectMapper reportParamsObjectMapper = new ObjectMapper();
+		JsonNode reportParams = null;
+		if(ObjectUtils.isNotNull(params)) {
+			try {
+				reportParams = reportParamsObjectMapper.readTree(params);
+			} catch (Exception e) {
+			}
+		}
+
 		if (MagicValues.HYCK.equals(type) || MagicValues.HYJK.equals(type)) {
-			return this.getReportDataHY(billId, reportCode, groupCode, corpIds, itemIds, type, curCode, BillNumber);
+			return this.getReportDataHY(reportParams, billId, reportCode, groupCode, corpIds, itemIds, type, curCode, BillNumber);
 		} else if (MagicValues.KYCK.equals(type) || MagicValues.KYJK.equals(type)) {
 			return this.getReportDataKY(billId, reportCode, groupCode, corpIds, itemIds, type, curCode, BillNumber);
 		} else if (MagicValues.AMEND.equals(type)) {
@@ -849,8 +863,10 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 		return R.data(map);
 	}
 
-	public R<Map<String, Object>> getReportDataHY(String billId, String reportCode, String groupCode, String corpIds,
-												  String itemIds, String type, String curCode, String BillNumber) {
+	public R<Map<String, Object>> getReportDataHY(JsonNode reportParams,
+	                                              String billId, String reportCode, String groupCode,
+	                                              String corpIds, String itemIds, String type,
+	                                              String curCode, String BillNumber) {
 		Map<String, Object> map = new HashMap<>();
 		if (ObjectUtils.isNull(billId)) {
 			throw new RuntimeException("缺少比要参数");
@@ -859,9 +875,9 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 		// String debug = System.getProperty("java.debug");
 		boolean isDebug = true; // (debug != null && debug.toLowerCase().startsWith("true"));
 
-		List<Long> psFeeIds = new ArrayList<>();
-		psFeeIds.add(220L);
-		psFeeIds.add(623L);
+		List<String> psFeeCodes = new ArrayList<>();
+		psFeeCodes.add("P/S");
+		psFeeCodes.add("HP/S");
 
 		R<Dept> res = sysClient.getDept(deptUtils.getDeptPid());
 		Dept dept;
@@ -1757,30 +1773,95 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 			} else {
 				map.put(MagicValues.DATA, null);
 			}
-		} else if (MagicValues.DOCUMENT.equals(reportCode) && (MagicValues.BILLS_DETAIL.equals(groupCode) || MagicValues.BILLS_DETAIL_M.equals(groupCode)) && (MagicValues.HYCK.equals(type) || MagicValues.HYJK.equals(type))) {
+		} else if (MagicValues.DOCUMENT.equals(reportCode) && MagicValues.IsBillsDetail(groupCode) && MagicValues.IsSea(type)) {
 			Bills bills = billsService.getById(billId);
 			if (bills != null) {
+				// MASTER_BILLS
 				this.dictionaryConversion(bills);
 				this.assignmentSeaBillsDetail(bills);
-//				bills.setFM(MagicValues.FM);
-				bills.setCapitalLetters("SAY " + BigDecimalUtils.convertToEnglish(bills.getQuantity()) + " " + bills.getPackingUnit() + " ONLY.");
-				bills.setVesselCnName(bills.getVesselEnName() + "/" + bills.getVoyageNo());
-				BigDecimal boxWeightSum = BigDecimal.ZERO;
+
 				List<Containers> containersList = containersService.list(new LambdaQueryWrapper<Containers>()
 					.eq(Containers::getTenantId, AuthUtil.getTenantId())
 					.eq(Containers::getIsDeleted, 0)
 					.eq(Containers::getPid, bills.getId()));
+				if(ObjectUtils.isNull(containersList)){
+					containersList = new ArrayList<>();
+				}
+
 				List<PreContainers> preContainersList = preContainersService.list(new LambdaQueryWrapper<PreContainers>()
 					.eq(PreContainers::getTenantId, AuthUtil.getTenantId())
 					.eq(PreContainers::getIsDeleted, 0)
 					.eq(PreContainers::getPid, bills.getId()));
+				if(ObjectUtils.isNull(preContainersList)){
+					preContainersList = new ArrayList<>();
+				}
+
+				PrepareBills(bills, preContainersList);
+
+//				bills.setFM(MagicValues.FM);
+				if("1".equals(bills.getCapitalLettersRule())){
+					bills.setCapitalLetters(bills.getQuantityCntrTypesDescr());
+				}else{
+					bills.setCapitalLetters("SAY " + BigDecimalUtils.convertToEnglish(bills.getQuantity()) + " " + bills.getPackingUnit() + " ONLY.");
+				}
+
+				StringBuilder text1 = new StringBuilder();
+				text1.append(bills.getQuantity()).append(System.lineSeparator());
+				text1.append(bills.getPackingUnit()).append(System.lineSeparator());
+
+				Boolean NumOfContainersOrPackagesAddPreCntrQty = RegularUtils.readJSONBooleanValue(reportParams, "NumOfContainersOrPackagesAddPreCntrQty", false);
+				if(NumOfContainersOrPackagesAddPreCntrQty==true){
+					for (PreContainers preContainers : preContainersList) {
+						text1.append(System.lineSeparator()).append(preContainers.getQuantity().toString() + "*" + preContainers.getCntrTypeCode()).append(System.lineSeparator());
+					}
+				}
+				bills.setNumOfContainersOrPackages(text1.toString().trim());
+
+				String commodityDescrFirstLine = RegularUtils.readJSONStringValue(reportParams, "commodityDescrFirstLine", "");
+				String commodityDescr = ObjectUtils.isNotNull(bills.getCommodityDescr()) ? bills.getCommodityDescr() : "";
+				if(!commodityDescrFirstLine.isEmpty()){
+					commodityDescr = commodityDescrFirstLine + "\n" + commodityDescr;
+				}
+				commodityDescr += "\n\n" + bills.getServiceTerms();
+				if(MagicValues.BILLS_DETAIL.equals(groupCode)){
+					commodityDescr += "\n\n" + ("PP".equals(bills.getHpaymode()) ? "\"FREIGHT PREPAID\"" : "\"FREIGHT COLLECT\"");
+				}else{
+					commodityDescr += "\n\n" + ("PP".equals(bills.getMpaymode()) ? "\"FREIGHT PREPAID\"" : "\"FREIGHT COLLECT\"");
+				}
+				bills.setCommodityDescr(commodityDescr);
+
+				Boolean marksAddCntrNoSealNoList = RegularUtils.readJSONBooleanValue(reportParams, "marksAddCntrNoSealNoList", false);
+				Boolean marksAddCntrPGVList = RegularUtils.readJSONBooleanValue(reportParams, "marksAddCntrPGVList", false);
+				if(marksAddCntrNoSealNoList==true){
+					String marks = ObjectUtils.isNotNull(bills.getMarks()) ? bills.getMarks() : "";
+					for (Containers item : containersList) {
+						marks += System.lineSeparator() + item.getCntrNo() + "/" + item.getSealNo();
+						if(marksAddCntrPGVList==true){
+							marks += System.lineSeparator() + item.getQuantity() + "/"
+								+ item.getGrossWeight().setScale(2, BigDecimal.ROUND_HALF_UP)
+								+ "/" + item.getMeasurement().setScale(2, BigDecimal.ROUND_HALF_UP);
+						}
+					}
+					bills.setMarks(marks);
+				}
+
+				bills.setMeasurementOfBL(bills.getMeasurement().setScale(3, BigDecimal.ROUND_HALF_UP).toString() + "\nCBM");
+				bills.setGrossWeightOfBL(bills.getGrossWeight().setScale(3, BigDecimal.ROUND_HALF_UP).toString() + "\nKGS");
+
+				String issueDate = RegularUtils.translateEngMonthDate(bills.getIssueDate());
+				bills.setIssueDateOfBL(issueDate);
+
+				bills.setVesselCnName(bills.getVesselEnName() + "/" + bills.getVoyageNo());
+				BigDecimal boxWeightSum = BigDecimal.ZERO;
 				if (!containersList.isEmpty()) {
+					String firstCntrTypeCode = containersList.get(0).getCntrTypeCode();
+					BigDecimal firstGWT = containersList.get(0).getGrossWeight();
 					boxWeightSum = boxWeightSum.add(containersList.get(0).getGrossWeight());
 					if (!preContainersList.isEmpty()) {
-						List<PreContainers> preContainers = preContainersList.stream().filter(e -> e.getCntrTypeCode().equals(containersList.get(0).getCntrTypeCode()))
+						List<PreContainers> preContainers = preContainersList.stream().filter(e -> e.getCntrTypeCode().equals(firstCntrTypeCode))
 							.collect(Collectors.toList());
 						if (!preContainers.isEmpty()) {
-							boxWeightSum = boxWeightSum.add(containersList.get(0).getGrossWeight());
+							boxWeightSum = boxWeightSum.add(firstGWT);
 						}
 					}
 				}
@@ -1793,7 +1874,7 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 						.append(item.getGrossWeight()).append(item.getPackingUnit()).append("/")
 						.append(item.getMeasurement()).append("CBM");
 					if (ObjectUtils.isNotNull(item.getCntrNo()) || ObjectUtils.isNotNull(item.getSealNo())) {
-						cntrSealNo.append(item.getCntrNo()).append("/").append(item.getSealNo()).append("  ");
+						cntrSealNo.append(item.getCntrNo()).append("/").append(item.getSealNo()).append(System.lineSeparator());
 					}
 				}
 				bills.setCntryString(text.toString());
@@ -1819,6 +1900,8 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 					String ventilation = preContainersList.stream().map(PreContainers::getVentilation).filter(Objects::nonNull).collect(Collectors.joining(","));
 					bills.setVentilation(ventilation);
 				}
+				PrepareBills(bills, preContainersList);
+
 				bills.setVesselCnName(bills.getVesselEnName() + "/" + bills.getVoyageNo());
 				bills.setDept(dept);
 				map.put(MagicValues.DATA, bills);
@@ -1837,6 +1920,48 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 			} else {
 				map.put(MagicValues.DATA, null);
 			}
+		} else if (MagicValues.DOCUMENT.equals(reportCode) && MagicValues.FREIGHT_NOTE.equals(groupCode) && (MagicValues.HYCK.equals(type) || MagicValues.HYJK.equals(type))) {
+			Bills bills = billsService.getById(billId);
+			if (bills != null) {
+				this.dictionaryConversion(bills);
+				this.assignmentSeaBillsDetail(bills);
+				// bills.setFM(MagicValues.FM);
+				bills.setVesselCnName(bills.getVesselEnName().trim() + "/" + bills.getVoyageNo());
+				bills.setDept(dept);
+
+				List<PreContainers> preContainersList = preContainersService.list(new LambdaQueryWrapper<PreContainers>()
+					.eq(PreContainers::getTenantId, AuthUtil.getTenantId())
+					.eq(PreContainers::getIsDeleted, 0)
+					.eq(PreContainers::getPid, bills.getId()));
+				PrepareBills(bills, preContainersList);
+
+				// 提取应收海运费
+				List<FeeCenter> feeCenters = feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
+					.select(FeeCenter::getId, FeeCenter::getFeeId, FeeCenter::getFeeCode, FeeCenter::getDc,
+						FeeCenter::getCurCode, FeeCenter::getAmount)
+					.eq(FeeCenter::getPid, bills.getId())
+					.eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
+					.eq(FeeCenter::getDc, "D")
+					.eq(FeeCenter::getFeeCode, "O/F")
+					.eq(FeeCenter::getCurCode, "USD")
+					.eq(FeeCenter::getIsDeleted, 0));
+
+				if(ObjectUtils.isNotNull(feeCenters)){
+					// 应收 USD 海运费
+					bills.setAmountDrUsd(feeCenters.stream().map(FeeCenter::getAmount)
+						.filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
+				}
+
+				String reserve1 = "FROM " + bills.getPolNamePrint() + " TO " + bills.getDestinationNamePrint() + "\n";
+				reserve1 += ("        THE OCEAN FREIGHT AMOUNT PAID: USD: " + bills.getAmountDrUsd().setScale(2, BigDecimal.ROUND_HALF_UP).toString());
+				bills.setReserve1(reserve1);
+
+				bills.setReserve2(RegularUtils.translateEngMonthDate(new Date()));
+
+				map.put(MagicValues.DATA, bills);
+			} else {
+				map.put(MagicValues.DATA, null);
+			}
 		} else if (MagicValues.COST.equals(reportCode) &&
 			(MagicValues.RECEIVABLE.equals(groupCode) || MagicValues.RECEIVABLE_BILL.equals(groupCode) ||
 				MagicValues.BILL_NUMBER.equals(groupCode) || MagicValues.RECEIVABLE_AMEND.equals(groupCode))
@@ -1875,7 +2000,7 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 					.eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
 					.eq(FeeCenter::getDc, MagicValues.D)
 					.eq(FeeCenter::getIsDeleted, 0)
-					.notIn(!psFeeIds.isEmpty(), FeeCenter::getFeeId, psFeeIds);
+					.notIn(!psFeeCodes.isEmpty(), FeeCenter::getFeeCode, psFeeCodes);
 				lambdaQueryWrapper.in(FeeCenter::getPid, ids);
 				if (MagicValues.RECEIVABLE_BILL.equals(groupCode)) {
 					lambdaQueryWrapper.eq(FeeCenter::getAccStatus, 1);
@@ -1966,6 +2091,9 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 					feeCenterReports.setUnitNo(item.getUnitNo());
 					feeCenterReports.setPrice(item.getPrice());
 					feeCenterReports.setMoney(item.getAmount());
+					feeCenterReports.setDc(item.getDc());
+					feeCenterReports.setCurCode("D".equals(item.getDc()) ? item.getCurCode() : "");
+					feeCenterReports.setCurCodeC("C".equals(item.getDc()) ? item.getCurCode() : "");
 					feeCenterReportsList.add(feeCenterReports);
 				}
 				if (!feeCenterList.isEmpty()) {
@@ -2008,6 +2136,22 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 					bills.setSwiftCode(bCorpsBanks.get(0).getSwiftCode());
 				}
 
+				// 提取箱号
+				List<Containers> containersList = containersService.list(new LambdaQueryWrapper<Containers>()
+					.eq(Containers::getTenantId, AuthUtil.getTenantId())
+					.eq(Containers::getIsDeleted, 0)
+					.eq(Containers::getPid, bills.getId()));
+				List<String> cntrNosCSV = new ArrayList<>();
+				if(ObjectUtils.isNotNull(containersList)){
+					for (Containers cntr : containersList) {
+						String cntrNo = ObjectUtils.isNotNull(cntr.getCntrNo()) ? cntr.getCntrNo().trim() : "";
+						if(!cntrNo.isEmpty() && !cntrNosCSV.contains(cntrNo)){
+							cntrNosCSV.add(cntrNo);
+						}
+					}
+				}
+				bills.setContainerNosCsv(cntrNosCSV.stream().collect(Collectors.joining(",")));
+
 				String status = firstFeeUser > 0 ? "1" : "0";
 				if ("1".equals(status)) {
 					R<User> resUser = userClient.userInfoById(firstFeeUser);
@@ -2071,7 +2215,7 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 					.eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
 					.eq(FeeCenter::getDc, MagicValues.C)
 					.eq(FeeCenter::getIsDeleted, 0)
-					.notIn(!psFeeIds.isEmpty(), FeeCenter::getFeeId, psFeeIds);
+					.notIn(!psFeeCodes.isEmpty(), FeeCenter::getFeeCode, psFeeCodes);
 				lambdaQueryWrapper.in(FeeCenter::getPid, ids);
 				if (ObjectUtils.isNotNull(corpIds)) {
 					lambdaQueryWrapper.eq(FeeCenter::getCorpId, corpIds);
@@ -2163,6 +2307,9 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 					feeCenterReports.setUnitNo(item.getUnitNo());
 					feeCenterReports.setPrice(item.getPrice());
 					feeCenterReports.setMoney(item.getAmount());
+					feeCenterReports.setDc(item.getDc());
+					feeCenterReports.setCurCode("D".equals(item.getDc()) ? item.getCurCode() : "");
+					feeCenterReports.setCurCodeC("C".equals(item.getDc()) ? item.getCurCode() : "");
 					feeCenterReportsList.add(feeCenterReports);
 				}
 				if (!feeCenterList.isEmpty()) {
@@ -7376,6 +7523,28 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 	 */
 	private Bills dictionaryConversion(Bills bills) {
 		if(ObjectUtils.isNotNull(bills)) {
+			bills.setReserve1("");
+			bills.setReserve2("");
+			bills.setReserve3("");
+			bills.setReserve4("");
+			bills.setReserve5("");
+			bills.setReserve6("");
+			bills.setReserve7("");
+			bills.setReserve8("");
+			bills.setReserve9("");
+			bills.setReserve10("");
+
+			if("PP".equals(bills.getHpaymode())){
+				bills.setPrepaidAt(bills.getHpayplace());
+				bills.setPayableAt("");
+			}else{
+				bills.setPrepaidAt("");
+				bills.setPayableAt(bills.getHpayplace());
+			}
+
+			String issueDate = RegularUtils.translateEngMonthDate(bills.getIssueDate());
+			bills.setIssueDateOfBL(issueDate);
+
 			bills.setCorpShortName(bills.getShortName());
 
 			bills.setSrcTypeDisplay(bills.getSrcType());
@@ -7405,4 +7574,37 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 
 		return bills;
 	}
+
+	private Bills PrepareBills(Bills bill, List<PreContainers> preContainersList){
+		if(ObjectUtils.isNotNull(bill)){
+			List<PreContainers> preCntrs = ObjectUtils.isNotNull(preContainersList) ? preContainersList : bill.getPreContainersList();
+			if(ObjectUtils.isNotNull(preCntrs)){
+				StringBuilder cntrQtys = new StringBuilder();
+				StringBuilder cntrQtyInwords = new StringBuilder();
+				BigDecimal teu = new BigDecimal("0.00");
+				for (PreContainers item : preCntrs) {
+					cntrQtys.append(item.getQuantity()).append("*").append(item.getCntrTypeCode()).append(",");
+					cntrQtyInwords.append(BigDecimalUtils.convertToEnglish(new BigDecimal(item.getQuantity() + ""))).append(" AND");
+					if (ObjectUtils.isNotNull(item.getQuantity()) && ObjectUtils.isNotNull(item.getTeu())) {
+						teu = teu.add(new BigDecimal(item.getQuantity()).multiply(item.getTeu()));
+					}
+				}
+				if (cntrQtys.length() > 0) {
+					cntrQtys = new StringBuilder(cntrQtys.substring(0, cntrQtys.length() - 1));
+					bill.setQuantityCntrDescr(cntrQtys.toString());
+				}else{
+					bill.setQuantityCntrDescr("");
+				}
+				if (cntrQtyInwords.length() > 0) {
+					cntrQtyInwords = new StringBuilder(cntrQtyInwords.substring(0, cntrQtyInwords.length() - 4));
+					cntrQtyInwords.append(" ONLY.");
+					bill.setQuantityCntrTypesDescr(cntrQtyInwords.toString());
+				}else{
+					bill.setQuantityCntrTypesDescr("");
+				}
+			}
+		}
+
+		return bill;
+	}
 }

+ 4 - 0
blade-service/blade-los/src/main/java/org/springblade/los/business/aea/service/impl/AeaBillsServiceImpl.java

@@ -945,6 +945,10 @@ public class AeaBillsServiceImpl extends ServiceImpl<AeaBillsMapper, AeaBills> i
 			Map<String, Object> map = dataProcessingUtil.profitStatus(declare.getId(), declare.getBusinessType(), feeCenterList);
 			if (ObjectUtils.isNotNull(map)) {
 				auditProecessDTO.setCustomizeTwo(map.get("profitStatusText").toString());
+				String errMsg = map.get("errorMessage").toString().trim();
+				if(!errMsg.isEmpty()){
+					throw new SecurityException(errMsg);
+				}
 			}
 			if ("AE".equals(declare.getBusinessType())) {
 				auditProecessDTO.setCustomizeThree(declare.getEtd());

+ 4 - 0
blade-service/blade-los/src/main/java/org/springblade/los/business/amends/service/impl/AmendsServiceImpl.java

@@ -375,6 +375,10 @@ public class AmendsServiceImpl extends ServiceImpl<AmendsMapper, Amends> impleme
 			Map<String, Object> map = dataProcessingUtil.profitStatus(declare.getId(), declare.getBusinessType(), feeCenterList);
 			if (ObjectUtils.isNotNull(map)) {
 				auditProecessDTO.setCustomizeTwo(map.get("profitStatusText").toString());
+				String errMsg = map.get("errorMessage").toString().trim();
+				if(!errMsg.isEmpty()){
+					throw new SecurityException(errMsg);
+				}
 			}
 			if ("AEA".equals(declare.getBusinessType()) || "SEA".equals(declare.getBusinessType())) {
 				auditProecessDTO.setCustomizeThree(declare.getEtd());

+ 4 - 0
blade-service/blade-los/src/main/java/org/springblade/los/business/customsDeclaration/service/impl/CustomsDeclarationServiceImpl.java

@@ -443,6 +443,10 @@ public class CustomsDeclarationServiceImpl extends ServiceImpl<CustomsDeclaratio
 			Map<String, Object> map = dataProcessingUtil.profitStatus(declare.getId(), declare.getBusinessType(), feeCenterList);
 			if (ObjectUtils.isNotNull(map)) {
 				auditProecessDTO.setCustomizeTwo(map.get("profitStatusText").toString());
+				String errMsg = map.get("errorMessage").toString().trim();
+				if(!errMsg.isEmpty()){
+					throw new SecurityException(errMsg);
+				}
 			}
 			if ("BGSE".equals(declare.getBusinessType())) {
 				if (ObjectUtils.isNotNull(declare.getDeclareDate())) {

+ 4 - 0
blade-service/blade-los/src/main/java/org/springblade/los/business/generalBill/service/impl/GeneralBillServiceImpl.java

@@ -409,6 +409,10 @@ public class GeneralBillServiceImpl extends ServiceImpl<GeneralBillMapper, Gener
 			Map<String,Object> map = dataProcessingUtil.profitStatus(declare.getId(), declare.getBusinessType(),feeCenterList);
 			if (ObjectUtils.isNotNull(map)){
 				auditProecessDTO.setCustomizeTwo(map.get("profitStatusText").toString());
+				String errMsg = map.get("errorMessage").toString().trim();
+				if(!errMsg.isEmpty()){
+					throw new SecurityException(errMsg);
+				}
 			}
 			R financeProcess = auditProecessService.createFinanceProcess(auditProecessDTO);
 			if (!financeProcess.isSuccess()) {

+ 15 - 4
blade-service/blade-los/src/main/java/org/springblade/los/business/sea/controller/BillsController.java

@@ -54,6 +54,7 @@ import org.springframework.web.bind.annotation.*;
 import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Comparator;
 import java.util.List;
 import java.util.stream.Collectors;
@@ -986,16 +987,26 @@ public class BillsController extends BladeController {
 	@RepeatSubmit
 	public R<IPage<Bills>> getBillsAndFee(Bills bills, Query query) {
 		LambdaQueryWrapper<Bills> lambdaQueryWrapper = new LambdaQueryWrapper<>();
-		lambdaQueryWrapper.select(Bills::getId, Bills::getBillNo, Bills::getVesselCnName,
+		lambdaQueryWrapper.select(Bills::getId, Bills::getCorpId, Bills::getShortName,
+			Bills::getCorpCnName, Bills::getCorpEnName, Bills::getBillNo, Bills::getVesselCnName,
 			Bills::getVoyageNo, Bills::getMblno, Bills::getHblno, Bills::getEta, Bills::getEtd,
 			Bills::getPolEnName, Bills::getPodEnName,  Bills::getCarrierCnName, Bills::getPodCnName, Bills::getPolCnName,
 			Bills::getVesselEnName, Bills::getCarrierShortName, Bills::getCarrierEnName, Bills::getCyShortName,
-			Bills::getShortName, Bills::getPlaceDeliveryName, Bills::getDestinationName,Bills::getQuantityCntrDescr);
+			Bills::getPlaceDeliveryName, Bills::getDestinationName,Bills::getQuantityCntrDescr);
+
+		// String defTeamId = ObjectUtils.isNotNull(AuthUtil.getPostId()) ? AuthUtil.getPostId().split(",")[0] : "";
+
 		lambdaQueryWrapper.eq(Bills::getIsDeleted, 0)
 			.eq(Bills::getTenantId, AuthUtil.getTenantId())
-			.like(ObjectUtils.isNotNull(bills.getMblno()), Bills::getMblno, bills.getMblno())
-			.apply(ObjectUtils.isNotNull(bills.getCreateDeptName()), "find_in_set('" + bills.getCreateDeptName() + "',create_dept_name)");
+			.eq(Bills::getBranchId, deptUtils.getDeptPid())
+			// 必须是同一团队的业务
+			// .eq(Bills::getTeamId, defTeamId)
+			.apply("find_in_set(team_id,'" + AuthUtil.getPostId() + "')")
+			.in(Bills::getBillType, Arrays.asList("DD", "MM"))
+			.like(ObjectUtils.isNotNull(bills.getMblno()), Bills::getMblno, bills.getMblno());
+			// .apply(ObjectUtils.isNotNull(bills.getCreateDeptName()), "find_in_set('" + bills.getCreateDeptName() + "',create_dept_name)");
 		String jurisdiction = sysClient.getParamService("data.jurisdiction");
+		jurisdiction = "2";
 		if ("1".equals(jurisdiction)) {
 			lambdaQueryWrapper.eq(ObjectUtils.isNotNull(bills.getSrcType()), Bills::getSrcType, bills.getSrcType())
 				.and(ObjectUtils.isNotNull(bills.getSrcCnName()), i -> i.like(Bills::getSrcCnName, bills.getSrcCnName()).or()

+ 176 - 147
blade-service/blade-los/src/main/java/org/springblade/los/business/sea/service/impl/BillsServiceImpl.java

@@ -593,7 +593,7 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 					} else {
 						other += item.getQuantity();
 					}
-					boxTypeSum.append(item.getCntrTypeCode()).append("*").append(item.getQuantity()).append(",");
+					boxTypeSum.append(item.getQuantity()).append("*").append(item.getCntrTypeCode()).append(",");
 					quantityCntrTypesDescr.append(BigDecimalUtils.convertToEnglish(new BigDecimal(item.getQuantity() + ""))).append(" AND");
 					if (ObjectUtils.isNotNull(item.getQuantity()) && ObjectUtils.isNotNull(item.getTeu())) {
 						teu = teu.add(new BigDecimal(item.getQuantity()).multiply(item.getTeu()));
@@ -602,7 +602,7 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 
 				if (quantityCntrTypesDescr.length() > 0) {
 					quantityCntrTypesDescr = new StringBuilder(quantityCntrTypesDescr.substring(0, quantityCntrTypesDescr.length() - 4));
-					quantityCntrTypesDescr.append("ONLY.");
+					quantityCntrTypesDescr.append(" ONLY.");
 					bills.setQuantityCntrTypesDescr(quantityCntrTypesDescr.toString());
 				}
 				preContainersService.saveOrUpdateBatch(bills.getPreContainersList());
@@ -1606,6 +1606,10 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 			Map<String, Object> map = dataProcessingUtil.profitStatus(declare.getId(), declare.getBusinessType(), feeCenterList);
 			if (ObjectUtils.isNotNull(map)) {
 				auditProecessDTO.setCustomizeTwo(map.get("profitStatusText").toString());
+				String errMsg = map.get("errorMessage").toString().trim();
+				if(!errMsg.isEmpty()){
+					throw new SecurityException(errMsg);
+				}
 			}
 			if ("SE".equals(declare.getBusinessType())) {
 				auditProecessDTO.setCustomizeThree(declare.getEtd());
@@ -2934,7 +2938,7 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 				} else {
 					other += item.getQuantity();
 				}
-				boxTypeSum.append(item.getCntrTypeCode()).append("*").append(item.getQuantity()).append(",");
+				boxTypeSum.append(item.getQuantity()).append("*").append(item.getCntrTypeCode()).append(",");
 				if (ObjectUtils.isNotNull(item.getQuantity()) && ObjectUtils.isNotNull(item.getTeu())) {
 					teu = teu.add(new BigDecimal(item.getQuantity()).multiply(item.getTeu()));
 				}
@@ -4308,6 +4312,10 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 				Map<String, Object> map = dataProcessingUtil.profitStatus(declare.getId(), declare.getBusinessType(), feeCenterList);
 				if (ObjectUtils.isNotNull(map)) {
 					auditProecessDTO.setCustomizeTwo(map.get("profitStatusText").toString());
+					String errMsg = map.get("errorMessage").toString().trim();
+					if(!errMsg.isEmpty()){
+						throw new SecurityException(errMsg);
+					}
 				}
 				if ("SE".equals(declare.getBusinessType())) {
 					auditProecessDTO.setCustomizeThree(declare.getEtd());
@@ -4407,6 +4415,15 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 		Bills copyBills = new Bills();
 		copyBills.setDetail(seaBillsDetail);
 		copyBills.setSeaType(detail.getSeaType());
+		copyBills.setMasterId(detail.getId());
+		copyBills.setMasterBillNo(detail.getBillNo());
+		copyBills.setTeamId(detail.getTeamId());
+		copyBills.setTeamName(detail.getTeamName());
+		copyBills.setHpaymode(detail.getHpaymode());
+		copyBills.setMpaymode(detail.getMpaymode());
+		copyBills.setPackingUnit(detail.getPackingUnit());
+		copyBills.setPackingUnitId(detail.getPackingUnitId());
+		copyBills.setIssueType(detail.getIssueType());
 		copyBills.setBusinessType(detail.getBusinessType());
 		copyBills.setBillType("MH");
 		copyBills.setPreContainersList(preContainersList);
@@ -4540,164 +4557,176 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 			.in(FeeCenter::getPid, idList));
 		List<FeeCenter> feeCenters = new ArrayList<>();
 		for (Bills item : billsList) {
+			Boolean canCopy = true;
+			if(!item.getCorpId().equals(bills.getCorpId())){
+				canCopy = false;
+				item.setRemark("客户不一致!");
+			}
+
 			List<FeeCenter> feeItemList = new ArrayList<>();
 			List<FeeCenter> feeItemListOld = new ArrayList<>();
-			if (!feeCenterList.isEmpty()) {
+			if (canCopy && !feeCenterList.isEmpty()) {
 				feeItemList = feeCenterList.stream().filter(e -> e.getPid().equals(item.getId()))
 					.collect(Collectors.toList());
 			}
+
 			if (feeItemList.isEmpty()) {
 				feeItemListOld = bills.getFeeCenterListAll();
 			} else {
-				List<String> feeCodeList = feeItemList.stream().map(FeeCenter::getFeeCode).distinct().collect(Collectors.toList());
-				List<FeeCenter> feeCenters1 = bills.getFeeCenterListAll().stream().filter(e -> !feeCodeList.contains(e.getFeeCode()))
-					.collect(Collectors.toList());
-				if (!feeCenters1.isEmpty()) {
-					feeItemListOld = feeCenters1;
-				}
+				// List<String> feeCodeList = feeItemList.stream().map(FeeCenter::getFeeCode).distinct().collect(Collectors.toList());
+				// List<FeeCenter> feeCenters1 = bills.getFeeCenterListAll().stream().filter(e -> !feeCodeList.contains(e.getFeeCode()))
+				// 	.collect(Collectors.toList());
+				// if (!feeCenters1.isEmpty()) {
+				// 	feeItemListOld = feeCenters1;
+				// }
+				canCopy = false;
+				item.setRemark("已存在费用,不允许复制!");
 			}
-			for (FeeCenter feeCenter : feeItemListOld) {
-				feeCenter.setAccountDate(null);
-				feeCenter.setAccBillId(null);
-				feeCenter.setAccBillNo("");
-				feeCenter.setAccDate(null);
-				feeCenter.setAccStatus(0);
-				feeCenter.setAccById(0L);
-				feeCenter.setAccByName("");
-				feeCenter.setCheckBillId(0L);
-				feeCenter.setCheckBillNo("");
-				feeCenter.setCheckDate(null);
-				feeCenter.setCheckAmount(new BigDecimal("0.00"));
-				feeCenter.setCheckStatus(0);
-				feeCenter.setCheckById(0L);
-				feeCenter.setCheckByName("");
-				feeCenter.setStlBillId(0L);
-				feeCenter.setStlBillNo("");
-				feeCenter.setStlDate(null);
-				feeCenter.setStlOrgAmount(new BigDecimal("0.00"));
-				feeCenter.setStlCurCode("");
-				feeCenter.setStlExrate(new BigDecimal("0.00"));
-				feeCenter.setStlExrateLoc(new BigDecimal("0.00"));
-				feeCenter.setStlAmount(new BigDecimal("0.00"));
-				feeCenter.setStlAmountLoc(new BigDecimal("0.00"));
-				feeCenter.setStlStatus(0);
-				feeCenter.setStlById(0L);
-				feeCenter.setStlByName("");
-				feeCenter.setStlTtlAmount(new BigDecimal("0.00"));
-				feeCenter.setVoucherBillId(0L);
-				feeCenter.setVoucherBillNo("");
-				feeCenter.setVoucherNo("");
-				feeCenter.setVoucherDate(null);
-				feeCenter.setVoucherStatus(0);
-				feeCenter.setVoucherById(0L);
-				feeCenter.setVoucherByName("");
-				feeCenter.setInvoiceBillId("");
-				feeCenter.setInvoiceBillNo("");
-				feeCenter.setInvoiceNo("");
-				feeCenter.setInvoiceDate(null);
-				feeCenter.setInvoiceStatus(0);
-				feeCenter.setInvoiceCurCode("");
-				feeCenter.setInvoiceExrate(new BigDecimal("0.00"));
-				feeCenter.setInvoiceAmount(new BigDecimal("0.00"));
-				feeCenter.setInvoiceAmountLoc(new BigDecimal("0.00"));
-				feeCenter.setUninvoicedAmount(new BigDecimal("0.00"));
-				feeCenter.setAppliedAmount(new BigDecimal("0.00"));
-				feeCenter.setAppliedInvoiceAmount(new BigDecimal("0.00"));
-				feeCenter.setReconciliationAmount(new BigDecimal("0.00"));
-				feeCenter.setAppliedAmountStl(new BigDecimal("0.00"));
-				feeCenter.setAppliedInvoiceAmountStl(new BigDecimal("0.00"));
-				feeCenter.setInvoiceById(0L);
-				feeCenter.setInvoiceByName("");
-				feeCenter.setIsSignfor(0);
-				feeCenter.setSignforId(0);
-				feeCenter.setSignforName("");
-				feeCenter.setSignforDate(null);
-				feeCenter.setApplyId(0L);
-				feeCenter.setApplyName("");
-				feeCenter.setApplyTime(null);
-				feeCenter.setApproverId(0L);
-				feeCenter.setApproverName("");
-				feeCenter.setApproveTime(null);
-				feeCenter.setAuditStatus("0");
-				feeCenter.setId(null);
-				feeCenter.setPid(item.getId());
-				feeCenter.setBillNo(item.getBillNo());
-				feeCenter.setBusinessType(item.getBusinessType());
-				feeCenter.setBillType(item.getBillType());
-				feeCenter.setBillDate(item.getBillDate());
-				feeCenter.setSrcType(item.getSrcType());
-				feeCenter.setSrcId(item.getSrcId());
-				feeCenter.setSrcCnName(item.getSrcCnName());
-				feeCenter.setSrcEnName(item.getSrcEnName());
-				feeCenter.setBillCorpId(item.getCorpId());
-				feeCenter.setBillCorpCnName(item.getCorpCnName());
-				feeCenter.setBillCorpEnName(item.getCorpEnName());
-				feeCenter.setBillShortName(item.getShortName());
-				feeCenter.setLineId(item.getLineId());
-				feeCenter.setLineCnName(item.getLineCnName());
-				feeCenter.setLineEnName(item.getLineEnName());
-				feeCenter.setVesselId(item.getVesselId());
-				feeCenter.setVesselEnName(item.getVesselEnName());
-				feeCenter.setVesselCnName(item.getVesselCnName());
-				feeCenter.setVoyageNo(item.getVoyageNo());
-				feeCenter.setMblno(item.getMblno());
-				feeCenter.setHblno(item.getHblno());
-				feeCenter.setEtd(item.getEtd());
-				feeCenter.setEta(item.getEta());
-				feeCenter.setPolId(item.getPolId());
-				feeCenter.setPolCode(item.getPolCode());
-				feeCenter.setPolCnName(item.getPolCnName());
-				feeCenter.setPolEnName(item.getPolEnName());
-				feeCenter.setPodId(item.getPodId());
-				feeCenter.setPodCode(item.getPodCode());
-				feeCenter.setPodCnName(item.getPodCnName());
-				feeCenter.setPodEnName(item.getPodEnName());
-				feeCenter.setPaymode(item.getMpaymode());
-				feeCenter.setPayplace(item.getMpayplace());
-				feeCenter.setRefno(item.getRefno());
-				feeCenter.setBookingNo(item.getBookingNo());
-				if (!preContainersList.isEmpty()) {
-					PreContainers preContainers = preContainersList.stream().filter(e -> e.getCntrTypeCode().equals(feeCenter.getUnitNo()))
-						.findFirst().orElse(null);
-					if (preContainers != null) {
-						feeCenter.setQuantity(new BigDecimal(preContainers.getQuantity() + ""));
-						// 去税金额 = 数量quantity * 单价price
-						BigDecimal amountNet = new BigDecimal("0.00");
-						// 税额 = 去税金额amountNet * 税率taxRateSum
-						BigDecimal amountTax = new BigDecimal("0.00");
-						// 金额,amountTax + 去税金额amountNet - 折扣金额amountDiscount
-						BigDecimal amount = new BigDecimal("0.00");
-						//总税率  = 税率taxRate + 附加税率surchargeRate
-						BigDecimal taxRate = new BigDecimal("0.00");
-						// 税率 = 总税率/100
-						BigDecimal taxRateSum = new BigDecimal("0.00");
 
-						amountNet = amountNet.add(feeCenter.getQuantity().multiply(feeCenter.getPrice()))
-							.setScale(2, RoundingMode.HALF_UP);
-						taxRate = taxRate.add(feeCenter.getTaxRate()).add(feeCenter.getSurchargeRate());
-						taxRateSum = taxRateSum.add(taxRate.divide(new BigDecimal("100"), 2, RoundingMode.HALF_UP));
-						amountTax = amountTax.add(amountNet.multiply(taxRateSum)).setScale(2, RoundingMode.HALF_UP);
-						amount = amount.add(amountNet.add(amountTax).subtract(feeCenter.getAmountDiscount()));
+			if(canCopy) {
+				for (FeeCenter feeCenter : feeItemListOld) {
+					feeCenter.setAccountDate(null);
+					feeCenter.setAccBillId(null);
+					feeCenter.setAccBillNo("");
+					feeCenter.setAccDate(null);
+					feeCenter.setAccStatus(0);
+					feeCenter.setAccById(0L);
+					feeCenter.setAccByName("");
+					feeCenter.setCheckBillId(0L);
+					feeCenter.setCheckBillNo("");
+					feeCenter.setCheckDate(null);
+					feeCenter.setCheckAmount(new BigDecimal("0.00"));
+					feeCenter.setCheckStatus(0);
+					feeCenter.setCheckById(0L);
+					feeCenter.setCheckByName("");
+					feeCenter.setStlBillId(0L);
+					feeCenter.setStlBillNo("");
+					feeCenter.setStlDate(null);
+					feeCenter.setStlOrgAmount(new BigDecimal("0.00"));
+					feeCenter.setStlCurCode("");
+					feeCenter.setStlExrate(new BigDecimal("0.00"));
+					feeCenter.setStlExrateLoc(new BigDecimal("0.00"));
+					feeCenter.setStlAmount(new BigDecimal("0.00"));
+					feeCenter.setStlAmountLoc(new BigDecimal("0.00"));
+					feeCenter.setStlStatus(0);
+					feeCenter.setStlById(0L);
+					feeCenter.setStlByName("");
+					feeCenter.setStlTtlAmount(new BigDecimal("0.00"));
+					feeCenter.setVoucherBillId(0L);
+					feeCenter.setVoucherBillNo("");
+					feeCenter.setVoucherNo("");
+					feeCenter.setVoucherDate(null);
+					feeCenter.setVoucherStatus(0);
+					feeCenter.setVoucherById(0L);
+					feeCenter.setVoucherByName("");
+					feeCenter.setInvoiceBillId("");
+					feeCenter.setInvoiceBillNo("");
+					feeCenter.setInvoiceNo("");
+					feeCenter.setInvoiceDate(null);
+					feeCenter.setInvoiceStatus(0);
+					feeCenter.setInvoiceCurCode("");
+					feeCenter.setInvoiceExrate(new BigDecimal("0.00"));
+					feeCenter.setInvoiceAmount(new BigDecimal("0.00"));
+					feeCenter.setInvoiceAmountLoc(new BigDecimal("0.00"));
+					feeCenter.setUninvoicedAmount(new BigDecimal("0.00"));
+					feeCenter.setAppliedAmount(new BigDecimal("0.00"));
+					feeCenter.setAppliedInvoiceAmount(new BigDecimal("0.00"));
+					feeCenter.setReconciliationAmount(new BigDecimal("0.00"));
+					feeCenter.setAppliedAmountStl(new BigDecimal("0.00"));
+					feeCenter.setAppliedInvoiceAmountStl(new BigDecimal("0.00"));
+					feeCenter.setInvoiceById(0L);
+					feeCenter.setInvoiceByName("");
+					feeCenter.setIsSignfor(0);
+					feeCenter.setSignforId(0);
+					feeCenter.setSignforName("");
+					feeCenter.setSignforDate(null);
+					feeCenter.setApplyId(0L);
+					feeCenter.setApplyName("");
+					feeCenter.setApplyTime(null);
+					feeCenter.setApproverId(0L);
+					feeCenter.setApproverName("");
+					feeCenter.setApproveTime(null);
+					feeCenter.setAuditStatus("0");
+					feeCenter.setId(null);
+					feeCenter.setPid(item.getId());
+					feeCenter.setBillNo(item.getBillNo());
+					feeCenter.setBusinessType(item.getBusinessType());
+					feeCenter.setBillType(item.getBillType());
+					feeCenter.setBillDate(item.getBillDate());
+					feeCenter.setSrcType(item.getSrcType());
+					feeCenter.setSrcId(item.getSrcId());
+					feeCenter.setSrcCnName(item.getSrcCnName());
+					feeCenter.setSrcEnName(item.getSrcEnName());
+					feeCenter.setBillCorpId(item.getCorpId());
+					feeCenter.setBillCorpCnName(item.getCorpCnName());
+					feeCenter.setBillCorpEnName(item.getCorpEnName());
+					feeCenter.setBillShortName(item.getShortName());
+					feeCenter.setLineId(item.getLineId());
+					feeCenter.setLineCnName(item.getLineCnName());
+					feeCenter.setLineEnName(item.getLineEnName());
+					feeCenter.setVesselId(item.getVesselId());
+					feeCenter.setVesselEnName(item.getVesselEnName());
+					feeCenter.setVesselCnName(item.getVesselCnName());
+					feeCenter.setVoyageNo(item.getVoyageNo());
+					feeCenter.setMblno(item.getMblno());
+					feeCenter.setHblno(item.getHblno());
+					feeCenter.setEtd(item.getEtd());
+					feeCenter.setEta(item.getEta());
+					feeCenter.setPolId(item.getPolId());
+					feeCenter.setPolCode(item.getPolCode());
+					feeCenter.setPolCnName(item.getPolCnName());
+					feeCenter.setPolEnName(item.getPolEnName());
+					feeCenter.setPodId(item.getPodId());
+					feeCenter.setPodCode(item.getPodCode());
+					feeCenter.setPodCnName(item.getPodCnName());
+					feeCenter.setPodEnName(item.getPodEnName());
+					feeCenter.setPaymode(item.getMpaymode());
+					feeCenter.setPayplace(item.getMpayplace());
+					feeCenter.setRefno(item.getRefno());
+					feeCenter.setBookingNo(item.getBookingNo());
+					if (!preContainersList.isEmpty()) {
+						PreContainers preContainers = preContainersList.stream().filter(e -> e.getCntrTypeCode().equals(feeCenter.getUnitNo()))
+							.findFirst().orElse(null);
+						if (preContainers != null) {
+							feeCenter.setQuantity(new BigDecimal(preContainers.getQuantity() + ""));
+							// 去税金额 = 数量quantity * 单价price
+							BigDecimal amountNet = new BigDecimal("0.00");
+							// 税额 = 去税金额amountNet * 税率taxRateSum
+							BigDecimal amountTax = new BigDecimal("0.00");
+							// 金额,amountTax + 去税金额amountNet - 折扣金额amountDiscount
+							BigDecimal amount = new BigDecimal("0.00");
+							//总税率  = 税率taxRate + 附加税率surchargeRate
+							BigDecimal taxRate = new BigDecimal("0.00");
+							// 税率 = 总税率/100
+							BigDecimal taxRateSum = new BigDecimal("0.00");
 
-						//判断是否是本位币
-						if ("CNY".equals(feeCenter.getCurCode())) {
-							feeCenter.setAmountNetLoc(amountNet);
-							feeCenter.setAmountTaxLoc(amountTax);
-							feeCenter.setAmountLoc(amount);
-							feeCenter.setAmountDiscountLoc(amount);
-						} else {
-							feeCenter.setAmountNetLoc(feeCenter.getExrate().multiply(amountNet));
-							feeCenter.setAmountTaxLoc(feeCenter.getExrate().multiply(amountTax));
-							feeCenter.setAmountLoc(feeCenter.getExrate().multiply(amount));
-							feeCenter.setAmountDiscountLoc(feeCenter.getExrate().multiply(amount));
+							amountNet = amountNet.add(feeCenter.getQuantity().multiply(feeCenter.getPrice()))
+								.setScale(2, RoundingMode.HALF_UP);
+							taxRate = taxRate.add(feeCenter.getTaxRate()).add(feeCenter.getSurchargeRate());
+							taxRateSum = taxRateSum.add(taxRate.divide(new BigDecimal("100"), 2, RoundingMode.HALF_UP));
+							amountTax = amountTax.add(amountNet.multiply(taxRateSum)).setScale(2, RoundingMode.HALF_UP);
+							amount = amount.add(amountNet.add(amountTax).subtract(feeCenter.getAmountDiscount()));
+
+							//判断是否是本位币
+							if ("CNY".equals(feeCenter.getCurCode())) {
+								feeCenter.setAmountNetLoc(amountNet);
+								feeCenter.setAmountTaxLoc(amountTax);
+								feeCenter.setAmountLoc(amount);
+								feeCenter.setAmountDiscountLoc(amount);
+							} else {
+								feeCenter.setAmountNetLoc(feeCenter.getExrate().multiply(amountNet));
+								feeCenter.setAmountTaxLoc(feeCenter.getExrate().multiply(amountTax));
+								feeCenter.setAmountLoc(feeCenter.getExrate().multiply(amount));
+								feeCenter.setAmountDiscountLoc(feeCenter.getExrate().multiply(amount));
+							}
+							feeCenter.setAmountNet(amountNet);
+							feeCenter.setAmountTax(amountTax);
+							feeCenter.setAmount(amount);
 						}
-						feeCenter.setAmountNet(amountNet);
-						feeCenter.setAmountTax(amountTax);
-						feeCenter.setAmount(amount);
 					}
+					feeCenter.setUnsettledAmount(feeCenter.getAmount());
+					feeCenters.add(feeCenter);
 				}
-				feeCenter.setUnsettledAmount(feeCenter.getAmount());
-				feeCenters.add(feeCenter);
 			}
 		}
 		if (!feeCenters.isEmpty()) {

+ 34 - 1
blade-service/blade-los/src/main/java/org/springblade/los/business/sea/service/impl/DataProcessingImplService.java

@@ -130,6 +130,18 @@ public class DataProcessingImplService implements IDataProcessingService {
 			throw new RuntimeException("请核的业务 id 不存在");
 		}
 
+		List<Bills> billsList = new ArrayList<>();
+		billsList.add(bill);
+		if("MM".equals(bill.getBillType())){
+			List<Bills> billsList1 = billsMapper.selectList(new LambdaQueryWrapper<Bills>()
+				.select(Bills::getId, Bills::getQuotationMethod, Bills::getCorpId, Bills::getCarrierId,
+					Bills::getHpaymode, Bills::getMpaymode, Bills::getBillType, Bills::getHblno)
+				.eq(Bills::getTenantId, AuthUtil.getTenantId())
+				.eq(Bills::getIsDeleted, 0)
+				.eq(Bills::getMasterId, bill.getId()));
+			billsList.addAll(billsList1);
+		}
+
 		// 费用名称
 		// 1722822288795000833	O/F		海运费	145
 		// 1722823384343011329	P/S		P/S		220
@@ -165,12 +177,19 @@ public class DataProcessingImplService implements IDataProcessingService {
 		BigDecimal psProfit = new BigDecimal(BigInteger.ZERO);
 		BigDecimal psInAmtProfit = new BigDecimal(BigInteger.ZERO);
 
+		StringBuilder errMsg = new StringBuilder();
+
 		// 特殊ps客户 Id
 		Long specPSCorpId = 0L;
 		// 高收退费客户 Id
 		Long hpsCorpId = 0L;
 
-		for (FeeCenter fee : feeCenterList) {
+		List<Long> idList = billsList.stream().map(Bills::getId).collect(Collectors.toList());
+		List<Long> corpIdList = billsList.stream().map(Bills::getCorpId).collect(Collectors.toList());
+		List<Long> carrierIdList = billsList.stream().map(Bills::getCarrierId).collect(Collectors.toList());
+
+		List<FeeCenter> fcList = feeCenterList.stream().filter(e->idList.contains(e.getId())).collect(Collectors.toList());
+		for (FeeCenter fee : fcList) {
 			if (specPSCorpId == 0 && ObjectUtils.isNotNull(fee.getCorpId())) {
 				if (specPScorpIds.indexOf("," + fee.getCorpId().toString() + ",") >= 0) {
 					specPSCorpId = fee.getCorpId();
@@ -215,6 +234,15 @@ public class DataProcessingImplService implements IDataProcessingService {
 					specInAmtProfit = specInAmtProfit.subtract(amt);
 				}
 			}
+
+			// W0
+			Long feeCorpId = fee.getCorpId();
+			Long billId = fee.getPid();
+			Long corpId = corpIdList.get(idList.indexOf(billId));
+			Long carrierId = carrierIdList.get(idList.indexOf(billId));
+			if(!feeCorpId.equals(corpId) && !feeCorpId.equals(carrierId)){
+				// int bc = bCorpsService.count();
+			}
 		}
 
 		// 提取客户 PsRate
@@ -364,6 +392,9 @@ public class DataProcessingImplService implements IDataProcessingService {
 				}
 				sumLocCr = sumLocCr.add(fee.getAmountLoc()).setScale(2, BigDecimal.ROUND_HALF_UP);
 			}
+
+			// W 号检测
+
 		}
 
 
@@ -435,6 +466,8 @@ public class DataProcessingImplService implements IDataProcessingService {
 				R.put("profitStatusEnText", "");
 		}
 
+		R.put("errorMessage", errMsg.toString().trim());
+
 		return R;
 	}
 

+ 1 - 1
blade-service/blade-los/src/main/java/org/springblade/los/business/sea/service/impl/MscZipImportImpl.java

@@ -1161,7 +1161,7 @@ public class MscZipImportImpl extends ServiceImpl<BillsMapper, Bills> implements
 					String quantityCntrTypesDescr = "";
 					for (PreContainers preContainer : preContainers) {
 						quantityCntrTypesDescr += (quantityCntrTypesDescr.isEmpty() ? "" : " AND ") + BigDecimalUtils.convertToEnglish(new BigDecimal(preContainer.getQuantity() + ""));
-						boxTypeSum.append(preContainer.getCntrTypeCode()).append("*").append(preContainer.getQuantity()).append(",");
+						boxTypeSum.append(preContainer.getQuantity()).append("*").append(preContainer.getCntrTypeCode()).append(",");
 						teu = teu.add(new BigDecimal(preContainer.getQuantity()).multiply(preContainer.getTeu()));
 					}
 					if (boxTypeSum.length() > 0) {

+ 11 - 11
blade-service/blade-los/src/main/java/org/springblade/los/finance/fee/service/impl/FeeCenterServiceImpl.java

@@ -1088,9 +1088,9 @@ public class FeeCenterServiceImpl extends ServiceImpl<FeeCenterMapper, FeeCenter
 
 	@Override
 	public List<FinAccBills> getFeeCenterCorpIds(Long billId, String dc, String type, String accBillNo) {
-		List<Long> psFeeIds = new ArrayList<>();
-		psFeeIds.add(220L);
-		psFeeIds.add(623L);
+		List<String> psFeeCodes = new ArrayList<>();
+		psFeeCodes.add("P/S");
+		psFeeCodes.add("HP/S");
 
 		List<FinAccBills> accBills = null;
 
@@ -1102,7 +1102,7 @@ public class FeeCenterServiceImpl extends ServiceImpl<FeeCenterMapper, FeeCenter
 				.eq(FeeCenter::getAccStatus, 1)
 				.eq(FeeCenter::getPid, billId)
 				.eq(FeeCenter::getDc, dc)
-				.notIn(!psFeeIds.isEmpty(), FeeCenter::getFeeId, psFeeIds)
+				.notIn(!psFeeCodes.isEmpty(), FeeCenter::getFeeCode, psFeeCodes)
 			);
 			/*
 			List<BCorps> bCorpsList = new ArrayList<>();
@@ -1197,7 +1197,7 @@ public class FeeCenterServiceImpl extends ServiceImpl<FeeCenterMapper, FeeCenter
 								.eq(FeeCenter::getIsDeleted, 0)
 								.eq(FeeCenter::getDc, dc)
 								.in(FeeCenter::getPid, billIds)
-								.notIn(!psFeeIds.isEmpty(), FeeCenter::getFeeId, psFeeIds)
+								.notIn(!psFeeCodes.isEmpty(), FeeCenter::getFeeCode, psFeeCodes)
 							);
 							if (!feeCenterList.isEmpty()) {
 								corpIds = feeCenterList.stream().map(FeeCenter::getCorpId).filter(Objects::nonNull).distinct().collect(Collectors.toList());
@@ -1209,7 +1209,7 @@ public class FeeCenterServiceImpl extends ServiceImpl<FeeCenterMapper, FeeCenter
 						.eq(FeeCenter::getIsDeleted, 0)
 						.eq(FeeCenter::getDc, dc)
 						.eq(FeeCenter::getPid, billId)
-						.notIn(!psFeeIds.isEmpty(), FeeCenter::getFeeId, psFeeIds)
+						.notIn(!psFeeCodes.isEmpty(), FeeCenter::getFeeCode, psFeeCodes)
 					);
 					if (!feeCenterList.isEmpty()) {
 						corpIds = feeCenterList.stream().map(FeeCenter::getCorpId).filter(Objects::nonNull).distinct().collect(Collectors.toList());
@@ -1238,7 +1238,7 @@ public class FeeCenterServiceImpl extends ServiceImpl<FeeCenterMapper, FeeCenter
 								.eq(FeeCenter::getIsDeleted, 0)
 								.eq(FeeCenter::getDc, dc)
 								.in(FeeCenter::getPid, billIds)
-								.notIn(!psFeeIds.isEmpty(), FeeCenter::getFeeId, psFeeIds)
+								.notIn(!psFeeCodes.isEmpty(), FeeCenter::getFeeCode, psFeeCodes)
 							);
 							if (!feeCenterList.isEmpty()) {
 								corpIds = feeCenterList.stream().map(FeeCenter::getCorpId).filter(Objects::nonNull).distinct().collect(Collectors.toList());
@@ -1250,7 +1250,7 @@ public class FeeCenterServiceImpl extends ServiceImpl<FeeCenterMapper, FeeCenter
 						.eq(FeeCenter::getIsDeleted, 0)
 						.eq(FeeCenter::getDc, dc)
 						.eq(FeeCenter::getPid, billId)
-						.notIn(!psFeeIds.isEmpty(), FeeCenter::getFeeId, psFeeIds)
+						.notIn(!psFeeCodes.isEmpty(), FeeCenter::getFeeCode, psFeeCodes)
 					);
 					if (!feeCenterList.isEmpty()) {
 						corpIds = feeCenterList.stream().map(FeeCenter::getCorpId).filter(Objects::nonNull).distinct().collect(Collectors.toList());
@@ -1264,7 +1264,7 @@ public class FeeCenterServiceImpl extends ServiceImpl<FeeCenterMapper, FeeCenter
 						.eq(FeeCenter::getIsDeleted, 0)
 						.eq(FeeCenter::getDc, dc)
 						.eq(FeeCenter::getPid, billId)
-						.notIn(!psFeeIds.isEmpty(), FeeCenter::getFeeId, psFeeIds)
+						.notIn(!psFeeCodes.isEmpty(), FeeCenter::getFeeCode, psFeeCodes)
 					);
 					if (!feeCenterList.isEmpty()) {
 						corpIds = feeCenterList.stream().map(FeeCenter::getCorpId).filter(Objects::nonNull).distinct().collect(Collectors.toList());
@@ -1278,7 +1278,7 @@ public class FeeCenterServiceImpl extends ServiceImpl<FeeCenterMapper, FeeCenter
 						.eq(FeeCenter::getIsDeleted, 0)
 						.eq(FeeCenter::getDc, dc)
 						.eq(FeeCenter::getPid, billId)
-						.notIn(!psFeeIds.isEmpty(), FeeCenter::getFeeId, psFeeIds)
+						.notIn(!psFeeCodes.isEmpty(), FeeCenter::getFeeCode, psFeeCodes)
 					);
 					if (!feeCenterList.isEmpty()) {
 						corpIds = feeCenterList.stream().map(FeeCenter::getCorpId).filter(Objects::nonNull).distinct().collect(Collectors.toList());
@@ -1292,7 +1292,7 @@ public class FeeCenterServiceImpl extends ServiceImpl<FeeCenterMapper, FeeCenter
 						.eq(FeeCenter::getIsDeleted, 0)
 						.eq(FeeCenter::getDc, dc)
 						.eq(FeeCenter::getPid, billId)
-						.notIn(!psFeeIds.isEmpty(), FeeCenter::getFeeId, psFeeIds)
+						.notIn(!psFeeCodes.isEmpty(), FeeCenter::getFeeCode, psFeeCodes)
 					);
 					if (!feeCenterList.isEmpty()) {
 						corpIds = feeCenterList.stream().map(FeeCenter::getCorpId).filter(Objects::nonNull).distinct().collect(Collectors.toList());

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

@@ -112,7 +112,7 @@ public class ReportDataTradeServiceImpl implements IReportDataTradeService {
 		} else {
 			throw new RuntimeException("获取报表表头数据失败");
 		}
-		if (MagicValues.BUSINESS.equals(reportCode) && MagicValues.SALES_REPORT.equals(groupCode) && (MagicValues.HYCK.equals(type) || MagicValues.HYJK.equals(type))) {
+		if (MagicValues.COST.equals(reportCode) && MagicValues.SALES_REPORT.equals(groupCode) && (MagicValues.HYCK.equals(type) || MagicValues.HYJK.equals(type))) {
 			List<Bills> list = new ArrayList<>();
 			Bills bills = billsService.getById(billId);
 			if (bills != null) {