Ver Fonte

销售合同增加合同详情页

yzc há 1 ano atrás
pai
commit
992181fb36

+ 5 - 0
hx-account/src/main/java/com/fjhx/account/entity/account/vo/AccountRunningWaterVo.java

@@ -87,4 +87,9 @@ public class AccountRunningWaterVo extends AccountRunningWater {
      * 账户余额
      */
     private BigDecimal remainder;
+
+    /**
+     * 资金账户账户
+     */
+    private String accountManagementOpening;
 }

+ 26 - 0
hx-sale/src/main/java/com/fjhx/sale/controller/contract/ContractController.java

@@ -1,7 +1,9 @@
 package com.fjhx.sale.controller.contract;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.account.entity.account.vo.AccountRunningWaterVo;
 import com.fjhx.item.entity.product.dto.ProductInfoSelectDto;
+import com.fjhx.purchase.entity.purchase.po.Purchase;
 import com.fjhx.sale.entity.contract.dto.ContractDto;
 import com.fjhx.sale.entity.contract.dto.ContractSelectDto;
 import com.fjhx.sale.entity.contract.dto.DecisionAidDto;
@@ -211,4 +213,28 @@ public class ContractController {
         return contractService.payDecisionAid(dto);
     }
 
+    /**
+     * 获取合同相关的所有版本列表
+     */
+    @PostMapping("/getVersionList")
+    public List<Contract> getVersionList(@RequestBody ContractDto dto) {
+        return contractService.getVersionList(dto.getId());
+    }
+
+    /**
+     * 获取合同相关的所有版本列表
+     */
+    @PostMapping("/getPurchaseListByContractId")
+    public List<Purchase> getPurchaseListByContractId(@RequestBody ContractDto dto) {
+        return contractService.getPurchaseListByContractId(dto.getId());
+    }
+
+    /**
+     * 根据合同id获取合同的资金流水信息
+     */
+    @PostMapping("/getAccountRunningWaterByContractId")
+    public List<AccountRunningWaterVo> getAccountRunningWaterByContractId(@RequestBody ContractDto dto) {
+        return contractService.getAccountRunningWaterByContractId(dto.getId());
+    }
+
 }

+ 6 - 0
hx-sale/src/main/java/com/fjhx/sale/mapper/contract/ContractMapper.java

@@ -3,6 +3,7 @@ package com.fjhx.sale.mapper.contract;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.account.entity.account.vo.AccountRunningWaterVo;
 import com.fjhx.customer.entity.customer.dto.CustomerDto;
 import com.fjhx.sale.entity.contract.dto.ContractDto;
 import com.fjhx.sale.entity.contract.po.Contract;
@@ -90,4 +91,9 @@ public interface ContractMapper extends BaseMapper<Contract> {
 
     List<ContractDto> salesVolumeStatistics(@Param("ew") QueryWrapper<Object> query);
 
+    /**
+     * 根据合同id获取合同的资金流水信息
+     */
+    List<AccountRunningWaterVo> getAccountRunningWaterByContractId(@Param("contractId") Long contractId);
+
 }

+ 16 - 0
hx-sale/src/main/java/com/fjhx/sale/service/contract/ContractService.java

@@ -2,8 +2,10 @@ package com.fjhx.sale.service.contract;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.account.entity.account.vo.AccountRunningWaterVo;
 import com.fjhx.customer.entity.customer.dto.CustomerDto;
 import com.fjhx.item.entity.product.dto.ProductInfoSelectDto;
+import com.fjhx.purchase.entity.purchase.po.Purchase;
 import com.fjhx.sale.entity.contract.dto.ContractDto;
 import com.fjhx.sale.entity.contract.dto.ContractSelectDto;
 import com.fjhx.sale.entity.contract.dto.DecisionAidDto;
