Browse Source

样品单添加 版本列表 采购数据 流水数据

yzc 1 year ago
parent
commit
35b4881d8f

+ 26 - 7
hx-sale/src/main/java/com/fjhx/sale/controller/sample/SampleController.java

@@ -1,14 +1,9 @@
 package com.fjhx.sale.controller.sample;
 
-import com.baomidou.dynamic.datasource.annotation.DS;
-import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import com.fjhx.common.constant.SourceConstant;
+import com.fjhx.account.entity.account.vo.AccountRunningWaterVo;
 import com.fjhx.sale.entity.contract.dto.ContractDto;
-import com.fjhx.sale.entity.contract.po.Contract;
-import com.fjhx.sale.entity.contract.vo.ContractPdfInfoVo;
+import com.fjhx.sale.entity.purchase.po.EhsdPurchase;
 import com.fjhx.sale.entity.sample.vo.SamplePdfInfoVo;
-import com.ruoyi.common.utils.StringUtils;
 import org.springframework.web.bind.annotation.*;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fjhx.sale.entity.sample.vo.SampleVo;
@@ -93,4 +88,28 @@ public class SampleController {
         return sampleService.getSamplePdfInfo(dto.getId());
     }
 
+    /**
+     * 获取合同相关的所有版本列表
+     */
+    @PostMapping("/getVersionList")
+    public List<SampleVo> getVersionList(@RequestBody ContractDto dto) {
+        return sampleService.getVersionList(dto.getId());
+    }
+
+    /**
+     * 获取样品单id获取所有采购id
+     */
+    @PostMapping("/getPurchaseListBySampleId")
+    public List<EhsdPurchase> getPurchaseListBySampleId(@RequestBody ContractDto dto) {
+        return sampleService.getPurchaseListBySampleId(dto.getId());
+    }
+
+    /**
+     * 根据样品单id获取合同的资金流水信息
+     */
+    @PostMapping("/getAccountRunningWaterBySampleId")
+    public List<AccountRunningWaterVo> getAccountRunningWaterBySampleId(@RequestBody ContractDto dto) {
+        return sampleService.getAccountRunningWaterBySampleId(dto.getId());
+    }
+
 }

+ 5 - 0
hx-sale/src/main/java/com/fjhx/sale/entity/sample/vo/SampleVo.java

@@ -86,4 +86,9 @@ public class SampleVo extends Sample {
 
     private List<SampleShipmentVo> sampleShipmentLists;
 
+    /**
+     * 流程id
+     */
+    private Long flowId;
+
 }

+ 8 - 0
hx-sale/src/main/java/com/fjhx/sale/mapper/sample/SampleMapper.java

@@ -1,5 +1,6 @@
 package com.fjhx.sale.mapper.sample;
 
+import com.fjhx.account.entity.account.vo.AccountRunningWaterVo;
 import com.fjhx.sale.entity.contract.vo.ContractProductVo;
 import com.fjhx.sale.entity.sample.po.Sample;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@@ -8,6 +9,8 @@ import com.fjhx.sale.entity.sample.vo.SampleVo;
 import com.ruoyi.common.utils.wrapper.IWrapper;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
+
 
 /**
  * <p>
@@ -33,4 +36,9 @@ public interface SampleMapper extends BaseMapper<Sample> {
     Page<ContractProductVo> sampleHandoverList(@Param("page") Page<Object> page, @Param("ew") IWrapper<Sample> wrapper);
 
     void updateSample(Sample sample);
+
+    /**
+     * 根据合同id获取合同的资金流水信息
+     */
+    List<AccountRunningWaterVo> getAccountRunningWaterBySampleId(@Param("sampleId") Long sampleId);
 }

+ 19 - 0
hx-sale/src/main/java/com/fjhx/sale/service/sample/SampleService.java

@@ -1,6 +1,8 @@
 package com.fjhx.sale.service.sample;
 
+import com.fjhx.account.entity.account.vo.AccountRunningWaterVo;
 import com.fjhx.sale.entity.contract.vo.ContractProductVo;
+import com.fjhx.sale.entity.purchase.po.EhsdPurchase;
 import com.fjhx.sale.entity.sample.po.Sample;
 import com.fjhx.sale.entity.sample.vo.SamplePdfInfoVo;
 import com.ruoyi.common.core.service.BaseService;
