Browse Source

2024年12月19日18:29:05

纪新园 1 year ago
parent
commit
7414e7073b
13 changed files with 459 additions and 89 deletions
  1. 51 0
      blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/dto/SaleFinancingDetail.java
  2. 110 0
      blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/dto/SaleFinancingDetailDto.java
  3. 31 29
      blade-service/blade-los/src/main/java/org/springblade/los/business/sea/service/impl/BillsServiceImpl.java
  4. 10 6
      blade-service/blade-los/src/main/java/org/springblade/los/business/sea/service/impl/ContainersServiceImpl.java
  5. 10 3
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/goods/controller/GoodsDescController.java
  6. 10 3
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/ship/mapper/ShipItemsMapper.java
  7. 102 0
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/ship/mapper/ShipItemsMapper.xml
  8. 7 0
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/ship/service/IShipItemsService.java
  9. 18 4
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/ship/service/impl/ShipItemsServiceImpl.java
  10. 33 7
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/statistics/controller/StatisticsController.java
  11. 6 0
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/statistics/service/IStatisticsService.java
  12. 34 0
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/statistics/service/impl/StatisticsServiceImpl.java
  13. 37 37
      blade-service/blade-sales-part/src/main/resources/log/logback-dev.xml

+ 51 - 0
blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/dto/SaleFinancingDetail.java

@@ -0,0 +1,51 @@
+package org.springblade.salesPart.dto;
+
+import com.alibaba.excel.annotation.ExcelIgnore;
+import com.alibaba.excel.annotation.ExcelProperty;
+import lombok.Data;
+
+/**
+ * @author :jixinyuan
+ * @date : 2024/3/12
+ */
+@Data
+public class SaleFinancingDetail {
+
+
+
+	/**
+	 * 采购订单号
+	 */
+	private String ordNo;
+	/**
+	 * 商品名称
+	 */
+	private String goodsName;
+	/**
+	 * 出库状态
+	 */
+	private String statusName;
+	/**
+	 * 租户
+	 */
+	private String tenantId;
+	/**
+	 * 所属公司id
+	 */
+	private String salesCompanyId;
+	/**
+	 * 入出库开日期启
+	 */
+	private String dateStart;
+	/**
+	 * 入出库日期止
+	 */
+	private String dateEnd;
+
+	/**
+	 * 0:自有 1:融资
+	 */
+	private String type;
+
+
+}

+ 110 - 0
blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/dto/SaleFinancingDetailDto.java

@@ -0,0 +1,110 @@
+package org.springblade.salesPart.dto;
+
+import com.alibaba.excel.annotation.ExcelIgnore;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import com.alibaba.excel.annotation.write.style.ContentRowHeight;
+import com.alibaba.excel.annotation.write.style.HeadRowHeight;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * @author :jixinyuan
+ * @date : 2024/3/12
+ */
+@Data
+@ColumnWidth(25)
+@HeadRowHeight(20)
+@ContentRowHeight(18)
+public class SaleFinancingDetailDto {
+
+
+	/**
+	 * 品牌名称
+	 */
+	@ExcelProperty(value = "品牌名称")
+	private String brandName;
+	/**
+	 * 商品名称
+	 */
+	@ExcelProperty(value = "商品名称")
+	private String goodsName;
+	/**
+	 * 商品编号
+	 */
+	@ExcelProperty(value = "商品编号")
+	private String goodsNo;
+	/**
+	 * 花纹
+	 */
+	@ExcelProperty(value = "花纹")
+	private String pattern;
+	/**
+	 * 规格型号
+	 */
+	@ExcelProperty(value = "规格型号")
+	private String propertyName;
+	/**
+	 * 代采数量
+	 */
+	@ExcelProperty(value = "代采数量")
+	private BigDecimal sendNumFinancing;
+
+	/**
+	 * 代采金额
+	 */
+	@ExcelProperty(value = "代采金额")
+	private BigDecimal sendNumFinancingAmount;
+	/**
+	 * 销售订单号
+	 */
+	@ExcelProperty(value = "销售订单号")
+	private String saleOrdNo;
+	/**
+	 * 出库单号
+	 */
+	@ExcelProperty(value = "出库单号")
+	private String billno;
+	/**
+	 * 出库日期
+	 */
+	@ExcelProperty(value = "出库日期")
+	private Date businesDate;
+	/**
+	 * 出库状态
+	 */
+	@ExcelProperty(value = "出库状态")
+	private String statusName;
+	/**
+	 * 采购订单号
+	 */
+	@ExcelProperty(value = "采购订单号")
+	private String purchaseOrdNo;
+	/**
+	 * 仓库
+	 */
+	@ExcelProperty(value = "仓库")
+	private String warehouse;
+
+	/**
+	 * 出库单id
+	 */
+	@ExcelIgnore
+	private Long billId;
+
+	/**
+	 * 销售订单id
+	 */
+	@ExcelIgnore
+	private String saleId;
+
+	/**
+	 * 采购订单id
+	 */
+	@ExcelIgnore
+	private String purchaseId;
+
+
+}

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

