Sfoglia il codice sorgente

2024年1月2日17:26:24

纪新园 1 anno fa
parent
commit
d1fcbcc2d6

+ 65 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/business/sea/dto/ContainersReports.java

@@ -0,0 +1,65 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.los.business.sea.dto;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * 业务-海运进出口配箱-箱号装箱业务
+ *
+ * @author BladeX
+ * @since 2023-10-16
+ */
+@Data
+public class ContainersReports implements Serializable {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 箱号
+	 */
+	private String cntrNo;
+	/**
+	 * 尺码箱型
+	 */
+	private String cntrTypeCode;
+	/**
+	 * 铅封号
+	 */
+	private String sealNo;
+	/**
+	 * 件数
+	 */
+	private BigDecimal quantity;
+	/**
+	 * 毛重 (KGM)
+	 */
+	private BigDecimal grossWeight;
+	/**
+	 * 箱重
+	 */
+	private BigDecimal boxWeight;
+	/**
+	 * 体积 (CBM)
+	 */
+	private BigDecimal measurement;
+
+
+}

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

@@ -25,6 +25,7 @@ import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import org.springblade.los.business.files.entity.FilesCenter;
+import org.springblade.los.business.sea.dto.ContainersReports;
 import org.springblade.los.business.sea.dto.WaitingBox;
 import org.springblade.los.finance.fee.dto.FeeCenterReports;
 import org.springblade.los.finance.fee.entity.FeeCenter;
@@ -1509,10 +1510,15 @@ public class Bills implements Serializable {
 	@TableField(exist = false)
 	private List<PreContainers> preContainersList;
 	/**
-	 * 财务核算要素
+	 * 配箱信息
 	 */
 	@TableField(exist = false)
 	private List<Containers> containersList;
+	/**
+	 * 配箱报表
+	 */
+	@TableField(exist = false)
+	private List<ContainersReports> containersReportsList;
 
 	/**
 	 * 待配箱
@@ -1591,5 +1597,11 @@ public class Bills implements Serializable {
 	@TableField(exist = false)
 	private String swiftCode;
 
+	/**
+	 * Swift Code
+	 */
+	@TableField(exist = false)
+	private BigDecimal boxWeightSum;
+
 
 }

+ 6 - 0
blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/entity/PjGoodsDesc.java

@@ -285,4 +285,10 @@ public class PjGoodsDesc implements Serializable {
 	@ApiModelProperty(value = "兑换积分")
 	private BigDecimal integral;
 
+	/**
+	 * 尺寸
+	 */
+	@ApiModelProperty(value = "尺寸")
+	private String goodsSize;
+
 }

+ 6 - 0
blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/excel/GoodsExcel.java

