yzc před 1 rokem
rodič
revize
ecd0013b68

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

@@ -211,12 +211,4 @@ public class ContractController {
         return contractService.payDecisionAid(dto);
     }
 
-    /**
-     * 获取合同历史联系方式
-     */
-    @PostMapping("/contactList")
-    public List<Contract> contactList(@RequestBody ContractDto dto) {
-        return contractService.contactList(dto);
-    }
-
 }

+ 74 - 0
hx-sale/src/main/java/com/fjhx/sale/controller/intermediate/IntermediateContractController.java

@@ -0,0 +1,74 @@
+package com.fjhx.sale.controller.intermediate;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.sale.entity.contract.vo.ContractPdfInfoVo;
+import com.fjhx.sale.entity.intermediate.dto.IntermediateContractDto;
+import com.fjhx.sale.entity.intermediate.dto.IntermediateContractSelectDto;
+import com.fjhx.sale.entity.intermediate.vo.IntermediateContractVo;
+import com.fjhx.sale.service.intermediate.IntermediateContractService;
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+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;
+
+
+/**
+ * <p>
+ * 中间合同 前端控制器
+ * </p>
+ *
+ * @author
+ * @since 2023-06-28
+ */
+@RestController
+@RequestMapping("/intermediateContract")
+public class IntermediateContractController {
+
+    @Autowired
+    private IntermediateContractService intermediateContractService;
+
+    /**
+     * 中间合同分页
+     */
+    @PostMapping("/page")
+    public Page<IntermediateContractVo> page(@RequestBody IntermediateContractSelectDto dto) {
+        return intermediateContractService.getPage(dto);
+    }
+
+    /**
+     * 中间合同明细
+     */
+    @PostMapping("/detail")
+    public IntermediateContractVo detail(@RequestBody BaseSelectDto dto) {
+        return intermediateContractService.detail(dto.getId());
+    }
+
+    /**
+     * 中间合同编辑
+     */
+    @PostMapping("/edit")
+    public void edit(@RequestBody IntermediateContractDto intermediateContractDto) {
+        intermediateContractService.edit(intermediateContractDto);
+    }
+
+    /**
+     * 获取合中间同历史联系方式
+     */
+    @PostMapping("/contactList")
+    public List<IntermediateContractVo> contactList(@RequestBody IntermediateContractDto dto) {
+        return intermediateContractService.contactList(dto);
+    }
+
+    /**
+     * 获取合中间同历史联系方式
+     */
+    @PostMapping("/getPrintInfo")
+    public ContractPdfInfoVo getPrintInfo(@RequestBody IntermediateContractDto dto) {
+        return intermediateContractService.getPrintInfo(dto);
+    }
+
+}

+ 17 - 0
hx-sale/src/main/java/com/fjhx/sale/entity/intermediate/dto/IntermediateContractDto.java

@@ -0,0 +1,17 @@
+package com.fjhx.sale.entity.intermediate.dto;
+
+import com.fjhx.sale.entity.intermediate.po.IntermediateContract;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 中间合同新增编辑入参实体
+ *
+ * @author
+ * @since 2023-06-28
+ */
+@Getter
+@Setter
+public class IntermediateContractDto extends IntermediateContract {
+
+}

+ 17 - 0
hx-sale/src/main/java/com/fjhx/sale/entity/intermediate/dto/IntermediateContractSelectDto.java

@@ -0,0 +1,17 @@
+package com.fjhx.sale.entity.intermediate.dto;
+
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 中间合同列表查询入参实体
+ *
+ * @author
+ * @since 2023-06-28
+ */
+@Getter
+@Setter
+public class IntermediateContractSelectDto extends BaseSelectDto {
+
+}

+ 56 - 0
hx-sale/src/main/java/com/fjhx/sale/entity/intermediate/po/IntermediateContract.java