@@ -9,6 +11,8 @@ import com.fjhx.sale.entity.sample.vo.SampleVo;
 import com.fjhx.sale.entity.sample.dto.SampleSelectDto;
 import com.fjhx.sale.entity.sample.dto.SampleDto;
 
+import java.util.List;
+
 
 /**
  * <p>
@@ -58,4 +62,19 @@ public interface SampleService extends BaseService<Sample> {
     SamplePdfInfoVo getSamplePdfInfo(Long id);
 
     void updateSample(Sample sample);
+
+    /**
+     * 获取样品单相关的所有版本列表
+     */
+    List<SampleVo> getVersionList(Long id);
+
+    /**
+     * 获取合同相关的所有采购合同版本列表
+     */
+    List<EhsdPurchase> getPurchaseListBySampleId(Long id);
+
+    /**
+     * 根据合同id获取合同的资金流水信息
+     */
+    List<AccountRunningWaterVo> getAccountRunningWaterBySampleId(Long sampleId);
 }

+ 47 - 5
hx-sale/src/main/java/com/fjhx/sale/service/sample/impl/SampleServiceImpl.java

@@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fjhx.account.entity.account.po.AccountManagement;
+import com.fjhx.account.entity.account.vo.AccountRunningWaterVo;
 import com.fjhx.account.service.account.AccountManagementService;
 import com.fjhx.area.utils.CustomizeAreaUtil;
 import com.fjhx.common.constant.SourceConstant;
@@ -22,6 +23,7 @@ import com.fjhx.customer.entity.customer.po.Customer;
 import com.fjhx.customer.service.customer.CustomerService;
 import com.fjhx.file.entity.FileInfoVo;
 import com.fjhx.file.utils.ObsFileUtil;
+import com.fjhx.flow.service.flow.FlowExampleService;
 import com.fjhx.item.entity.product.po.ProductInfo;
 import com.fjhx.item.service.product.ProductInfoService;
 import com.fjhx.mail.entity.enterprise.po.EnterpriseDomain;
@@ -31,6 +33,7 @@ import com.fjhx.mail.service.enterprise.EnterpriseDomainService;
 import com.fjhx.mail.service.enterprise.EnterpriseMailboxService;
 import com.fjhx.mail.service.personal.PersonalMailboxService;
 import com.fjhx.sale.entity.contract.vo.ContractProductVo;
+import com.fjhx.sale.entity.purchase.po.EhsdPurchase;
 import com.fjhx.sale.entity.sample.dto.SampleDto;
 import com.fjhx.sale.entity.sample.dto.SampleSelectDto;
 import com.fjhx.sale.entity.sample.po.Sample;
@@ -38,10 +41,10 @@ import com.fjhx.sale.entity.sample.po.SampleProduct;
 import com.fjhx.sale.entity.sample.po.SampleProject;
 import com.fjhx.sale.entity.sample.po.SampleShipment;
 import com.fjhx.sale.entity.sample.vo.SamplePdfInfoVo;
-import com.fjhx.sale.entity.sample.vo.SampleProductVo;
 import com.fjhx.sale.entity.sample.vo.SampleShipmentVo;
 import com.fjhx.sale.entity.sample.vo.SampleVo;
 import com.fjhx.sale.mapper.sample.SampleMapper;
+import com.fjhx.sale.service.purchase.EhsdPurchaseService;
 import com.fjhx.sale.service.sample.SampleProductService;
 import com.fjhx.sale.service.sample.SampleProjectService;
 import com.fjhx.sale.service.sample.SampleService;
@@ -62,10 +65,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.text.SimpleDateFormat;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
+import java.util.*;
 import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.ThreadPoolExecutor;
 import java.util.stream.Collectors;
@@ -113,6 +113,10 @@ public class SampleServiceImpl extends ServiceImpl<SampleMapper, Sample> impleme
     private SampleShipmentService sampleShipmentService;
     @Autowired
     private ContractTemplateService contractTemplateService;