@@ -34,7 +34,6 @@ import org.springblade.los.basic.business.service.IBusinessTypeService;
 import org.springblade.los.basic.corps.entity.BCorps;
 import org.springblade.los.basic.corps.entity.BCorpsAttn;
 import org.springblade.los.basic.corps.mapper.CorpsAttnMapper;
-import org.springblade.los.basic.corps.service.IBCorpsAttnService;
 import org.springblade.los.basic.corps.service.IBCorpsService;
 import org.springblade.los.basic.cur.entity.BCurrency;
 import org.springblade.los.basic.cur.service.IBCurrencyService;
@@ -471,38 +470,41 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 		Integer other = 0;
 		BigDecimal teu = new BigDecimal("0.00");
 		StringBuilder boxTypeSum = new StringBuilder();
-//		if (ObjectUtils.isNull(bills.getCfsQuantity()) || bills.getCfsQuantity().compareTo(new BigDecimal("0.00")) == 0) {
-		if (ObjectUtils.isNotNull(bills.getPreContainersList())) {
-			for (PreContainers item : bills.getPreContainersList()) {
-				item.setPid(bills.getId());
-				if (item.getCntrTypeCode().contains("20")) {
-					V20 += item.getQuantity();
-				} else if (item.getCntrTypeCode().contains("45")) {
-					V45 += item.getQuantity();
-				} else if (item.getCntrTypeCode().contains("48")) {
-					V48 += item.getQuantity();
-				} else if (item.getCntrTypeCode().contains("40")) {
-					V40 += item.getQuantity();
-				} else if (item.getCntrTypeCode().contains("40") && item.getCntrTypeCode().contains("HC")) {
-					V40HC += item.getQuantity();
-				} else {
-					other += item.getQuantity();
+		if (ObjectUtils.isNull(bills.getCfsQuantity()) || bills.getCfsQuantity().compareTo(new BigDecimal("0.00")) == 0) {
+			if (ObjectUtils.isNotNull(bills.getPreContainersList())) {
+				for (PreContainers item : bills.getPreContainersList()) {
+					if (ObjectUtils.isNull(item.getCntrTypeCode())){
+						throw new RuntimeException("箱型不能为空");
+					}
+					item.setPid(bills.getId());
+					if (item.getCntrTypeCode().contains("20")) {
+						V20 += item.getQuantity();
+					} else if (item.getCntrTypeCode().contains("45")) {
+						V45 += item.getQuantity();
+					} else if (item.getCntrTypeCode().contains("48")) {
+						V48 += item.getQuantity();
+					} else if (item.getCntrTypeCode().contains("40")) {
+						V40 += item.getQuantity();
+					} else if (item.getCntrTypeCode().contains("40") && item.getCntrTypeCode().contains("HC")) {
+						V40HC += item.getQuantity();
+					} else {
+						other += item.getQuantity();
+					}
+					boxTypeSum.append(item.getCntrTypeCode()).append("*").append(item.getQuantity()).append(",");
+					if (ObjectUtils.isNotNull(item.getQuantity()) && ObjectUtils.isNotNull(item.getTeu())) {
+						teu = teu.add(new BigDecimal(item.getQuantity()).multiply(item.getTeu()));
+					}
 				}
-				boxTypeSum.append(item.getCntrTypeCode()).append("*").append(item.getQuantity()).append(",");
-				if (ObjectUtils.isNotNull(item.getQuantity()) && ObjectUtils.isNotNull(item.getTeu())) {
-					teu = teu.add(new BigDecimal(item.getQuantity()).multiply(item.getTeu()));
+				R res = preContainersService.submitList(bills.getPreContainersList());
+				if (!res.isSuccess()) {
+					throw new RuntimeException("保存失败");
+				}
+				if (boxTypeSum.length() > 0) {
+					boxTypeSum = new StringBuilder(boxTypeSum.substring(0, boxTypeSum.length() - 1));
+					bills.setQuantityCntrDescr(boxTypeSum.toString());
 				}
-			}
-			R res = preContainersService.submitList(bills.getPreContainersList());
-			if (!res.isSuccess()) {
-				throw new RuntimeException("保存失败");
-			}
-			if (boxTypeSum.length() > 0) {
-				boxTypeSum = new StringBuilder(boxTypeSum.substring(0, boxTypeSum.length() - 1));
-				bills.setQuantityCntrDescr(boxTypeSum.toString());
 			}
 		}
-//		}
 		bills.setQuantityV20(V20);
 		bills.setQuantityV40(V40);
 		bills.setQuantityV40hc(V40HC);

+ 10 - 6
blade-service/blade-los/src/main/java/org/springblade/los/business/sea/service/impl/ContainersServiceImpl.java

@@ -263,9 +263,9 @@ public class ContainersServiceImpl extends ServiceImpl<ContainersMapper, Contain
 				BigDecimal quantity = containersBillsList.stream().filter(e-> e.getPpId().equals(item.getId()))
 					.map(ContainersBills::getQuantity).reduce(BigDecimal.ZERO,BigDecimal::add);
 				BigDecimal grossWeight = containersBillsList.stream().filter(e-> e.getPpId().equals(item.getId()))
-					.map(ContainersBills::getMeasurement).reduce(BigDecimal.ZERO,BigDecimal::add);
-				BigDecimal measurement = containersBillsList.stream().filter(e-> e.getPpId().equals(item.getId()))
 					.map(ContainersBills::getGrossWeight).reduce(BigDecimal.ZERO,BigDecimal::add);
+				BigDecimal measurement = containersBillsList.stream().filter(e-> e.getPpId().equals(item.getId()))
+					.map(ContainersBills::getMeasurement).reduce(BigDecimal.ZERO,BigDecimal::add);
 				item.setCfsQuantity((ObjectUtils.isNotNull(item.getCfsQuantity()) ? item.getCfsQuantity() : new BigDecimal("0.00")).subtract(quantity));
 				item.setCfsMeasurement((ObjectUtils.isNotNull(item.getCfsMeasurement()) ? item.getCfsMeasurement() : new BigDecimal("0.00")).subtract(measurement));
 				item.setCfsGrossWeight((ObjectUtils.isNotNull(item.getCfsGrossWeight()) ? item.getCfsGrossWeight() : new BigDecimal("0.00")).subtract(grossWeight));
@@ -373,6 +373,10 @@ public class ContainersServiceImpl extends ServiceImpl<ContainersMapper, Contain
 					containersList.get(i).setGrossWeight(averageGrossWeight.multiply(containersList.get(i).getTeu()));
 					containersList.get(i).setNetWeight(averageNetWeight.multiply(containersList.get(i).getTeu()));
 					containersList.get(i).setMeasurement(averageMeasurement.multiply(containersList.get(i).getTeu()));
+					containersBills.setQuantity(average.multiply(containersList.get(i).getTeu()));
+					containersBills.setGrossWeight(averageGrossWeight.multiply(containersList.get(i).getTeu()));
+					containersBills.setNetWeight(averageNetWeight.multiply(containersList.get(i).getTeu()));
+					containersBills.setMeasurement(averageMeasurement.multiply(containersList.get(i).getTeu()));
 				}else{
 					throw new RuntimeException("TEU数量为空,请重新添加");
 				}
@@ -381,11 +385,11 @@ public class ContainersServiceImpl extends ServiceImpl<ContainersMapper, Contain
 				containersList.get(i).setGrossWeight(averageGrossWeight);
 				containersList.get(i).setNetWeight(averageNetWeight);
 				containersList.get(i).setMeasurement(averageMeasurement);
+				containersBills.setQuantity(average);
+				containersBills.setGrossWeight(averageGrossWeight);
+				containersBills.setNetWeight(averageNetWeight);
+				containersBills.setMeasurement(averageMeasurement);
 			}
-			containersBills.setQuantity(average);
-			containersBills.setGrossWeight(averageGrossWeight);
-			containersBills.setNetWeight(averageNetWeight);
-			containersBills.setMeasurement(averageMeasurement);
 			containersBillsList.add(containersBills);
 			List<ContainersBills> itemList = new ArrayList<>();
 			itemList.add(containersBills);

+ 10 - 3
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/goods/controller/GoodsDescController.java

@@ -127,6 +127,7 @@ public class GoodsDescController extends BladeController {
 			.like(ObjectUtils.isNotEmpty(goods.getBrandName()), PjGoodsDesc::getBrandName, goods.getBrandName())
 			.like(ObjectUtils.isNotEmpty(goods.getCnameInt()), PjGoodsDesc::getCnameInt, goods.getCnameInt())
 			.like(ObjectUtils.isNotEmpty(goods.getCode()), PjGoodsDesc::getCode, goods.getCode())//编码
+			.eq(ObjectUtils.isNotNull(goods.getWhetherIntegral()), PjGoodsDesc::getWhetherIntegral, goods.getWhetherIntegral())//是否是积分商品
 			.eq(ObjectUtils.isNotNull(goods.getEnableOrNot()), PjGoodsDesc::getEnableOrNot, goods.getEnableOrNot())//状态
 			.eq(ObjectUtils.isNotEmpty(goods.getWhether()), PjGoodsDesc::getWhether, goods.getWhether())//是否管理到批次号
 			.eq(ObjectUtils.isNotEmpty(goods.getExplosionProof()), PjGoodsDesc::getExplosionProof, goods.getExplosionProof());//是否防爆
@@ -214,10 +215,16 @@ public class GoodsDescController extends BladeController {
 			return R.fail(500, "商品名称不能为空");
 		}
 		goodsDesc.setCname(goodsDesc.getCname().trim());
-		goodsDesc.setSpecificationAndModel(goodsDesc.getSpecificationAndModel().trim());
+		if (ObjectUtils.isNotNull(goodsDesc.getSpecificationAndModel())){
+			goodsDesc.setSpecificationAndModel(goodsDesc.getSpecificationAndModel().trim());
+		}
 		goodsDesc.setCode(goodsDesc.getCode().trim());
-		goodsDesc.setBrandItem(goodsDesc.getBrandItem().trim());
-		goodsDesc.setGoodsSize(goodsDesc.getGoodsSize().trim());
+		if (ObjectUtils.isNotNull(goodsDesc.getBrandItem())){
+			goodsDesc.setBrandItem(goodsDesc.getBrandItem().trim());
+		}
+		if (ObjectUtils.isNotNull(goodsDesc.getGoodsSize())){
+			goodsDesc.setGoodsSize(goodsDesc.getGoodsSize().trim());
+		}
 		PjGoodsDesc goodsDesc1 = goodsDescService.saveMessage(goodsDesc);
 		return R.data(goodsDesc1);
 	}

+ 10 - 3
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/ship/mapper/ShipItemsMapper.java

@@ -16,14 +16,18 @@
  */
 package org.springblade.salesPart.ship.mapper;
 
-import org.springblade.salesPart.entity.PjShipItems;
-import org.springblade.salesPart.vo.ShipItemsVO;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.apache.ibatis.annotations.Param;
+import org.springblade.salesPart.dto.SaleFinancingDetail;
+import org.springblade.salesPart.dto.SaleFinancingDetailDto;
+import org.springblade.salesPart.entity.PjShipItems;
+import org.springblade.salesPart.vo.ShipItemsVO;
+
 import java.util.List;
 
 /**
- *  配件批发收发货明细 Mapper 接口
+ * 配件批发收发货明细 Mapper 接口
  *
  * @author BladeX
  * @since 2023-04-21
@@ -39,4 +43,7 @@ public interface ShipItemsMapper extends BaseMapper<PjShipItems> {
 	 */
 	List<ShipItemsVO> selectShipItemsPage(IPage page, ShipItemsVO shipItems);
 
+	List<SaleFinancingDetailDto> saleFinancingDetail(IPage<SaleFinancingDetailDto> page, @Param("detail") SaleFinancingDetail saleDetailDto);
+
+	List<SaleFinancingDetailDto> saleFinancingList(@Param("detail") SaleFinancingDetail saleDetailDto);
 }

+ 102 - 0
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/ship/mapper/ShipItemsMapper.xml

@@ -37,5 +37,107 @@
     <select id="selectShipItemsPage" resultMap="shipItemsResultMap">
         select * from pjpf_ship_items where is_deleted = 0
     </select>
+    <select id="saleFinancingDetail" resultType="org.springblade.salesPart.dto.SaleFinancingDetailDto">
+        SELECT
+        psi.brand_name AS brandName,
+        psi.goods_no AS goodsNo,
+        psi.goods_name AS goodsName,
+        psi.pattern AS pattern,
+        psi.property_name AS propertyName,
+        IF
+        ( psir.num, psir.num, 0 ) AS sendNumFinancing,
+        IF
+        ( psir.amount, psir.amount, 0 ) AS sendNumFinancingAmount,
+        ps.src_ord_no AS saleOrdNo,
+        ps.billno AS billno,
+        ps.busines_date AS businesDate,
+        ps.status_name AS statusName,
+        concat( '', psir.src_ord, '' ) AS purchaseOrdNo,
+        ps.storage_name AS warehouse,
+        ps.id AS billId,
+        ps.ord_id AS saleId,
+        psir.src_id AS purchaseId
+        FROM
+        pjpf_ship_items psi
+        LEFT JOIN pjpf_ship ps ON psi.pid = ps.id
+        LEFT JOIN pjpf_ship_items_record psir ON psi.id = psir.item_id
+        WHERE
+        psi.is_deleted = '0'
+        AND ps.is_deleted = '0'
+        AND psir.is_deleted = '0'
+        AND ps.tenant_id = #{detail.tenantId}
+        AND psi.tenant_id = #{detail.tenantId}
+        AND psir.tenant_id = #{detail.tenantId}
+        AND ps.biz_type_name = 'FHGD'
+        AND psir.num != 0
+        <if test="detail.goodsName !=null and detail.goodsName != ''">
+            and psi.goods_name like concat('%', #{detail.goodsName}, '%')
+        </if>
+        <if test="detail.ordNo !=null and detail.ordNo != ''">
+            and psir.src_ord like concat('%', #{detail.ordNo}, '%')
+        </if>
+        <if test="detail.statusName !=null and detail.statusName != ''">
+            and ps.status_name = #{detail.statusName}
+        </if>
+        <if test="detail.dateStart !=null and detail.dateStart !=''">
+            and DATE_FORMAT(ps.busines_date,'%Y-%m-%d') &gt;= #{detail.dateStart}
+        </if>
+        <if test="detail.dateEnd !=null and detail.dateEnd !=''">
+            and DATE_FORMAT(ps.busines_date,'%Y-%m-%d') &lt;= #{detail.dateEnd}
+        </if>
+        ORDER BY
+        ps.busines_date desc
+    </select>
+    <select id="saleFinancingList" resultType="org.springblade.salesPart.dto.SaleFinancingDetailDto">
+        SELECT
+        psi.brand_name AS brandName,
+        psi.goods_no AS goodsNo,
+        psi.goods_name AS goodsName,
+        psi.pattern AS pattern,
+        psi.property_name AS propertyName,
+        IF
+        ( psir.num, psir.num, 0 ) AS sendNumFinancing,
+        IF
+        ( psir.amount, psir.amount, 0 ) AS sendNumFinancingAmount,
+        ps.src_ord_no AS saleOrdNo,
+        ps.billno AS billno,
+        ps.busines_date AS businesDate,
+        ps.status_name AS statusName,
+        concat( '', psir.src_ord, '' ) AS purchaseOrdNo,
+        ps.storage_name AS warehouse,
+        ps.id AS billId,
+        ps.ord_id AS saleId,
+        psir.src_id AS purchaseId
+        FROM
+        pjpf_ship_items psi
+        LEFT JOIN pjpf_ship ps ON psi.pid = ps.id
+        LEFT JOIN pjpf_ship_items_record psir ON psi.id = psir.item_id
+        WHERE
+        psi.is_deleted = '0'
+        AND ps.is_deleted = '0'
+        AND psir.is_deleted = '0'
+        AND ps.tenant_id = #{detail.tenantId}
+        AND psi.tenant_id = #{detail.tenantId}
+        AND psir.tenant_id = #{detail.tenantId}
+        AND ps.biz_type_name = 'FHGD'
+        AND psir.num != 0
+        <if test="detail.goodsName !=null and detail.goodsName != ''">
+            and psi.goods_name like concat('%', #{detail.goodsName}, '%')
+        </if>
+        <if test="detail.ordNo !=null and detail.ordNo != ''">
+            and psir.src_ord like concat('%', #{detail.ordNo}, '%')
+        </if>
+        <if test="detail.statusName !=null and detail.statusName != ''">
+            and ps.status_name = #{detail.statusName}
+        </if>
+        <if test="detail.dateStart !=null and detail.dateStart !=''">
+            and DATE_FORMAT(ps.busines_date,'%Y-%m-%d') &gt;= #{detail.dateStart}
+        </if>
+        <if test="detail.dateEnd !=null and detail.dateEnd !=''">
+            and DATE_FORMAT(ps.busines_date,'%Y-%m-%d') &lt;= #{detail.dateEnd}
+        </if>
+        ORDER BY
+        ps.busines_date desc
+    </select>
 
 </mapper>

+ 7 - 0
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/ship/service/IShipItemsService.java

@@ -16,11 +16,15 @@
  */
 package org.springblade.salesPart.ship.service;
 
+import org.springblade.salesPart.dto.SaleFinancingDetail;
+import org.springblade.salesPart.dto.SaleFinancingDetailDto;
 import org.springblade.salesPart.entity.PjShipItems;
 import org.springblade.salesPart.vo.ShipItemsVO;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 
+import java.util.List;
+
 /**
  *  配件批发收发货明细服务类
  *
@@ -38,4 +42,7 @@ public interface IShipItemsService extends IService<PjShipItems> {
 	 */
 	IPage<ShipItemsVO> selectShipItemsPage(IPage<ShipItemsVO> page, ShipItemsVO shipItems);
 
+    IPage<SaleFinancingDetailDto> saleFinancingDetail(SaleFinancingDetail saleDetailDto, IPage<SaleFinancingDetailDto> page);
+
+	List<SaleFinancingDetailDto> saleFinancingList(SaleFinancingDetail saleDetailDto);
 }

+ 18 - 4
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/ship/service/impl/ShipItemsServiceImpl.java

@@ -16,16 +16,20 @@
  */
 package org.springblade.salesPart.ship.service.impl;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springblade.salesPart.dto.SaleFinancingDetail;
+import org.springblade.salesPart.dto.SaleFinancingDetailDto;
 import org.springblade.salesPart.entity.PjShipItems;
-import org.springblade.salesPart.vo.ShipItemsVO;
 import org.springblade.salesPart.ship.mapper.ShipItemsMapper;
 import org.springblade.salesPart.ship.service.IShipItemsService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springblade.salesPart.vo.ShipItemsVO;
 import org.springframework.stereotype.Service;
-import com.baomidou.mybatisplus.core.metadata.IPage;
+
+import java.util.List;
 
 /**
- *  服务实现类
+ * 服务实现类
  *
  * @author BladeX
  * @since 2023-04-21
@@ -38,4 +42,14 @@ public class ShipItemsServiceImpl extends ServiceImpl<ShipItemsMapper, PjShipIte
 		return page.setRecords(baseMapper.selectShipItemsPage(page, shipItems));
 	}
 
+	@Override
+	public IPage<SaleFinancingDetailDto> saleFinancingDetail(SaleFinancingDetail saleDetailDto, IPage<SaleFinancingDetailDto> page) {
+		return page.setRecords(baseMapper.saleFinancingDetail(page, saleDetailDto));
+	}
+
+	@Override
+	public List<SaleFinancingDetailDto> saleFinancingList(SaleFinancingDetail saleDetailDto) {
+		return baseMapper.saleFinancingList(saleDetailDto);
+	}
+
 }

+ 33 - 7
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/statistics/controller/StatisticsController.java

@@ -9,7 +9,6 @@ import org.springblade.core.mp.support.Query;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.BeanUtil;
 import org.springblade.salesPart.dto.*;
-import org.springblade.salesPart.excel.PjCorpsDescExportExcel;
 import org.springblade.salesPart.statistics.service.IStatisticsService;
 import org.springframework.web.bind.annotation.*;
 
@@ -113,11 +112,11 @@ public class StatisticsController {
 	@GetMapping("/saleDetailExport")
 	public void saleDetailExport(SaleDetail saleDetailDto, HttpServletResponse response) {
 		List<SaleDetailDto> saleDetailDtoList = statisticsService.saleDetailExport(saleDetailDto);
-		if ("XS,TKXS".equals(saleDetailDto.getBsType())){
+		if ("XS,TKXS".equals(saleDetailDto.getBsType())) {
 			ExcelUtil.export(response, "统计销售明细", "统计销售明细", saleDetailDtoList, SaleDetailDto.class);
-		}else if ("RZCG".equals(saleDetailDto.getBsType())){
+		} else if ("RZCG".equals(saleDetailDto.getBsType())) {
 			ExcelUtil.export(response, "融资采购明细", "统计采购明细", BeanUtil.copy(saleDetailDtoList, SaleDetailRZDto.class), SaleDetailRZDto.class);
-		}else{
+		} else {
 			ExcelUtil.export(response, "统计采购明细", "统计采购明细", saleDetailDtoList, SaleDetailDto.class);
 		}
 	}
@@ -144,7 +143,7 @@ public class StatisticsController {
 	@GetMapping("/salespersonCustomerExport")
 	public void salespersonCustomerExport(SaleDetail saleDetailDto, HttpServletResponse response) {
 		List<SalespersonCustomer> saleDetailDtoList = statisticsService.salespersonCustomerExport(saleDetailDto);
-			ExcelUtil.export(response, "销售分析明细", "销售分析明细", saleDetailDtoList, SalespersonCustomer.class);
+		ExcelUtil.export(response, "销售分析明细", "销售分析明细", saleDetailDtoList, SalespersonCustomer.class);
 	}
 
 
@@ -152,7 +151,7 @@ public class StatisticsController {
 	 * 实时总览
 	 */
 	@GetMapping("/realTimeOverview")
-	public R<Map<String, Object>> realTimeOverview(@RequestParam(value = "date",required = false) String date ) {
+	public R<Map<String, Object>> realTimeOverview(@RequestParam(value = "date", required = false) String date) {
 		return statisticsService.realTimeOverview(date);
 	}
 
@@ -187,7 +186,7 @@ public class StatisticsController {
 	 */
 	@GetMapping("/corpBuySingularDetail")
 	public R<IPage<CorpBuySingular>> corpBuySingularDetail(CorpBuySingular corpBuySingular, Query query) {
-		return statisticsService.corpBuySingularDetail(corpBuySingular,query );
+		return statisticsService.corpBuySingularDetail(corpBuySingular, query);
 	}
 
 	/**
@@ -215,4 +214,31 @@ public class StatisticsController {
 		return statisticsService.corpBuySingularStatistics(corpBuySingular);
 	}
 
+
+	/**
+	 * 统计销售明细-融资
+	 */
+	@GetMapping("/saleFinancingDetail")
+	public R<IPage<SaleFinancingDetailDto>> saleFinancingDetail(SaleFinancingDetail saleDetailDto, Query query) {
+		return statisticsService.saleFinancingDetail(saleDetailDto, Condition.getPage(query));
+	}
+
+	/**
+	 * 统计销售明细合计-融资
+	 */
+	@GetMapping("/saleFinancingDetailSum")
+	public R saleFinancingDetailSum(SaleFinancingDetail saleDetailDto) {
+		return statisticsService.saleFinancingDetailSum(saleDetailDto);
+	}
+
+	/**
+	 * 统计销售明细导出-融资
+	 */
+	@GetMapping("/saleFinancingDetailExport")
+	public void saleFinancingDetailExport(SaleFinancingDetail saleDetailDto, HttpServletResponse response) {
+		List<SaleFinancingDetailDto> saleDetailDtoList = statisticsService.saleFinancingDetailExport(saleDetailDto);
+		ExcelUtil.export(response, "统计销售明细导出-融资明细", "统计销售明细导出-融资明细", saleDetailDtoList, SaleFinancingDetailDto.class);
+
+	}
+
 }

+ 6 - 0
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/statistics/service/IStatisticsService.java

@@ -113,4 +113,10 @@ public interface IStatisticsService {
 	List<CorpBuySingular> corpBuySingularExport(CorpBuySingular corpBuySingular);
 
 	R corpBuySingularStatistics(CorpBuySingular corpBuySingular);
+
+	R<IPage<SaleFinancingDetailDto>> saleFinancingDetail(SaleFinancingDetail saleDetailDto, IPage<SaleFinancingDetailDto> page);
+
+	R saleFinancingDetailSum(SaleFinancingDetail saleDetailDto);
+
+	List<SaleFinancingDetailDto> saleFinancingDetailExport(SaleFinancingDetail saleDetailDto);
 }

+ 34 - 0
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/statistics/service/impl/StatisticsServiceImpl.java

@@ -37,6 +37,7 @@ import org.springblade.salesPart.funding.service.IPjpfBalanceResetService;
 import org.springblade.salesPart.funding.service.IPjpfFundingService;
 import org.springblade.salesPart.order.service.IOrderItemsService;
 import org.springblade.salesPart.order.service.IOrderService;
+import org.springblade.salesPart.ship.service.IShipItemsService;
 import org.springblade.salesPart.ship.service.IShipService;
 import org.springblade.salesPart.statistics.service.IStatisticsService;
 import org.springframework.stereotype.Service;
@@ -65,6 +66,8 @@ public class StatisticsServiceImpl implements IStatisticsService {
 
 	private final IShipService shipService;
 
+	private final IShipItemsService shipItemsService;
+
 	private final IPjpfFundingService pjpfFundingService;
 
 	private final IPjpfBalanceResetService pjpfBalanceResetService;
@@ -1659,4 +1662,35 @@ public class StatisticsServiceImpl implements IStatisticsService {
 		map.put("number", numberList);
 		return R.data(map);
 	}
+
+	@Override
+	public R<IPage<SaleFinancingDetailDto>> saleFinancingDetail(SaleFinancingDetail saleDetailDto, IPage<SaleFinancingDetailDto> page) {
+		saleDetailDto.setTenantId(AuthUtil.getTenantId());
+		saleDetailDto.setSalesCompanyId(AuthUtil.getDeptId());
+		IPage<SaleFinancingDetailDto> saleDetailDtoIPage = shipItemsService.saleFinancingDetail(saleDetailDto, page);
+		return R.data(saleDetailDtoIPage);
+	}
+
+	@Override
+	public R saleFinancingDetailSum(SaleFinancingDetail saleDetailDto) {
+		saleDetailDto.setTenantId(AuthUtil.getTenantId());
+		saleDetailDto.setSalesCompanyId(AuthUtil.getDeptId());
+		List<SaleFinancingDetailDto> financingDetail = shipItemsService.saleFinancingList(saleDetailDto);
+		Map<String, BigDecimal> map = new HashMap<>();
+		if (!financingDetail.isEmpty()) {
+			map.put("sendNumFinancing", financingDetail.stream().map(SaleFinancingDetailDto::getSendNumFinancing).reduce(BigDecimal.ZERO, BigDecimal::add));
+			map.put("sendNumFinancingAmount", financingDetail.stream().map(SaleFinancingDetailDto::getSendNumFinancingAmount).reduce(BigDecimal.ZERO, BigDecimal::add));
+		} else {
+			map.put("sendNumFinancing", new BigDecimal("0"));
+			map.put("sendNumFinancingAmount", new BigDecimal("0"));
+		}
+		return R.data(map);
+	}
+
+	@Override
+	public List<SaleFinancingDetailDto> saleFinancingDetailExport(SaleFinancingDetail saleDetailDto) {
+		saleDetailDto.setTenantId(AuthUtil.getTenantId());
+		saleDetailDto.setSalesCompanyId(AuthUtil.getDeptId());
+        return shipItemsService.saleFinancingList(saleDetailDto);
+	}
 }

+ 37 - 37
blade-service/blade-sales-part/src/main/resources/log/logback-dev.xml

@@ -58,56 +58,56 @@
     </if>
 
     <!-- 日志输出级别 -->
-    <root level="ERROR">
+    <root level="info">
         <appender-ref ref="STDOUT"/>
         <appender-ref ref="${STDOUT_APPENDER}"/>
     </root>
 
-    <logger name="net.sf.ehcache" level="ERROR"/>
-    <logger name="druid.sql" level="ERROR"/>
+    <logger name="net.sf.ehcache" level="info"/>
+    <logger name="druid.sql" level="info"/>
 
 
     <!-- MyBatis log configure -->
-    <logger name="com.apache.ibatis" level="ERROR"/>
-    <logger name="org.mybatis.spring" level="ERROR"/>
-    <logger name="java.sql.Connection" level="ERROR"/>
-    <logger name="java.sql.Statement" level="ERROR"/>
-    <logger name="java.sql.PreparedStatement" level="ERROR"/>
+    <logger name="com.apache.ibatis" level="info"/>
+    <logger name="org.mybatis.spring" level="info"/>
+    <logger name="java.sql.Connection" level="info"/>
+    <logger name="java.sql.Statement" level="info"/>
+    <logger name="java.sql.PreparedStatement" level="info"/>
 
     <!-- 减少部分debug日志 -->
-    <logger name="druid.sql" level="ERROR"/>
-    <logger name="org.apache.shiro" level="ERROR"/>
-    <logger name="org.mybatis.spring" level="ERROR"/>
-    <logger name="org.springframework" level="ERROR"/>
-    <logger name="org.springframework.context" level="ERROR"/>
-    <logger name="org.springframework.beans" level="ERROR"/>
-    <logger name="com.baomidou.mybatisplus" level="ERROR"/>
-    <logger name="org.apache.ibatis.io" level="ERROR"/>
-    <logger name="org.apache.velocity" level="ERROR"/>
-    <logger name="org.eclipse.jetty" level="ERROR"/>
-    <logger name="io.undertow" level="ERROR"/>
-    <logger name="org.xnio.nio" level="ERROR"/>
-    <logger name="org.thymeleaf" level="ERROR"/>
-    <logger name="springfox.documentation" level="ERROR"/>
-    <logger name="org.hibernate.validator" level="ERROR"/>
-    <logger name="com.netflix.loadbalancer" level="ERROR"/>
-    <logger name="com.netflix.hystrix" level="ERROR"/>
-    <logger name="com.netflix.zuul" level="ERROR"/>
-    <logger name="de.codecentric" level="ERROR"/>
-    <!-- cache ERROR -->
-    <logger name="net.sf.ehcache" level="ERROR"/>
-    <logger name="org.springframework.cache" level="ERROR"/>
+    <logger name="druid.sql" level="info"/>
+    <logger name="org.apache.shiro" level="info"/>
+    <logger name="org.mybatis.spring" level="info"/>
+    <logger name="org.springframework" level="info"/>
+    <logger name="org.springframework.context" level="info"/>
+    <logger name="org.springframework.beans" level="info"/>
+    <logger name="com.baomidou.mybatisplus" level="info"/>
+    <logger name="org.apache.ibatis.io" level="info"/>
+    <logger name="org.apache.velocity" level="info"/>
+    <logger name="org.eclipse.jetty" level="info"/>
+    <logger name="io.undertow" level="info"/>
+    <logger name="org.xnio.nio" level="info"/>
+    <logger name="org.thymeleaf" level="info"/>
+    <logger name="springfox.documentation" level="info"/>
+    <logger name="org.hibernate.validator" level="info"/>
+    <logger name="com.netflix.loadbalancer" level="info"/>
+    <logger name="com.netflix.hystrix" level="info"/>
+    <logger name="com.netflix.zuul" level="info"/>
+    <logger name="de.codecentric" level="info"/>
+    <!-- cache info -->
+    <logger name="net.sf.ehcache" level="info"/>
+    <logger name="org.springframework.cache" level="info"/>
     <!-- cloud -->
-    <logger name="org.apache.http" level="ERROR"/>
-    <logger name="com.netflix.discovery" level="ERROR"/>
-    <logger name="com.netflix.eureka" level="ERROR"/>
+    <logger name="org.apache.http" level="info"/>
+    <logger name="com.netflix.discovery" level="info"/>
+    <logger name="com.netflix.eureka" level="info"/>
     <!-- 业务日志 -->
-    <Logger name="org.springblade" level="ERROR"/>
-    <Logger name="org.springblade.core.tenant" level="ERROR"/>
-    <Logger name="org.springblade.core.version" level="ERROR"/>
+    <Logger name="org.springblade" level="info"/>
+    <Logger name="org.springblade.core.tenant" level="info"/>
+    <Logger name="org.springblade.core.version" level="info"/>
 
     <!-- 减少nacos日志 -->
-    <logger name="com.alibaba.nacos" level="ERROR"/>
+    <logger name="com.alibaba.nacos" level="info"/>
 
 
 </configuration>