@@ -0,0 +1,56 @@
+package com.fjhx.sale.entity.intermediate.po;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.ruoyi.common.core.domain.BasePo;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 中间合同
+ * </p>
+ *
+ * @author
+ * @since 2023-06-28
+ */
+@Getter
+@Setter
+@TableName("intermediate_contract")
+public class IntermediateContract extends BasePo {
+
+    /**
+     * 单证id
+     */
+    private Long documentsId;
+
+    /**
+     * 卖方公司ID
+     */
+    private Long sellCorporationId;
+
+    /**
+     * 卖方联系人名称
+     */
+    private String sellContactName;
+
+    /**
+     * 卖方联系人电话
+     */
+    private String sellContactNumber;
+
+    /**
+     * 买方公司ID
+     */
+    private Long buyCorporationId;
+
+    /**
+     * 买方联系人名称
+     */
+    private String buyContactName;
+
+    /**
+     * 买方联系人电话
+     */
+    private String buyContactNumber;
+
+}

+ 57 - 0
hx-sale/src/main/java/com/fjhx/sale/entity/intermediate/vo/IntermediateContractVo.java

@@ -0,0 +1,57 @@
+package com.fjhx.sale.entity.intermediate.vo;
+
+import com.fjhx.sale.entity.intermediate.po.IntermediateContract;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.math.BigDecimal;
+
+/**
+ * 中间合同列表查询返回值实体
+ *
+ * @author
+ * @since 2023-06-28
+ */
+@Getter
+@Setter
+public class IntermediateContractVo extends IntermediateContract {
+    /**
+     * 合同编号
+     */
+    private String code;
+    /**
+     * 合同金额
+     */
+    private BigDecimal amount;
+    /**
+     * 币种
+     */
+    private String currency;
+    /**
+     * 原合同卖方id 多公司
+     */
+    private Long oldSellCorporationId;
+    /**
+     * 原合同买方id 客户
+     */
+    private Long oldBuyCorporationId;
+
+    /**
+     * 原合同卖方名称 多公司
+     */
+    private String oldSellCorporationName;
+    /**
+     * 原合同买方名称 客户
+     */
+    private String oldBuyCorporationName;
+
+    /**
+     * 中间合同卖方名称 多公司
+     */
+    private String sellCorporationName;
+    /**
+     * 中间合同买方名称 多公司
+     */
+    private String buyCorporationName;
+
+}

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

@@ -90,5 +90,4 @@ public interface ContractMapper extends BaseMapper<Contract> {
 
     List<ContractDto> salesVolumeStatistics(@Param("ew") QueryWrapper<Object> query);
 
-    List<Contract> contactList(@Param("ew") IWrapper<Contract> wrapper);
 }

+ 33 - 0
hx-sale/src/main/java/com/fjhx/sale/mapper/intermediate/IntermediateContractMapper.java

@@ -0,0 +1,33 @@
+package com.fjhx.sale.mapper.intermediate;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.sale.entity.intermediate.po.IntermediateContract;
+import com.fjhx.sale.entity.intermediate.vo.IntermediateContractVo;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+
+/**
+ * <p>
+ * 中间合同 Mapper 接口
+ * </p>
+ *
+ * @author
+ * @since 2023-06-28
+ */
+public interface IntermediateContractMapper extends BaseMapper<IntermediateContract> {
+
+    /**
+     * 中间合同分页
+     */
+    Page<IntermediateContractVo> getPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<IntermediateContract> wrapper);
+
+    /**
+     * 获取中间合同历史联系方式
+     */
+    List<IntermediateContractVo> contactList(@Param("ew") IWrapper<IntermediateContract> wrapper);
+
+}

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

@@ -160,8 +160,4 @@ public interface ContractService extends BaseService<Contract> {
      */
     PayDecisionAidVo payDecisionAid(PayDecisionAidDto dto);
 
-    /**
-     * 获取合同历史联系方式
-     */
-    List<Contract> contactList(ContractDto dto);
 }

+ 0 - 15
hx-sale/src/main/java/com/fjhx/sale/service/contract/impl/ContractServiceImpl.java

@@ -1432,19 +1432,4 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract>
         v.setOther(other);
     }
 
