Explorar o código

2022年11月25日19:58:30

纪新园 %!s(int64=2) %!d(string=hai) anos
pai
achega
4cf925ba54

+ 1 - 4
ruoyi-admin/src/main/java/com/ruoyi/web/controller/warehouse/reportManagement/ProfitController.java

@@ -52,12 +52,9 @@ public class ProfitController extends BaseController {
     @DataScope(deptAlias = "d", userAlias = "u")
     @DataScope(deptAlias = "d", userAlias = "u")
     @GetMapping("/generalLedgerList")
     @GetMapping("/generalLedgerList")
     public AjaxResult financialLedgerDetails(FeeDTO feeDTO) {
     public AjaxResult financialLedgerDetails(FeeDTO feeDTO) {
-        return tFeeService.financialLedgerDetails(feeDTO);
+        return tFeeService.financialLedgerDetailsTotal(feeDTO);
     }
     }
 
 
-
-
-
     /**
     /**
      * 应付总账列表
      * 应付总账列表
      */
      */

+ 7 - 0
ruoyi-warehouse/src/main/java/com/ruoyi/finance/domain/dto/FeeDTO.java

@@ -1,5 +1,6 @@
 package com.ruoyi.finance.domain.dto;
 package com.ruoyi.finance.domain.dto;
 
 
+import com.ruoyi.common.annotation.Excel;
 import lombok.Data;
 import lombok.Data;
 
 
 import java.util.List;
 import java.util.List;
@@ -43,4 +44,10 @@ public class FeeDTO {
      */
      */
     private List<String> fBstimeExamine;
     private List<String> fBstimeExamine;
 
 
+    /**
+     * 结算客户名称,t_corps 中的no或 name,模糊查找选择后,存储id,显示name
+     */
+    @Excel(name = "客户名称,t_corps 中的no或 name,模糊查找选择后,存储id,显示name")
+    private Long fToCorpid;
+
 }
 }

+ 28 - 1
ruoyi-warehouse/src/main/java/com/ruoyi/finance/domain/vo/FeeVO.java

@@ -54,7 +54,7 @@ public class FeeVO extends TFee {
     // 总结算金额
     // 总结算金额
     private BigDecimal fStlamount;
     private BigDecimal fStlamount;
 
 
-    // 应结总金额
+    // 应结总金额(利润)
     private BigDecimal nnfinished;
     private BigDecimal nnfinished;
 
 
     private String reviewDate;
     private String reviewDate;
@@ -64,4 +64,31 @@ public class FeeVO extends TFee {
 
 
     // 开票金额
     // 开票金额
     private BigDecimal fInvamount;
     private BigDecimal fInvamount;
+
+    //应收金额
+    private BigDecimal receivableAmount;
+    //应付金额
+    private BigDecimal copeWithAmount;
+
+    //天数
+    private int fBillingDays;
+
+    //单价
+    private BigDecimal price;
+
+    private BigDecimal receivablePrice;
+
+    private BigDecimal copeWithPrice;
+
+    //数量
+    private BigDecimal fQty;
+
+    private BigDecimal receivableFQty;
+
+    private BigDecimal copeWithFQty;
+
+
+    private String fBilltypeC;
+
+
 }
 }

+ 2 - 0
ruoyi-warehouse/src/main/java/com/ruoyi/finance/service/ITFeeService.java

@@ -352,4 +352,6 @@ public interface ITFeeService {
      * @return
      * @return
      */
      */
     List<GeneralLedgerDetailExcel> financialLedgerDetailsExport(FeeDTO feeDTO);
     List<GeneralLedgerDetailExcel> financialLedgerDetailsExport(FeeDTO feeDTO);
+
+    AjaxResult financialLedgerDetailsTotal(FeeDTO feeDTO);
 }
 }

+ 60 - 0
ruoyi-warehouse/src/main/java/com/ruoyi/finance/service/impl/TFeeServiceImpl.java

@@ -2353,6 +2353,66 @@ public class TFeeServiceImpl implements ITFeeService {
         return detailExcelList;
         return detailExcelList;
     }
     }
 
 
