Kaynağa Gözat

供应商添加获取本期账期接口

yzc 1 yıl önce
ebeveyn
işleme
8fd6bb43b0

+ 5 - 0
hx-account/src/main/java/com/fjhx/account/entity/cost/po/CostControlDetail.java

@@ -185,4 +185,9 @@ public class CostControlDetail extends BasePo {
     @Label("归还金额")
     private BigDecimal returnAmount;
 
+    /**
+     * 结算流水id列表
+     */
+    private String stockJournalDetailsIds;
+
 }

+ 6 - 0
hx-supply/src/main/java/com/fjhx/supply/controller/supplier/SupplierInfoController.java

@@ -12,6 +12,7 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.List;
 import java.util.Map;
 
 
@@ -39,6 +40,11 @@ public class SupplierInfoController {
         return supplierInfoService.getPage(dto);
     }
 
+    @PostMapping("/getAccountPeriodAmount")
+    public List<SupplierInfoVo> getAccountPeriodAmount(@RequestBody SupplierInfoSelectDto dto) {
+        return supplierInfoService.getAccountPeriodAmount(dto);
+    }
+
     /**
      * 供应商明细
      */

+ 14 - 0
hx-supply/src/main/java/com/fjhx/supply/entity/supplier/dto/SupplierInfoSelectDto.java

@@ -1,9 +1,12 @@
 package com.fjhx.supply.entity.supplier.dto;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.ruoyi.common.core.domain.BaseSelectDto;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.util.Date;
+
 /**
  * 供应商列表查询入参实体
  *
@@ -54,4 +57,15 @@ public class SupplierInfoSelectDto extends BaseSelectDto {
      * 归属公司id
      */
     private Long companyId;
+
+    /**
+     * 账期
+     */
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM")
+    private Date accountPeriod;
+
+    /**
+     * 供应商id列表
+     */
+    private String supplierIds;
 }

+ 4 - 0
hx-supply/src/main/java/com/fjhx/supply/entity/supplier/vo/SupplierInfoVo.java

@@ -38,4 +38,8 @@ public class SupplierInfoVo extends SupplierInfo implements SetCustomizeAreaName
      */
     private BigDecimal balancePrepaidTax;
 
+    private BigDecimal accountPeriodAmount;
+
+    private BigDecimal accountPeriodAmountTax;
+
 }

+ 5 - 1
hx-supply/src/main/java/com/fjhx/supply/mapper/supplier/SupplierInfoMapper.java

@@ -7,13 +7,16 @@ import com.fjhx.supply.entity.supplier.vo.SupplierInfoVo;
 import com.ruoyi.common.utils.wrapper.IWrapper;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.Date;
+import java.util.List;
+
 
 /**
  * <p>
  * 供应商 Mapper 接口
  * </p>
  *
- * @author 
+ * @author
  * @since 2023-03-17
  */
 public interface SupplierInfoMapper extends BaseMapper<SupplierInfo> {
@@ -23,4 +26,5 @@ public interface SupplierInfoMapper extends BaseMapper<SupplierInfo> {
      */
     Page<SupplierInfoVo> getPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<SupplierInfo> wrapper);
 
+    List<SupplierInfoVo> getAccountPeriodAmount(@Param("ew") IWrapper<SupplierInfo> wrapper, @Param("accountPeriod") Date accountPeriod);
 }

+ 6 - 0
hx-supply/src/main/java/com/fjhx/supply/service/supplier/SupplierInfoService.java

@@ -8,6 +8,7 @@ import com.fjhx.supply.entity.supplier.vo.SupplierInfoVo;
 import com.ruoyi.common.core.domain.BaseSelectDto;
 import com.ruoyi.common.core.service.BaseService;
 
+import java.util.List;
 import java.util.Map;
 
 
@@ -27,6 +28,11 @@ public interface SupplierInfoService extends BaseService<SupplierInfo> {
     Page<SupplierInfoVo> getPage(SupplierInfoSelectDto dto);
 
     /**
+     * 获取供应商指定账期未结算金额
+     */
+    List<SupplierInfoVo> getAccountPeriodAmount(SupplierInfoSelectDto dto);
+
+    /**
      * 供应商明细
      */
     SupplierInfoVo detail(Long id);

+ 15 - 4
hx-supply/src/main/java/com/fjhx/supply/service/supplier/impl/SupplierInfoServiceImpl.java

@@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fjhx.area.utils.CustomizeAreaUtil;
 import com.fjhx.common.constant.SourceConstant;
+import com.fjhx.common.utils.Assert;
 import com.fjhx.file.utils.ObsFileUtil;
 import com.fjhx.supply.entity.supplier.dto.SupplierInfoDto;
 import com.fjhx.supply.entity.supplier.dto.SupplierInfoSelectDto;
@@ -32,10 +33,7 @@ import com.ruoyi.common.utils.wrapper.SqlField;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
 
@@ -103,6 +101,19 @@ public class SupplierInfoServiceImpl extends ServiceImpl<SupplierInfoMapper, Sup
     }
 
     @Override
+    public List<SupplierInfoVo> getAccountPeriodAmount(SupplierInfoSelectDto dto) {
+        Date accountPeriod = dto.getAccountPeriod();
+        String supplierIds = dto.getSupplierIds();
+        Assert.notEmpty(accountPeriod, "账期不能为空!");
+
+        IWrapper<SupplierInfo> wrapper = getWrapper();
+        if (ObjectUtil.isNotEmpty(supplierIds)) {
+            wrapper.in("si.id", supplierIds.split(","));
+        }
+        return baseMapper.getAccountPeriodAmount(wrapper, accountPeriod);
+    }
+
+    @Override
     public SupplierInfoVo detail(Long id) {
         SupplierInfo supplierInfo = this.getById(id);
         SupplierInfoVo result = BeanUtil.toBean(supplierInfo, SupplierInfoVo.class);

+ 20 - 0
hx-supply/src/main/resources/mapper/supplier/SupplierInfoMapper.xml

@@ -21,5 +21,25 @@
                             GROUP BY ccod.supplier_id) t1 ON t1.supplier_id = si.id
             ${ew.customSqlSegment}
     </select>
+    <select id="getAccountPeriodAmount" resultType="com.fjhx.supply.entity.supplier.vo.SupplierInfoVo">
+        SELECT IFNULL(t1.accountPeriodAmount, 0)    AS accountPeriodAmount,
+               IFNULL(t1.accountPeriodAmountTax, 0) AS accountPeriodAmountTax,
+               t1.stockJournalDetailsIds,
+               si.*
+        FROM supplier_info si
+                 LEFT JOIN (SELECT ep.sell_corporation_id,
+                                   sum(epp.price * sjd.quantity)               AS accountPeriodAmount,
+                                   sum(epp.price_including_tax * sjd.quantity) AS accountPeriodAmountTax,
+                                   GROUP_CONCAT(sjd.id)                        AS stockJournalDetailsIds
+                            FROM ehsd_purchase ep
+                                     JOIN ehsd_purchase_product epp ON epp.purchase_id = ep.id
+                                     JOIN stock_journal_details sjd ON sjd.purchase_detail_id = epp.id
+                                     JOIN stock_journal sj ON sjd.stock_journal_id = sj.id
+                            WHERE sj.type = 104
+                              and sjd.settle_status = 0
+                              AND DATE_FORMAT(sjd.account_period, '%Y-%m') = DATE_FORMAT(#{accountPeriod}, '%Y-%m')
+                            GROUP BY ep.sell_corporation_id) t1 ON t1.sell_corporation_id = si.id
+            ${ew.customSqlSegment}
+    </select>
 
 </mapper>