@@ -160,4 +162,18 @@ public interface ContractService extends BaseService<Contract> {
      */
     PayDecisionAidVo payDecisionAid(PayDecisionAidDto dto);
 
+    /**
+     * 获取合同相关的所有版本列表
+     */
+    List<Contract> getVersionList(Long id);
+
+    /**
+     * 获取合同相关的所有采购合同版本列表
+     */
+    List<Purchase> getPurchaseListByContractId(Long id);
+
+    /**
+     * 根据合同id获取合同的资金流水信息
+     */
+    List<AccountRunningWaterVo> getAccountRunningWaterByContractId(Long contractId);
 }

+ 38 - 1
hx-sale/src/main/java/com/fjhx/sale/service/contract/impl/ContractServiceImpl.java

@@ -15,6 +15,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fjhx.account.controller.utils.DateUtils;
 import com.fjhx.account.entity.account.po.AccountManagement;
 import com.fjhx.account.entity.account.vo.AccountRequestFundsDetailVo;
+import com.fjhx.account.entity.account.vo.AccountRunningWaterVo;
 import com.fjhx.account.service.account.AccountManagementService;
 import com.fjhx.account.service.account.AccountRequestFundsDetailService;
 import com.fjhx.area.service.SetCustomizeAreaId;
@@ -27,6 +28,7 @@ import com.fjhx.common.enums.FlowStatusEnum;
 import com.fjhx.common.service.corporation.CorporationService;
 import com.fjhx.common.service.currency.CurrencyRateService;
 import com.fjhx.common.service.documentary.GetDocumentaryBusinessTemplate;
+import com.fjhx.common.utils.Assert;
 import com.fjhx.customer.entity.customer.dto.CustomerDto;
 import com.fjhx.customer.entity.customer.po.Customer;
 import com.fjhx.customer.service.customer.CustomerService;
@@ -177,7 +179,7 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract>
 
         IWrapper<Contract> wrapper = getWrapper();
         wrapper.orderByDesc("t1", Contract::getCreateTime);
-        wrapper.eq("t1", Contract::getIsChange,"0");//列表只展示未变更得数据
+        wrapper.eq("t1", Contract::getIsChange, "0");//列表只展示未变更得数据
         wrapper.between("t1", Contract::getStatus, FlowStatusEnum.DRAFT.getKey(), FlowStatusEnum.CANCELLATION.getKey() - 1);
         if (StringUtils.isNotEmpty(dto.getStatus())) {
             wrapper.eq("t1", Contract::getStatus, dto.getStatus());
@@ -1434,4 +1436,39 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract>
         v.setOther(other);
     }
 
+    /**
+     * 获取合同相关的所有版本列表
+     */
+    @Override
+    public List<Contract> getVersionList(Long id) {
+        List<Contract> contractList = new ArrayList<>();
+
+        while (true) {
+            Contract contract = this.getById(id);
+            Assert.notEmpty(contract, "查询不到合同信息,id:" + id);
+            contractList.add(contract);
+            if (ObjectUtil.isEmpty(contract.getOldContractId())) {
+                break;
+            }
+            id = contract.getOldContractId();
+        }
+        return contractList;
+    }
+
+    /**
+     * 获取合同相关的所有采购合同版本列表
+     */
+    @Override
+    public List<Purchase> getPurchaseListByContractId(Long id) {
+        return purchaseService.list(q -> q.eq(Purchase::getDataResourceId, id));
+    }
+
+    /**
+     * 根据合同id获取合同的资金流水信息
+     */
+    @Override
+    public List<AccountRunningWaterVo> getAccountRunningWaterByContractId(Long contractId) {
+        return baseMapper.getAccountRunningWaterByContractId(contractId);
+    }
+
 }

+ 53 - 17
hx-sale/src/main/resources/mapper/contract/ContractMapper.xml

@@ -2,38 +2,36 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.fjhx.sale.mapper.contract.ContractMapper">
     <select id="getPage" resultType="com.fjhx.sale.entity.contract.vo.ContractVo">