-    /**
-     * 获取合同历史联系方式
-     */
-    @Override
-    public List<Contract> contactList(ContractDto dto) {
-        IWrapper<Contract> wrapper = IWrapper.getWrapper();
-        //根据卖方联系人名称/联系方式过滤
-        wrapper.or().like(Contract::getSellContactName, dto.getSellContactName());
-        wrapper.or().like(Contract::getSellContactNumber, dto.getSellContactNumber());
-        //根据买方联系人名称/联系方式过滤
-        wrapper.or().like(Contract::getBuyContactName, dto.getBuyContactName());
-        wrapper.or().like(Contract::getBuyContactNumber, dto.getBuyContactNumber());
-        List<Contract> list = baseMapper.contactList(wrapper);
-        return list;
-    }
 }

+ 50 - 0
hx-sale/src/main/java/com/fjhx/sale/service/intermediate/IntermediateContractService.java

@@ -0,0 +1,50 @@
+package com.fjhx.sale.service.intermediate;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.sale.entity.contract.vo.ContractPdfInfoVo;
+import com.fjhx.sale.entity.intermediate.dto.IntermediateContractDto;
+import com.fjhx.sale.entity.intermediate.dto.IntermediateContractSelectDto;
+import com.fjhx.sale.entity.intermediate.po.IntermediateContract;
+import com.fjhx.sale.entity.intermediate.vo.IntermediateContractVo;
+import com.ruoyi.common.core.service.BaseService;
+
+import java.util.List;
+
+
+/**
+ * <p>
+ * 中间合同 服务类
+ * </p>
+ *
+ * @author
+ * @since 2023-06-28
+ */
+public interface IntermediateContractService extends BaseService<IntermediateContract> {
+
+    /**
+     * 中间合同分页
+     */
+    Page<IntermediateContractVo> getPage(IntermediateContractSelectDto dto);
+
+    /**
+     * 中间合同明细
+     */
+    IntermediateContractVo detail(Long id);
+
+    /**
+     * 中间合同编辑
+     */
+    void edit(IntermediateContractDto intermediateContractDto);
+
+    /**
+     * 获取中间合同历史联系方式
+     */
+    List<IntermediateContractVo> contactList(IntermediateContractDto dto);
+
+    /**
+     * 获取打印信息
+     *
+     * @return
+     */
+    ContractPdfInfoVo getPrintInfo(IntermediateContractDto dto);
+}

+ 165 - 0
hx-sale/src/main/java/com/fjhx/sale/service/intermediate/impl/IntermediateContractServiceImpl.java