@@ -65,6 +65,12 @@ public class GoodsExcel implements Serializable {
 	private String brandItem;
 
 	/**
+	 * 尺寸
+	 */
+	@ExcelProperty(value = "*尺寸")
+	private String goodsSize;
+
+	/**
 	 * 所属公司名称
 	 */
 	@ExcelProperty(value = "*所属公司名称")

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

@@ -23,6 +23,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import lombok.AllArgsConstructor;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.BeanUtil;
 import org.springblade.los.basic.corps.entity.BCorpsBank;
 import org.springblade.los.basic.corps.service.IBCorpsBankService;
 import org.springblade.los.basic.cur.entity.BCurrency;
@@ -31,9 +32,13 @@ import org.springblade.los.basic.reports.entity.Reports;
 import org.springblade.los.basic.reports.mapper.ReportsMapper;
 import org.springblade.los.basic.reports.service.IReportsService;
 import org.springblade.los.basic.reports.vo.ReportsVO;
+import org.springblade.los.business.sea.dto.ContainersReports;
 import org.springblade.los.business.sea.entity.Bills;
+import org.springblade.los.business.sea.entity.Containers;
+import org.springblade.los.business.sea.entity.PreContainers;
 import org.springblade.los.business.sea.service.IBillsService;
-import org.springblade.los.business.sea.service.IContainersBillsService;
+import org.springblade.los.business.sea.service.IContainersService;
+import org.springblade.los.business.sea.service.IPreContainersService;
 import org.springblade.los.finance.agreement.entity.AgreementPrice;
 import org.springblade.los.finance.agreement.entity.AgreementPriceItems;
 import org.springblade.los.finance.agreement.service.IAgreementPriceItemsService;
@@ -84,7 +89,9 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 
 	private final IAgreementPriceItemsService agreementPriceItemsService;
 
-	private final IContainersBillsService containersBillsService;
+	private final IContainersService containersService;
+
+	private final IPreContainersService preContainersService;
 
 
 	@Override
@@ -435,7 +442,7 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 								Comparator.comparing(FeeCenterReports::getFeeCnName))), ArrayList::new));
 						for (FeeCenterReports fee : feeCenters) {
 							FeeCenterReports feeCenterReportsD = item.getFeeCenterList().stream()
-								.filter(e -> e.getFeeCnName().equals(fee.getFeeCnName()) && "D".equals(e.getDc()) )
+								.filter(e -> e.getFeeCnName().equals(fee.getFeeCnName()) && "D".equals(e.getDc()))
 								.findFirst().orElse(null);
 							FeeCenterReports feeCenterReportsC = item.getFeeCenterList().stream()
 								.filter(e -> e.getFeeCnName().equals(fee.getFeeCnName()) && "C".equals(e.getDc()))
@@ -468,6 +475,40 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 			if (bills != null) {
 				bills.setFM("jms");
 				bills.setVesselCnName(bills.getVesselEnName() + "/" + bills.getVoyageNo());
+				BigDecimal boxWeightSum = BigDecimal.ZERO;
+				List<ContainersReports> containersReportsList = new ArrayList<>();
+				List<Containers> containersList = containersService.list(new LambdaQueryWrapper<Containers>()
+					.eq(Containers::getTenantId, AuthUtil.getTenantId())
+					.eq(Containers::getIsDeleted, 0)
+					.eq(Containers::getPid, bills.getId()));
+				List<PreContainers> preContainersList = preContainersService.list(new LambdaQueryWrapper<PreContainers>()
+					.eq(PreContainers::getTenantId, AuthUtil.getTenantId())
+					.eq(PreContainers::getIsDeleted, 0)
+					.eq(PreContainers::getPid, bills.getId()));
+				if (containersList.size() > 0) {
+					boxWeightSum = boxWeightSum.add(containersList.get(0).getGrossWeight());
+					if (preContainersList.size() > 0) {
+						List<PreContainers> preContainers = preContainersList.stream().filter(e -> e.getCntrTypeCode().equals(containersList.get(0).getCntrTypeCode()))
+							.collect(Collectors.toList());
+						if (preContainers.size() > 0) {
+							boxWeightSum = boxWeightSum.add(containersList.get(0).getGrossWeight());
+						}
+					}
+				}
+				bills.setBoxWeightSum(boxWeightSum);
+				for (Containers item : containersList) {
+					ContainersReports containersReports = new ContainersReports();
+					BeanUtil.copyProperties(item, containersReports);
+					if (preContainersList.size() > 0) {
+						List<PreContainers> preContainers = preContainersList.stream().filter(e -> e.getCntrTypeCode().equals(item.getCntrTypeCode()))
+							.collect(Collectors.toList());
+						if (preContainers.size() > 0) {
+							containersReports.setBoxWeight(preContainers.get(0).getGrossWeight());
+						}
+					}
+					containersReportsList.add(containersReports);
+				}
+				bills.setContainersReportsList(containersReportsList);
 				map.put("data", bills);
 			} else {
 				map.put("data", null);
@@ -820,7 +861,7 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 						if (billsList.size() > 0) {
 							Bills bills = billsList.stream().filter(e -> e.getMblno().equals(item.getMblno())).findFirst().orElse(null);
 							if (bills != null) {
-								finStlBillsItemsReports.setAmountProfit(bills.getAmountCrLoc().subtract(bills.getAmountDrLoc()));
+								finStlBillsItemsReports.setAmountProfit(bills.getAmountDrLoc().subtract(bills.getAmountCrLoc()));
 							}
 						} else {
 							finStlBillsItemsReports.setAmountProfit(new BigDecimal("0.00"));

+ 1 - 1
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/goods/service/impl/GoodsDescServiceImpl.java

@@ -390,7 +390,7 @@ public class GoodsDescServiceImpl extends ServiceImpl<GoodsDescMapper, PjGoodsDe
 				goodsDesc.setExplosionProof(e.getExplosionProof());
 				goodsDesc.setOriginalFactory(e.getOriginalFactory());
 				goodsDesc.setSelfRecovery(e.getSelfRecovery());
-
+				goodsDesc.setGoodsSize(e.getGoodsSize());
 				// 如果名称相等 就认为重复
 				LambdaQueryWrapper<PjGoodsDesc> queryWrapper = new LambdaQueryWrapper<>();
 				queryWrapper.eq(PjGoodsDesc::getTenantId, AuthUtil.getTenantId());