-        SELECT
-               *
-            FROM
+        SELECT *
+        FROM
              (SELECT
-                     t1.*,
-                     IFNULL(t1.amount,0)*IFNULL(t1.rate,0) AS amountCNY,
-                     CASE
-                         WHEN (t1.amount - t1.sumClaimMoney) &lt;= 0 THEN
-                             20
+                  t1.*,
+                  IFNULL(t1.amount,0)*IFNULL(t1.rate,0) AS amountCNY,
+                  CASE
+                      WHEN (t1.amount - t1.sumClaimMoney) &lt;= 0 THEN
+                          20
                          WHEN t1.sumClaimMoney = 0 THEN
-                             0
+                          0
                          ELSE 10
-                         END AS refundStatusNew
+                      END                               AS refundStatusNew
               FROM (SELECT t1.*,
-                           ( SELECT IFNULL( SUM( IFNULL(money,0)*IFNULL(rate,1) ), 0 ) FROM claim_contract WHERE contract_id = t1.id ) AS sumClaimMoney
+                           (SELECT IFNULL( SUM(IFNULL(money, 0) * IFNULL(rate,1) ), 0 ) FROM claim_contract
+                            WHERE contract_id = t1.id ) AS sumClaimMoney
                     FROM contract t1) t1) t1
             ${ew.customSqlSegment}
     </select>
 
     <select id="getProfitClearingPage" resultType="com.fjhx.sale.entity.contract.vo.ContractBudgetVo">
-        SELECT
-            t1.id AS contractId,
-            t1.*
-        FROM
-            contract t1
+        SELECT t1.id AS contractId,
+               t1.*
+        FROM contract t1
             ${ew.customSqlSegment}
     </select>
 
     <select id="getProfitBudgetPage" resultType="com.fjhx.sale.entity.contract.vo.ContractBudgetVo">
         SELECT
             (select GROUP_CONCAT(id) from contract_product WHERE contract_id = t1.id) AS contractProductIds,
-            t1.id AS contractId,
+            t1.id                                                                     AS contractId,
             t1.`code`,
             t1.buy_corporation_id ,
             t1.user_name,
@@ -155,5 +153,43 @@
                  LEFT JOIN bytesailing_item.product_info pi ON cp.product_id = pi.id
             ${ew.customSqlSegment}
     </select>
+    <select id="getAccountRunningWaterByContractId"
+            resultType="com.fjhx.account.entity.account.vo.AccountRunningWaterVo">
+        SELECT arw.id,
+               arw.create_time,
+               ap.type,
+               arw.currency,
+               arw.amount,
+               arw.remarks,
+               am.`name`          accountManagementName,
+               am.account_opening accountManagementOpening,
+               arw.`name`
+        FROM contract c
+                 JOIN bytesailing_purchase.purchase p ON p.data_resource_id = c.id
+                 JOIN bytesailing_purchase.pay_detail pad
+        ON pad.purchase_id = p.id
+            JOIN bytesailing_purchase.pay pa ON pad.pay_id = pa.id
+            JOIN bytesailing_account.account_payment ap ON ap.business_id = pa.id
+            JOIN bytesailing_account.account_running_water arw ON arw.business_id = ap.id
+            LEFT JOIN bytesailing_account.account_management am ON arw.account_management_id = am.id
+        WHERE
+            c.id = #{contractId}
+        UNION ALL
+        SELECT arw.id,
+               arw.create_time,
+               ap.type,
+               arw.currency,
+               arw.amount,
+               arw.remarks,
+               am.`name`          accountManagementName,
+               am.account_opening accountManagementOpening,
+               arw.`name`
+        FROM contract c
+                 JOIN bytesailing_account.account_request_funds_detail arfd ON arfd.contract_id = c.id
+                 JOIN bytesailing_account.account_payment ap ON ap.business_id = arfd.account_request_funds_id
+                 JOIN bytesailing_account.account_running_water arw ON arw.business_id = ap.id
+                 LEFT JOIN bytesailing_account.account_management am ON arw.account_management_id = am.id
+        WHERE c.id = #{contractId}
+    </select>
 
 </mapper>