@@ -0,0 +1,165 @@
+package com.fjhx.sale.service.intermediate.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fjhx.common.entity.corporation.po.Corporation;
+import com.fjhx.common.service.corporation.CorporationService;
+import com.fjhx.common.utils.Assert;
+import com.fjhx.customer.service.customer.CustomerService;
+import com.fjhx.sale.entity.contract.vo.ContractPdfInfoVo;
+import com.fjhx.sale.entity.documents.po.Documents;
+import com.fjhx.sale.entity.intermediate.dto.IntermediateContractDto;
+import com.fjhx.sale.entity.intermediate.dto.IntermediateContractSelectDto;
+import com.fjhx.sale.entity.intermediate.po.IntermediateContract;
+import com.fjhx.sale.entity.intermediate.vo.IntermediateContractVo;
+import com.fjhx.sale.mapper.intermediate.IntermediateContractMapper;
+import com.fjhx.sale.service.contract.ContractService;
+import com.fjhx.sale.service.documents.DocumentsService;
+import com.fjhx.sale.service.intermediate.IntermediateContractService;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * <p>
+ * 中间合同 服务实现类
+ * </p>
+ *
+ * @author
+ * @since 2023-06-28
+ */
+@Service
+public class IntermediateContractServiceImpl extends ServiceImpl<IntermediateContractMapper, IntermediateContract> implements IntermediateContractService {
+
+    @Autowired
+    private DocumentsService documentsService;
+    @Autowired
+    private ContractService contractService;
+    @Autowired
+    private CustomerService customerService;
+    @Autowired
+    private CorporationService corporationService;
+
+    @Override
+    public Page<IntermediateContractVo> getPage(IntermediateContractSelectDto dto) {
+        IWrapper<IntermediateContract> wrapper = getWrapper();
+        wrapper.orderByDesc("ic", IntermediateContract::getId);
+        Page<IntermediateContractVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
+        List<IntermediateContractVo> records = page.getRecords();
+        //赋值原买方公司名称 客户
+        customerService.attributeAssign(records, IntermediateContractVo::getOldBuyCorporationId, (item, customer) -> {
+            item.setOldBuyCorporationName(customer.getName());
+        });
+        //赋值原卖方公司名称 多公司
+        corporationService.attributeAssign(records, IntermediateContractVo::getOldSellCorporationId, (item, corporation) -> {
+            item.setOldSellCorporationName(corporation.getName());
+        });
+        //赋值中间合同重新赋值过后的买方名称
+        corporationService.attributeAssign(records, IntermediateContractVo::getBuyCorporationId, (item, corporation) -> {
+            item.setBuyCorporationName(corporation.getName());
+        });
+        //赋值中间合同重新赋值过后的卖方名称
+        corporationService.attributeAssign(records, IntermediateContractVo::getSellCorporationId, (item, corporation) -> {
+            item.setSellCorporationName(corporation.getName());
+        });
+        return page;
+    }
+
+    @Override
+    public IntermediateContractVo detail(Long id) {
+        IntermediateContract IntermediateContract = this.getById(id);
+        IntermediateContractVo result = BeanUtil.toBean(IntermediateContract, IntermediateContractVo.class);
+        return result;
+    }
+
+    @Override
+    public void edit(IntermediateContractDto intermediateContractDto) {
+        intermediateContractDto.setId(null);
+        Assert.notEmpty(intermediateContractDto.getDocumentsId(), "单证id不能为空");
+        IntermediateContract intermediateContract = this.getOne(q -> q.eq(IntermediateContract::getDocumentsId, intermediateContractDto.getId()));
+        if (ObjectUtil.isNotEmpty(intermediateContract)) {
+            //编辑 赋值id
+            intermediateContractDto.setId(intermediateContract.getId());
+        }
+        this.saveOrUpdate(intermediateContractDto);
+    }
+
+    /**
+     * 获取中间合同历史联系方式
+     */
+    @Override
+    public List<IntermediateContractVo> contactList(IntermediateContractDto dto) {
+        IWrapper<IntermediateContract> wrapper = IWrapper.getWrapper();
+        //根据卖方联系人名称/联系方式过滤
+        wrapper.or().like(IntermediateContract::getSellContactName, dto.getSellContactName());
+        wrapper.or().like(IntermediateContract::getSellContactNumber, dto.getSellContactNumber());
+        //根据买方联系人名称/联系方式过滤
+        wrapper.or().like(IntermediateContract::getBuyContactName, dto.getBuyContactName());
+        wrapper.or().like(IntermediateContract::getBuyContactNumber, dto.getBuyContactNumber());
+        List<IntermediateContractVo> list = baseMapper.contactList(wrapper);
+        //赋值买方名称
+        corporationService.attributeAssign(list, IntermediateContractVo::getBuyCorporationId, (item, corporation) -> {
+            item.setBuyCorporationName(corporation.getName());
+        });
+        //赋值卖方名称
+        corporationService.attributeAssign(list, IntermediateContractVo::getSellCorporationId, (item, corporation) -> {
+            item.setSellCorporationName(corporation.getName());
+        });
+        return list;
+    }
+
+    /**
+     * 获取打印信息
+     *
+     * @return
+     */
+    @Override
+    public ContractPdfInfoVo getPrintInfo(IntermediateContractDto dto) {
+        Assert.notEmpty(dto.getDocumentsId(), "单证id不能为空");
+        Documents documents = documentsService.getById(dto.getDocumentsId());
+        Assert.notEmpty(documents, "查询不到单证信息");
+        ContractPdfInfoVo contractPdfInfo = contractService.getContractPdfInfo(documents.getContractId());
+        //重新赋值买卖方信息为中间合同信息
+        //获得多公司信息
+        IntermediateContract intermediateContract = getOne(q -> q.eq(IntermediateContract::getDocumentsId, documents.getId()));
+        if (ObjectUtil.isNotEmpty(intermediateContract)) {
+            List<Long> corporationIds = Arrays.asList(intermediateContract.getBuyCorporationId(), intermediateContract.getSellCorporationId());
+            Map<Long, Corporation> corporationMap = corporationService.mapKEntity(Corporation::getId, q -> q.in(Corporation::getId, corporationIds));
+
+            Corporation buyCorporation = corporationMap.get(intermediateContract.getBuyCorporationId());
+            //赋值买方信息
+            contractPdfInfo.setBuyContactNumber(intermediateContract.getBuyContactName());
+            contractPdfInfo.setBuyCorporationName(intermediateContract.getBuyContactNumber());
+            if (ObjectUtil.isNotEmpty(buyCorporation)) {
+                contractPdfInfo.setBuyContactName(buyCorporation.getNameEn());
+                //赋值买方国家省市详细地址信息
+                contractPdfInfo.setBuyCountryName(buyCorporation.getCountryEnStr());
+                contractPdfInfo.setBuyProvinceName(buyCorporation.getProvinceEnStr());
+                contractPdfInfo.setBuyCityName(buyCorporation.getCityEnStr());
+                contractPdfInfo.setBuyDetailedAddress(buyCorporation.getAddressEn());
+            }
+
+            Corporation sellCorporation = corporationMap.get(intermediateContract.getSellCorporationId());
+            //赋值卖方信息
+            contractPdfInfo.setSellContactNumber(intermediateContract.getSellContactName());
+            contractPdfInfo.setSellCorporationNameEn(intermediateContract.getSellContactNumber());
+            if (ObjectUtil.isNotEmpty(sellCorporation)) {
+                contractPdfInfo.setSellContactName(sellCorporation.getNameEn());
+                //赋值卖方国家省市详细地址信息
+                contractPdfInfo.setSellCountryName(sellCorporation.getCountryEnStr());
+                contractPdfInfo.setSellProvinceName(sellCorporation.getProvinceEnStr());
+                contractPdfInfo.setSellCityName(sellCorporation.getCityEnStr());
+                contractPdfInfo.setSellDetailedAddress(sellCorporation.getAddressEn());
+            }
+        }
+        return contractPdfInfo;
+    }
+
+}