+    @Autowired
+    private FlowExampleService flowExampleService;
+    @Autowired
+    private EhsdPurchaseService purchaseService;
 
 
     /**
@@ -564,4 +568,42 @@ public class SampleServiceImpl extends ServiceImpl<SampleMapper, Sample> impleme
         contractPdfInfoVo.setBeneficiaryAddress(sample.getBeneficiaryAddress());
     }
 
+    /**
+     * 获取样品单相关的所有版本列表
+     */
+    @Override
+    public List<SampleVo> getVersionList(Long id) {
+        List<Sample> sampleList = new ArrayList<>();
+
+        while (true) {
+            Sample sample = this.getById(id);
+            Assert.notEmpty(sample, "查询不到合同信息,id:" + id);
+            sampleList.add(sample);
+            if (ObjectUtil.isEmpty(sample.getOldSampleId())) {
+                break;
+            }
+            id = sample.getOldSampleId();
+        }
+        List<SampleVo> sampleVos = BeanUtil.copyToList(sampleList, SampleVo.class);
+        // 赋值流程id
+        flowExampleService.setFlowId(sampleVos, SampleVo::setFlowId);
+        return sampleVos;
+    }
+
+    /**
+     * 获取合同相关的所有采购合同版本列表
+     */
+    @Override
+    public List<EhsdPurchase> getPurchaseListBySampleId(Long id) {
+        return purchaseService.list(q -> q.eq(EhsdPurchase::getDataResourceId, id));
+    }
+
+    /**
+     * 根据合同id获取合同的资金流水信息
+     */
+    @Override
+    public List<AccountRunningWaterVo> getAccountRunningWaterBySampleId(Long sampleId) {
+        return baseMapper.getAccountRunningWaterBySampleId(sampleId);
+    }
+
 }

+ 62 - 0
hx-sale/src/main/resources/mapper/sample/SampleMapper.xml

@@ -63,4 +63,66 @@
         where id = #{upId}
     </update>
 
+    <select id="getAccountRunningWaterBySampleId"
+            resultType="com.fjhx.account.entity.account.vo.AccountRunningWaterVo">
+        SELECT arw.id,
+               arw.create_time,
+               ap.type,
+               arw.currency,
+               pad.money          amount,
+               pad.remark         remarks,
+               am.`name`          accountManagementName,
+               am.account_opening accountManagementOpening,
+               arw.`name`,
+               arw.status
+        FROM sample s
+                 JOIN bytesailing_purchase.purchase p ON p.data_resource_id = s.id AND p.del_flag = 0
+                 JOIN bytesailing_purchase.pay_detail `pad` ON pad.purchase_id = p.id AND pad.del_flag = 0
+                 JOIN bytesailing_purchase.pay pa ON pad.pay_id = pa.id AND pa.del_flag = 0
+                 JOIN bytesailing_account.account_payment ap ON ap.business_id = pa.id AND ap.del_flag = 0
+                 JOIN bytesailing_account.account_running_water arw ON arw.business_id = ap.id AND arw.del_flag = 0
+                 LEFT JOIN bytesailing_account.account_management am
+                           ON arw.account_management_id = am.id AND am.del_flag = 0
+        WHERE s.id = #{sampleId}
+        UNION ALL
+        SELECT arw.id,
+               arw.create_time,
+               ap.type,
+               arw.currency,
+               arfd.amount,
+               arfd.remarks,
+               am.`name`          accountManagementName,
+               am.account_opening accountManagementOpening,
+               arw.`name`,
+               arw.status
+        FROM sample s
+                 JOIN bytesailing_account.account_request_funds_detail arfd
+                      ON arfd.contract_id = s.id AND arfd.del_flag = 0
+                 JOIN bytesailing_account.account_payment ap
+                      ON ap.business_id = arfd.account_request_funds_id AND ap.del_flag = 0
+                 JOIN bytesailing_account.account_running_water arw ON arw.business_id = ap.id AND arw.del_flag = 0
+                 LEFT JOIN bytesailing_account.account_management am
+                           ON arw.account_management_id = am.id AND am.del_flag = 0
+        WHERE s.id = #{sampleId}
+        UNION ALL
+        SELECT arw.id,
+               arw.create_time,
+               30                 type,
+               arw.currency,
+               clc.money,
+               arw.remarks,
+               am.`name`          accountManagementName,
+               am.account_opening accountManagementOpening,
+               arw.`name`,
+               arw.status
+        FROM bytesailing_account.account_running_water arw
+                 JOIN claim cl ON cl.business_id = arw.id
+                 JOIN claim_contract clc ON clc.claim_id = cl.id
+                 JOIN sample s ON clc.contract_id = s.id
+                 LEFT JOIN bytesailing_account.account_management am
+                           ON arw.account_management_id = am.id AND am.del_flag = 0
+        WHERE arw.del_flag = 0
+          AND s.id = #{sampleId}
+    </select>
+
 </mapper>