+    @Override
+    public AjaxResult financialLedgerDetailsTotal(FeeDTO feeDTO) {
+        feeDTO.setFToCorpid(feeDTO.getFCorpId());
+        feeDTO.setFCorpId(null);
+        List<FeeVO> feeVOList = tFeeMapper.selectFinancialLedgerDetails(feeDTO);
+
+        feeDTO.setFDc("D");
+        List<FeeVO> feeVOListD = tFeeMapper.selectFinancialLedgerDetails(feeDTO);
+
+        feeDTO.setFDc("C");
+        List<FeeVO> feeVOListC = tFeeMapper.selectFinancialLedgerDetails(feeDTO);
+
+        if (CollectionUtils.isNotEmpty(feeVOList)) {
+            List<FeeVO> voList = new ArrayList<>();
+            Map<Long, List<FeeVO>> map = feeVOList.stream().collect(Collectors.groupingBy(FeeVO::getFSrcpid));
+            map.forEach((key, value) -> {
+
+                FeeVO feeVOD = feeVOListD.stream().filter(e -> e.getFSrcpid().equals(key)).findFirst().orElse(null);
+
+                FeeVO feeVOC = feeVOListC.stream().filter(e -> e.getFSrcpid().equals(key)).findFirst().orElse(null);
+
+                FeeVO vo = new FeeVO();
+                FeeVO feeVO = value.stream().findFirst().orElseThrow(() ->
+                        new WarehouseException("获取费用异常"));
+                BeanUtils.copyProperties(feeVO, vo);
+                BigDecimal D = new BigDecimal("0.00");
+                BigDecimal C = new BigDecimal("0.00");
+                if (ObjectUtils.isNotNull(feeVOD)){
+                    if(ObjectUtils.isNotNull(feeVOD.getFAmount())){
+                        D = feeVOD.getFAmount();
+                        vo.setReceivableAmount(feeVOD.getFAmount());
+                    }else{
+                        vo.setReceivableAmount(D);
+                    }
+                    vo.setReceivableFQty(feeVOD.getFQty());
+                    vo.setReceivablePrice(feeVOD.getPrice());
+                    WarehouseTypeEnum storageType = WarehouseTypeEnum.fromTypeAndBusinessType(feeVOD.getfBilltype(), "storageType");
+                    vo.setfBilltype(storageType.getName());
+                    vo.setFBillingDays(feeVOD.getFBillingDays());
+                }
+                if (ObjectUtils.isNotNull(feeVOC)){
+                    if(ObjectUtils.isNotNull(feeVOC.getFAmount())){
+                        C = feeVOC.getFAmount();
+                        vo.setCopeWithAmount(feeVOC.getFAmount());
+                    }else{
+                        vo.setCopeWithAmount(C);
+                    }
+                    WarehouseTypeEnum storageType = WarehouseTypeEnum.fromTypeAndBusinessType(feeVOC.getfBilltype(), "storageType");
+                    vo.setFBilltypeC(storageType.getName());
+                    vo.setCopeWithFQty(feeVOC.getFQty());
+                    vo.setCopeWithPrice(feeVOC.getPrice());
+                }
+                vo.setNnfinished(D.subtract(C));
+                voList.add(vo);
+            });
+            return AjaxResult.success(voList);
+        }
+        return AjaxResult.success(feeVOList);
+    }
+
 
 
     @Override
     @Override
     public List<ReceivableExcel> receivable(TWareHouseFees tWareHouseFees) {
     public List<ReceivableExcel> receivable(TWareHouseFees tWareHouseFees) {

+ 6 - 1
ruoyi-warehouse/src/main/resources/mapper/finance/TFeeMapper.xml

@@ -2888,7 +2888,11 @@
             IF ( w.f_feeid != #{feesId}, w.f_amount, 0.00 ) other_fee,
             IF ( w.f_feeid != #{feesId}, w.f_amount, 0.00 ) other_fee,
             w.f_amount, w.f_stlamount AS fStlamount,
             w.f_amount, w.f_stlamount AS fStlamount,
             ifnull( w.f_amount, 0 ) - ifnull( w.f_stlamount, 0 ) AS nnfinished,
             ifnull( w.f_amount, 0 ) - ifnull( w.f_stlamount, 0 ) AS nnfinished,
-            t.f_bstime AS fBstime
+            t.f_bstime AS fBstime,
+            w.f_dc AS fDC,
+            w.f_unitprice AS price,
+               w.f_qty AS fQty,
+               w.f_billing_days AS fBillingDays
         FROM t_warehousebills t
         FROM t_warehousebills t
             LEFT JOIN t_warehousebillsfees w ON w.f_pid = t.f_id
             LEFT JOIN t_warehousebillsfees w ON w.f_pid = t.f_id
             LEFT JOIN sys_user u ON t.create_by = u.user_name
             LEFT JOIN sys_user u ON t.create_by = u.user_name
@@ -2899,6 +2903,7 @@
             t.del_flag = '0'
             t.del_flag = '0'
             <if test="fDc != null and fDc != ''">and w.f_dc = #{fDc}</if>
             <if test="fDc != null and fDc != ''">and w.f_dc = #{fDc}</if>
             <if test="fCorpId != null and fCorpId != ''">and w.f_corpid = #{fCorpId}</if>
             <if test="fCorpId != null and fCorpId != ''">and w.f_corpid = #{fCorpId}</if>
+            <if test="fToCorpid != null and fToCorpid != ''">and t.f_corpid = #{fToCorpid}</if>
             <if test='isReviewed != null and isReviewed == 0 '>
             <if test='isReviewed != null and isReviewed == 0 '>
                 and w.f_billstatus != 6
                 and w.f_billstatus != 6
             </if>
             </if>