+ 0 - 8
hx-sale/src/main/resources/mapper/contract/ContractMapper.xml

@@ -151,13 +151,5 @@
                  LEFT JOIN bytesailing_item.product_info pi ON cp.product_id = pi.id
             ${ew.customSqlSegment}
     </select>
-    <select id="contactList" resultType="com.fjhx.sale.entity.contract.po.Contract">
-        SELECT c.sell_contact_name,
-               c.sell_contact_number,
-               c.buy_contact_name,
-               c.buy_contact_number
-        FROM contract c
-    </select>
-
 
 </mapper>

+ 37 - 0
hx-sale/src/main/resources/mapper/intermediate/IntermediateContractMapper.xml

@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.fjhx.sale.mapper.intermediate.IntermediateContractMapper">
+    <select id="getPage" resultType="com.fjhx.sale.entity.intermediate.vo.IntermediateContractVo">
+        SELECT c.CODE,
+               c.amount,
+               c.currency,
+               c.sell_corporation_id oldSellCorporationId,
+               c.buy_corporation_id  oldBuyCorporationId,
+               ic.documents_id,
+               ic.sell_corporation_id,
+               ic.sell_contact_name,
+               ic.sell_contact_number,
+               ic.buy_corporation_id,
+               ic.buy_contact_name,
+               ic.buy_contact_number,
+               ic.create_user,
+               ic.create_time,
+               ic.update_user,
+               ic.update_time
+        FROM documents d
+                 LEFT JOIN contract c ON d.contract_id = c.id
+                 LEFT JOIN documents_transport dp ON d.id = dp.documents_id
+                 LEFT JOIN intermediate_contract ic ON ic.documents_id = d.id
+            ${ew.customSqlSegment}
+    </select>
+
+    <select id="contactList" resultType="com.fjhx.sale.entity.intermediate.vo.IntermediateContractVo">
+        SELECT ic.sell_contact_name,
+               ic.sell_contact_number,
+               ic.buy_contact_name,
+               ic.buy_contact_number
+        FROM intermediate_contract ic
+            ${ew.customSqlSegment}
+    </select>
+
+</mapper>