Jelajahi Sumber

外销跟单

caozj 1 tahun lalu
induk
melakukan
79c74eb087
19 mengubah file dengan 694 tambahan dan 65 penghapusan
  1. 181 60
      hx-admin/src/main/resources/application-dev.yml
  2. 0 0
      hx-sale/src/main/java/com/fjhx/sale/a-json/ContractDocumentaryApi.json
  3. 8 0
      hx-sale/src/main/java/com/fjhx/sale/controller/contract/ContractController.java
  4. 68 0
      hx-sale/src/main/java/com/fjhx/sale/controller/contract/ContractDocumentaryController.java
  5. 17 0
      hx-sale/src/main/java/com/fjhx/sale/entity/contract/dto/ContractDocumentaryDto.java
  6. 26 0
      hx-sale/src/main/java/com/fjhx/sale/entity/contract/dto/ContractDocumentarySelectDto.java
  7. 5 0
      hx-sale/src/main/java/com/fjhx/sale/entity/contract/dto/ContractSelectDto.java
  8. 51 0
      hx-sale/src/main/java/com/fjhx/sale/entity/contract/po/ContractDocumentary.java
  9. 29 0
      hx-sale/src/main/java/com/fjhx/sale/entity/contract/vo/ContractVo.java
  10. 6 0
      hx-sale/src/main/java/com/fjhx/sale/entity/purchase/po/EhsdPurchase.java
  11. 0 5
      hx-sale/src/main/java/com/fjhx/sale/entity/purchase/vo/EhsdPurchaseVo.java
  12. 26 0
      hx-sale/src/main/java/com/fjhx/sale/mapper/contract/ContractDocumentaryMapper.java
  13. 8 0
      hx-sale/src/main/java/com/fjhx/sale/mapper/contract/ContractMapper.java
  14. 46 0
      hx-sale/src/main/java/com/fjhx/sale/service/contract/ContractDocumentaryService.java
  15. 5 0
      hx-sale/src/main/java/com/fjhx/sale/service/contract/ContractService.java
  16. 74 0
      hx-sale/src/main/java/com/fjhx/sale/service/contract/impl/ContractDocumentaryServiceImpl.java
  17. 87 0
      hx-sale/src/main/java/com/fjhx/sale/service/contract/impl/ContractServiceImpl.java
  18. 19 0
      hx-sale/src/main/resources/mapper/contract/ContractDocumentaryMapper.xml
  19. 38 0
      hx-sale/src/main/resources/mapper/contract/ContractMapper.xml

+ 181 - 60
hx-admin/src/main/resources/application-dev.yml

@@ -1,3 +1,124 @@
+## 数据源配置
+#spring:
+#    datasource:
+#        dynamic:
+#            strict: true
+#            primary: base
+#            datasource:
+#                victoriatourist:
+#                    url: jdbc:mysql://110.41.2.116:23063/bytesailing_victoriatourist?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
+#                    username: bytesailing_db_user
+#                    password: kfG-A93-w7h-qX8
+#                common:
+#                    url: jdbc:mysql://110.41.2.116:23063/bytesailing_common?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
+#                    username: bytesailing_db_user
+#                    password: kfG-A93-w7h-qX8
+#                oa:
+#                    url: jdbc:mysql://110.41.2.116:23063/bytesailing_oa?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
+#                    username: bytesailing_db_user
+#                    password: kfG-A93-w7h-qX8
+#                mes:
+#                    url: jdbc:mysql://110.41.2.116:23063/bytesailing_mes?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
+#                    username: bytesailing_db_user
+#                    password: kfG-A93-w7h-qX8
+#                wms:
+#                    url: jdbc:mysql://110.41.2.116:23063/bytesailing_wms?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
+#                    username: bytesailing_db_user
+#                    password: kfG-A93-w7h-qX8
+#                item:
+#                    url: jdbc:mysql://110.41.2.116:23063/bytesailing_item?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
+#                    username: bytesailing_db_user
+#                    password: kfG-A93-w7h-qX8
+#                supply:
+#                    url: jdbc:mysql://110.41.2.116:23063/bytesailing_supply?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
+#                    username: bytesailing_db_user
+#                    password: kfG-A93-w7h-qX8
+#                base:
+#                    url: jdbc:mysql://110.41.2.116:23063/bytesailing_base?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
+#                    username: bytesailing_db_user
+#                    password: kfG-A93-w7h-qX8
+#                iot:
+#                    url: jdbc:mysql://110.41.2.116:23063/bytesailing_iot?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
+#                    username: bytesailing_db_user
+#                    password: kfG-A93-w7h-qX8
+#                customer:
+#                    url: jdbc:mysql://110.41.2.116:23063/bytesailing_customer?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
+#                    username: bytesailing_db_user
+#                    password: kfG-A93-w7h-qX8
+#                purchase:
+#                    url: jdbc:mysql://110.41.2.116:23063/bytesailing_purchase?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
+#                    username: bytesailing_db_user
+#                    password: kfG-A93-w7h-qX8
+#                account:
+#                    url: jdbc:mysql://110.41.2.116:23063/bytesailing_account?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
+#                    username: bytesailing_db_user
+#                    password: kfG-A93-w7h-qX8
+#                sale:
+#                    url: jdbc:mysql://110.41.2.116:23063/bytesailing_sale?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
+#                    username: bytesailing_db_user
+#                    password: kfG-A93-w7h-qX8
+#                mail:
+#                    url: jdbc:mysql://110.41.2.116:23063/bytesailing_mail?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
+#                    username: bytesailing_db_user
+#                    password: kfG-A93-w7h-qX8
+#                kd100:
+#                    url: jdbc:mysql://110.41.2.116:23063/bytesailing_kd100?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
+#                    username: bytesailing_db_user
+#                    password: kfG-A93-w7h-qX8
+#                ehsd:
+#                    url: jdbc:mysql://110.41.2.116:23063/bytesailing_ehsd?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
+#                    username: bytesailing_db_user
+#                    password: kfG-A93-w7h-qX8
+#                jxst:
+#                    url: jdbc:mysql://110.41.2.116:23063/bytesailing_jxst?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
+#                    username: bytesailing_db_user
+#                    password: kfG-A93-w7h-qX8
+#
+#    # redis 配置
+#    redis:
+#        # 地址
+#        host: 139.9.102.170
+#        # 端口,默认为6379
+#        port: 9673
+#        # 数据库索引
+#        database: 1
+#        # 密码
+#        password: ss34dsA3DdsF
+#        # 连接超时时间
+#        timeout: 10s
+#        lettuce:
+#            pool:
+#                # 连接池中的最小空闲连接
+#                min-idle: 0
+#                # 连接池中的最大空闲连接
+#                max-idle: 8
+#                # 连接池的最大数据库连接数
+#                max-active: 8
+#                # #连接池最大阻塞等待时间(使用负值表示没有限制)
+#                max-wait: -1ms
+#
+#server:
+#    servlet:
+#        context-path: /prod-api
+#
+#mail:
+#    # 调用邮箱服务url前缀
+#    urlPrefix: http://localhost:8088/mailService/
+#    abroadUrlPrefix:
+#    #abroadUrlPrefix: http://159.138.54.234:8088/mailService/
+#
+#hx:
+#    httpUrl: http://139.159.251.109:81/prod-api/
+#
+## token配置
+#token:
+#    # 令牌自定义标识
+#    header: Authorization
+#    # 令牌密钥
+#    secret: abcdefghijklmnopqrstuvwxyz
+#    # 令牌有效期(默认30分钟)
+#    expireTime: 240
+
 # 数据源配置
 spring:
     datasource:
@@ -6,84 +127,84 @@ spring:
             primary: base
             datasource:
                 victoriatourist:
-                    url: jdbc:mysql://110.41.2.116:23063/bytesailing_victoriatourist?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
-                    username: bytesailing_db_user
-                    password: kfG-A93-w7h-qX8
+                    url: jdbc:mysql://121.37.194.75:30102/bytesailing_victoriatourist?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
+                    username: root
+                    password: 5fWD*oa^nso@kmKa
                 common:
-                    url: jdbc:mysql://110.41.2.116:23063/bytesailing_common?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
-                    username: bytesailing_db_user
-                    password: kfG-A93-w7h-qX8
+                    url: jdbc:mysql://121.37.194.75:30102/bytesailing_common?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
+                    username: root
+                    password: 5fWD*oa^nso@kmKa
                 oa:
-                    url: jdbc:mysql://110.41.2.116:23063/bytesailing_oa?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
-                    username: bytesailing_db_user
-                    password: kfG-A93-w7h-qX8
+                    url: jdbc:mysql://121.37.194.75:30102/bytesailing_oa?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
+                    username: root
+                    password: 5fWD*oa^nso@kmKa
                 mes:
-                    url: jdbc:mysql://110.41.2.116:23063/bytesailing_mes?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
-                    username: bytesailing_db_user
-                    password: kfG-A93-w7h-qX8
+                    url: jdbc:mysql://121.37.194.75:30102/bytesailing_mes?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
+                    username: root
+                    password: 5fWD*oa^nso@kmKa
                 wms:
-                    url: jdbc:mysql://110.41.2.116:23063/bytesailing_wms?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
-                    username: bytesailing_db_user
-                    password: kfG-A93-w7h-qX8
+                    url: jdbc:mysql://121.37.194.75:30102/bytesailing_wms?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
+                    username: root
+                    password: 5fWD*oa^nso@kmKa
                 item:
-                    url: jdbc:mysql://110.41.2.116:23063/bytesailing_item?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
-                    username: bytesailing_db_user
-                    password: kfG-A93-w7h-qX8
+                    url: jdbc:mysql://121.37.194.75:30102/bytesailing_item?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
+                    username: root
+                    password: 5fWD*oa^nso@kmKa
                 supply:
-                    url: jdbc:mysql://110.41.2.116:23063/bytesailing_supply?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
-                    username: bytesailing_db_user
-                    password: kfG-A93-w7h-qX8
+                    url: jdbc:mysql://121.37.194.75:30102/bytesailing_supply?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
+                    username: root
+                    password: 5fWD*oa^nso@kmKa
                 base:
-                    url: jdbc:mysql://110.41.2.116:23063/bytesailing_base?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
-                    username: bytesailing_db_user
-                    password: kfG-A93-w7h-qX8
+                    url: jdbc:mysql://121.37.194.75:30102/bytesailing_base?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
+                    username: root
+                    password: 5fWD*oa^nso@kmKa
                 iot:
-                    url: jdbc:mysql://110.41.2.116:23063/bytesailing_iot?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
-                    username: bytesailing_db_user
-                    password: kfG-A93-w7h-qX8
+                    url: jdbc:mysql://121.37.194.75:30102/bytesailing_iot?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
+                    username: root
+                    password: 5fWD*oa^nso@kmKa
                 customer:
-                    url: jdbc:mysql://110.41.2.116:23063/bytesailing_customer?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
-                    username: bytesailing_db_user
-                    password: kfG-A93-w7h-qX8
+                    url: jdbc:mysql://121.37.194.75:30102/bytesailing_customer?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
+                    username: root
+                    password: 5fWD*oa^nso@kmKa
                 purchase:
-                    url: jdbc:mysql://110.41.2.116:23063/bytesailing_purchase?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
-                    username: bytesailing_db_user
-                    password: kfG-A93-w7h-qX8
+                    url: jdbc:mysql://121.37.194.75:30102/bytesailing_purchase?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
+                    username: root
+                    password: 5fWD*oa^nso@kmKa
                 account:
-                    url: jdbc:mysql://110.41.2.116:23063/bytesailing_account?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
-                    username: bytesailing_db_user
-                    password: kfG-A93-w7h-qX8
+                    url: jdbc:mysql://121.37.194.75:30102/bytesailing_account?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
+                    username: root
+                    password: 5fWD*oa^nso@kmKa
                 sale:
-                    url: jdbc:mysql://110.41.2.116:23063/bytesailing_sale?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
-                    username: bytesailing_db_user
-                    password: kfG-A93-w7h-qX8
+                    url: jdbc:mysql://121.37.194.75:30102/bytesailing_sale?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
+                    username: root
+                    password: 5fWD*oa^nso@kmKa
                 mail:
-                    url: jdbc:mysql://110.41.2.116:23063/bytesailing_mail?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
-                    username: bytesailing_db_user
-                    password: kfG-A93-w7h-qX8
+                    url: jdbc:mysql://121.37.194.75:30102/bytesailing_mail?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
+                    username: root
+                    password: 5fWD*oa^nso@kmKa
                 kd100:
-                    url: jdbc:mysql://110.41.2.116:23063/bytesailing_kd100?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
-                    username: bytesailing_db_user
-                    password: kfG-A93-w7h-qX8
+                    url: jdbc:mysql://121.37.194.75:30102/bytesailing_kd100?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
+                    username: root
+                    password: 5fWD*oa^nso@kmKa
                 ehsd:
-                    url: jdbc:mysql://110.41.2.116:23063/bytesailing_ehsd?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
-                    username: bytesailing_db_user
-                    password: kfG-A93-w7h-qX8
+                    url: jdbc:mysql://121.37.194.75:30102/bytesailing_ehsd?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
+                    username: root
+                    password: 5fWD*oa^nso@kmKa
                 jxst:
-                    url: jdbc:mysql://110.41.2.116:23063/bytesailing_jxst?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
-                    username: bytesailing_db_user
-                    password: kfG-A93-w7h-qX8
+                    url: jdbc:mysql://121.37.194.75:30102/bytesailing_jxst?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
+                    username: root
+                    password: 5fWD*oa^nso@kmKa
 
     # redis 配置
     redis:
         # 地址
-        host: 139.9.102.170
+        host: 121.37.194.75
         # 端口,默认为6379
-        port: 9673
+        port: 30103
         # 数据库索引
-        database: 1
+        database: 5
         # 密码
-        password: ss34dsA3DdsF
+        password: Fjhx@pwd123
         # 连接超时时间
         timeout: 10s
         lettuce:
@@ -98,17 +219,17 @@ spring:
                 max-wait: -1ms
 
 server:
+    port: 9901
     servlet:
-        context-path: /prod-api
+        context-path: /
 
 mail:
     # 调用邮箱服务url前缀
-    urlPrefix: http://localhost:8088/mailService/
+    urlPrefix:
     abroadUrlPrefix:
-    #abroadUrlPrefix: http://159.138.54.234:8088/mailService/
 
 hx:
-    httpUrl: http://139.159.251.109:81/prod-api/
+    httpUrl: http://36.134.91.96:10006/test-api/
 
 # token配置
 token:
@@ -117,4 +238,4 @@ token:
     # 令牌密钥
     secret: abcdefghijklmnopqrstuvwxyz
     # 令牌有效期(默认30分钟)
-    expireTime: 240
+    expireTime: 2880

File diff ditekan karena terlalu besar
+ 0 - 0
hx-sale/src/main/java/com/fjhx/sale/a-json/ContractDocumentaryApi.json


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

@@ -264,6 +264,14 @@ public class ContractController {
     }
 
     /**
+     * 外销跟单分页
+     */
+    @PostMapping("/exportCopy/page")
+    public Page<ContractVo> exportCopyPage(@RequestBody ContractSelectDto dto) {
+        return contractService.getExportCopyList(dto);
+    }
+
+    /**
      * 根据合同id获取合同的资金流水信息
      */
     @PostMapping("/111")

+ 68 - 0
hx-sale/src/main/java/com/fjhx/sale/controller/contract/ContractDocumentaryController.java

@@ -0,0 +1,68 @@
+package com.fjhx.sale.controller.contract;
+
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.sale.entity.contract.vo.ContractDocumentaryVo;
+import com.fjhx.sale.entity.contract.dto.ContractDocumentarySelectDto;
+import com.fjhx.sale.entity.contract.dto.ContractDocumentaryDto;
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import com.fjhx.sale.service.contract.ContractDocumentaryService;
+import org.springframework.beans.factory.annotation.Autowired;
+
+
+/**
+ * <p>
+ * 外销跟单表 前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2023-08-30
+ */
+@RestController
+@RequestMapping("/contractDocumentary")
+public class ContractDocumentaryController {
+
+    @Autowired
+    private ContractDocumentaryService contractDocumentaryService;
+
+    /**
+     * 外销跟单表分页
+     */
+    @PostMapping("/page")
+    public Page<ContractDocumentaryVo> page(@RequestBody ContractDocumentarySelectDto dto) {
+        return contractDocumentaryService.getPage(dto);
+    }
+
+    /**
+     * 外销跟单表明细
+     */
+    @PostMapping("/detail")
+    public ContractDocumentaryVo detail(@RequestBody BaseSelectDto dto) {
+        return contractDocumentaryService.detail(dto.getId());
+    }
+
+    /**
+     * 外销跟单表新增
+     */
+    @PostMapping("/add")
+    public void add(@RequestBody ContractDocumentaryDto contractDocumentaryDto) {
+        contractDocumentaryService.add(contractDocumentaryDto);
+    }
+
+    /**
+     * 外销跟单表编辑
+     */
+    @PostMapping("/edit")
+    public void edit(@RequestBody ContractDocumentaryDto contractDocumentaryDto) {
+        contractDocumentaryService.edit(contractDocumentaryDto);
+    }
+
+    /**
+     * 外销跟单表删除
+     */
+    @PostMapping("/delete")
+    public void delete(@RequestBody BaseSelectDto dto) {
+        contractDocumentaryService.delete(dto.getId());
+    }
+
+}

+ 17 - 0
hx-sale/src/main/java/com/fjhx/sale/entity/contract/dto/ContractDocumentaryDto.java

@@ -0,0 +1,17 @@
+package com.fjhx.sale.entity.contract.dto;
+
+import com.fjhx.sale.entity.contract.po.ContractDocumentary;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 外销跟单表新增编辑入参实体
+ *
+ * @author 
+ * @since 2023-08-30
+ */
+@Getter
+@Setter
+public class ContractDocumentaryDto extends ContractDocumentary {
+
+}

+ 26 - 0
hx-sale/src/main/java/com/fjhx/sale/entity/contract/dto/ContractDocumentarySelectDto.java

@@ -0,0 +1,26 @@
+package com.fjhx.sale.entity.contract.dto;
+
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 外销跟单表列表查询入参实体
+ *
+ * @author 
+ * @since 2023-08-30
+ */
+@Getter
+@Setter
+public class ContractDocumentarySelectDto extends BaseSelectDto {
+
+    /**
+     * 合同ID
+     */
+    private Long contractId;
+
+    /**
+     * 跟单类型
+     */
+    private String documentaryType;
+}

+ 5 - 0
hx-sale/src/main/java/com/fjhx/sale/entity/contract/dto/ContractSelectDto.java

@@ -49,4 +49,9 @@ public class ContractSelectDto extends BaseSelectDto {
      */
     private String contractType;
 
+    /**
+     * 订单状态
+     */
+    private Integer orderStatus;
+
 }

+ 51 - 0
hx-sale/src/main/java/com/fjhx/sale/entity/contract/po/ContractDocumentary.java

@@ -0,0 +1,51 @@
+package com.fjhx.sale.entity.contract.po;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.fjhx.file.entity.ObsFile;
+import com.ruoyi.common.core.domain.BasePo;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.util.Date;
+import java.util.List;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 外销跟单表
+ * </p>
+ *
+ * @author 
+ * @since 2023-08-30
+ */
+@Getter
+@Setter
+@TableName("contract_documentary")
+public class ContractDocumentary extends BasePo {
+
+    /**
+     * 合同ID
+     */
+    private Long contractId;
+
+    /**
+     * 跟单类型 字典 documentary_type
+     */
+    private String documentaryType;
+
+    /**
+     * 跟单时间
+     */
+    private Date documentaryTime;
+
+    /**
+     * 跟单记录
+     */
+    private String documentaryRemark;
+
+    /**
+     * 文件列表
+     */
+    @TableField(exist = false)
+    private List<ObsFile> fileList;
+}

+ 29 - 0
hx-sale/src/main/java/com/fjhx/sale/entity/contract/vo/ContractVo.java

@@ -5,11 +5,13 @@ import com.fjhx.sale.entity.contract.po.Contract;
 import com.fjhx.sale.entity.contract.po.ContractProduct;
 import com.fjhx.sale.entity.contract.po.ContractProject;
 import com.fjhx.sale.entity.contract.po.ContractShipment;
+import com.fjhx.sale.entity.purchase.po.EhsdPurchase;
 import com.fjhx.sale.entity.sample.vo.SampleShipmentVo;
 import lombok.Getter;
 import lombok.Setter;
 
 import java.math.BigDecimal;
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -136,6 +138,10 @@ public class ContractVo extends Contract {
 
     List<ContractProduct> contractProductList;
 
+
+    List<EhsdPurchase> purchaseList;
+
+
     List<ContractProject> contractProjectList;
 
     List<ContractShipment> contractShipmentList;
@@ -166,6 +172,29 @@ public class ContractVo extends Contract {
      */
     private String type;
 
+    /**
+     * 定金
+     */
+    private BigDecimal earnest;
+
+    /**
+     * 尾款
+     */
+    private BigDecimal finalPayment;
+
+    /**
+     * 到账时间
+     */
+    private Date claimTime;
+
+    /**
+     * 包装条数
+     */
+    private Integer packCount;
 
+    /**
+     * 采购条数
+     */
+    private Integer purchaseCount;
 }
 

+ 6 - 0
hx-sale/src/main/java/com/fjhx/sale/entity/purchase/po/EhsdPurchase.java

@@ -267,4 +267,10 @@ public class EhsdPurchase extends BasePo {
      */
     @TableField(exist = false)
     private List<EhsdPurchaseProject> purchaseProjectList;
+
+    /**
+     * 供应商名称
+     */
+    @TableField(exist = false)
+    private String supplyName;
 }

+ 0 - 5
hx-sale/src/main/java/com/fjhx/sale/entity/purchase/vo/EhsdPurchaseVo.java

@@ -23,11 +23,6 @@ import java.util.List;
 public class EhsdPurchaseVo extends EhsdPurchase {
 
     /**
-     * 供应商名称
-     */
-    private String supplyName;
-
-    /**
      * 采购明细
      */
     private List<EhsdPurchaseProductVo> ehsdPurchaseProductList;

+ 26 - 0
hx-sale/src/main/java/com/fjhx/sale/mapper/contract/ContractDocumentaryMapper.java

@@ -0,0 +1,26 @@
+package com.fjhx.sale.mapper.contract;
+
+import com.fjhx.sale.entity.contract.po.ContractDocumentary;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.sale.entity.contract.vo.ContractDocumentaryVo;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import org.apache.ibatis.annotations.Param;
+
+
+/**
+ * <p>
+ * 外销跟单表 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2023-08-30
+ */
+public interface ContractDocumentaryMapper extends BaseMapper<ContractDocumentary> {
+
+    /**
+     * 外销跟单表分页
+     */
+    Page<ContractDocumentaryVo> getPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<ContractDocumentary> wrapper);
+
+}

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

@@ -107,4 +107,12 @@ public interface ContractMapper extends BaseMapper<Contract> {
 
     void updateContract(Contract contract);
 
+    /**
+     * 外销跟单分页
+     * @param page
+     * @param wrapper
+     * @return
+     */
+    Page<ContractVo> getExportCopyList(@Param("page") Page<Object> page, @Param("ew") IWrapper<Contract> wrapper);
+
 }

+ 46 - 0
hx-sale/src/main/java/com/fjhx/sale/service/contract/ContractDocumentaryService.java

@@ -0,0 +1,46 @@
+package com.fjhx.sale.service.contract;
+
+import com.fjhx.sale.entity.contract.po.ContractDocumentary;
+import com.ruoyi.common.core.service.BaseService;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.sale.entity.contract.vo.ContractDocumentaryVo;
+import com.fjhx.sale.entity.contract.dto.ContractDocumentarySelectDto;
+import com.fjhx.sale.entity.contract.dto.ContractDocumentaryDto;
+
+
+/**
+ * <p>
+ * 外销跟单表 服务类
+ * </p>
+ *
+ * @author 
+ * @since 2023-08-30
+ */
+public interface ContractDocumentaryService extends BaseService<ContractDocumentary> {
+
+    /**
+     * 外销跟单表分页
+     */
+    Page<ContractDocumentaryVo> getPage(ContractDocumentarySelectDto dto);
+
+    /**
+     * 外销跟单表明细
+     */
+    ContractDocumentaryVo detail(Long id);
+
+    /**
+     * 外销跟单表新增
+     */
+    void add(ContractDocumentaryDto contractDocumentaryDto);
+
+    /**
+     * 外销跟单表编辑
+     */
+    void edit(ContractDocumentaryDto contractDocumentaryDto);
+
+    /**
+     * 外销跟单表删除
+     */
+    void delete(Long id);
+
+}

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

@@ -190,4 +190,9 @@ public interface ContractService extends BaseService<Contract> {
     List<AccountRunningWaterVo> getAccountRunningWaterByContractId(Long contractId);
 
     void updateContract(Contract contract);
+
+    /**
+     * 外销跟单分页
+     */
+    Page<ContractVo> getExportCopyList(ContractSelectDto dto);
 }

+ 74 - 0
hx-sale/src/main/java/com/fjhx/sale/service/contract/impl/ContractDocumentaryServiceImpl.java

@@ -0,0 +1,74 @@
+package com.fjhx.sale.service.contract.impl;
+
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.dynamic.datasource.annotation.DSTransactional;
+import com.fjhx.file.utils.ObsFileUtil;
+import com.fjhx.sale.entity.contract.po.Contract;
+import com.fjhx.sale.entity.contract.po.ContractDocumentary;
+import com.fjhx.sale.mapper.contract.ContractDocumentaryMapper;
+import com.fjhx.sale.service.contract.ContractDocumentaryService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.sale.entity.contract.vo.ContractDocumentaryVo;
+import com.fjhx.sale.entity.contract.dto.ContractDocumentarySelectDto;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import com.fjhx.sale.entity.contract.dto.ContractDocumentaryDto;
+import cn.hutool.core.bean.BeanUtil;
+
+
+/**
+ * <p>
+ * 外销跟单表 服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2023-08-30
+ */
+@Service
+public class ContractDocumentaryServiceImpl extends ServiceImpl<ContractDocumentaryMapper, ContractDocumentary> implements ContractDocumentaryService {
+
+    /**
+     * 分页
+     * @param dto
+     * @return
+     */
+    @Override
+    public Page<ContractDocumentaryVo> getPage(ContractDocumentarySelectDto dto) {
+        IWrapper<ContractDocumentary> wrapper = getWrapper();
+        wrapper.eq(ObjectUtil.isNotEmpty(dto.getContractId()),"contract_id",dto.getContractId());
+        wrapper.eq(ObjectUtil.isNotEmpty(dto.getDocumentaryType()),"documentary_type",dto.getDocumentaryType());
+        wrapper.orderByDesc("cd", ContractDocumentary::getId);
+        Page<ContractDocumentaryVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
+        return page;
+    }
+
+    @Override
+    public ContractDocumentaryVo detail(Long id) {
+        ContractDocumentary ContractDocumentary = this.getById(id);
+        ContractDocumentaryVo result = BeanUtil.toBean(ContractDocumentary, ContractDocumentaryVo.class);
+        return result;
+    }
+
+    /**
+     * 添加
+     * @param contractDocumentaryDto
+     */
+    @Override
+    @DSTransactional
+    public void add(ContractDocumentaryDto contractDocumentaryDto) {
+        this.save(contractDocumentaryDto);
+        ObsFileUtil.saveFile(contractDocumentaryDto.getFileList(),contractDocumentaryDto.getId());
+    }
+
+    @Override
+    public void edit(ContractDocumentaryDto contractDocumentaryDto) {
+        this.updateById(contractDocumentaryDto);
+    }
+
+    @Override
+    public void delete(Long id) {
+        this.removeById(id);
+    }
+
+}

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

@@ -47,6 +47,7 @@ import com.fjhx.purchase.entity.pay.po.Pay;
 import com.fjhx.purchase.entity.purchase.po.Purchase;
 import com.fjhx.purchase.entity.purchase.po.PurchaseDetail;
 import com.fjhx.purchase.entity.purchase.vo.PurchaseDetailVo;
+import com.fjhx.purchase.entity.purchase.vo.PurchaseVo;
 import com.fjhx.purchase.entity.quality.po.QualityDetail;
 import com.fjhx.purchase.service.arrival.ArrivalDetailService;
 import com.fjhx.purchase.service.pay.PayDetailService;
@@ -77,6 +78,7 @@ import com.fjhx.sale.service.contract.ContractService;
 import com.fjhx.sale.service.contract.ContractShipmentService;
 import com.fjhx.sale.service.purchase.EhsdPurchaseProductService;
 import com.fjhx.sale.service.purchase.EhsdPurchaseService;
+import com.fjhx.supply.service.supplier.SupplierInfoService;
 import com.fjhx.tenant.entity.dict.dto.DictTenantDataSelectDto;
 import com.fjhx.tenant.entity.dict.vo.DictTenantDataVo;
 import com.fjhx.tenant.service.dict.DictTenantDataService;
@@ -129,6 +131,9 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract>
     private ThreadPoolExecutor threadPoolExecutor;
 
     @Autowired
+    private SupplierInfoService supplierInfoService;
+
+    @Autowired
     private CustomerService customerService;
 
     @Autowired
@@ -1844,6 +1849,88 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract>
 
     }
 
+    /**
+     * 外销跟单分页
+     * @param dto
+     * @return
+     */
+    @Override
+    public Page<ContractVo> getExportCopyList(ContractSelectDto dto) {
+        List<Long> authIdList = customerService.getAuthIdList();
+
+        if (authIdList.size() == 0) {
+            return new Page<>();
+        }
+
+        IWrapper<Contract> wrapper = getWrapper();
+        wrapper.in("t1", Contract::getBuyCorporationId, authIdList);
+        wrapper.orderByDesc("t1", Contract::getCreateTime);
+        wrapper.eq("t1", Contract::getIsChange, "0");//列表只展示未变更得数据
+        wrapper.ne("t1",Contract::getIsShow,1);
+        wrapper.eq("t1", Contract::getStatus, FlowStatusEnum1.PASS.getKey());
+        wrapper.eq("t1.orderStatus", dto.getOrderStatus());
+        Page<ContractVo> page = baseMapper.getExportCopyList(dto.getPage(), wrapper);
+        List<ContractVo> list = page.getRecords();
+        if(CollectionUtils.isNotEmpty(list)){
+            List<Long> customerIds = list.stream().map(Contract::getBuyCorporationId).collect(Collectors.toList());
+            List<Customer> customerList = customerService.list(Wrappers.<Customer>query().lambda().in(Customer::getId, customerIds));
+            Map<Long, List<Customer>> cusMap = customerList.stream().distinct().collect(Collectors.groupingBy(Customer::getId));
+            List<Long> ids = list.stream().map(ContractVo::getId).collect(Collectors.toList());
+            // 获取交接单附件
+            Map<Long, List<FileInfoVo>> fileMap = ObsFileUtil.getFileMap(ids, 1);
+            // 获取包装附件
+            Map<Long, List<FileInfoVo>> packageFileMap = ObsFileUtil.getFileMap(ids, 2);
+            //合同产品
+            List<ContractProduct> contractProductList = contractProductService.list(Wrappers.<ContractProduct>query().lambda().in(ContractProduct::getContractId,ids));
+            Map<Long,List<ContractProduct>> contractProductMap = contractProductList.stream().collect(Collectors.groupingBy(ContractProduct::getContractId));
+            //采购合同
+            List<EhsdPurchase> ehsdPurchaseList = ehsdPurchaseService.list(Wrappers.<EhsdPurchase>query().lambda().in(EhsdPurchase::getDataResourceId,ids));
+            //赋值采购合同供应商
+            supplierInfoService.attributeAssign(ehsdPurchaseList, EhsdPurchase::getSellCorporationId, (item, supplierInfo) -> {
+                item.setSupplyName(supplierInfo.getName());
+            });
+            Map<Long,List<EhsdPurchase>> ehsdPurchaseMap = ehsdPurchaseList.stream().collect(Collectors.groupingBy(EhsdPurchase::getDataResourceId));
+            for (ContractVo p : list) {
+                // 客户
+                if (MapUtils.isNotEmpty(cusMap)) {
+                    List<Customer> customers = cusMap.getOrDefault(p.getBuyCorporationId(), null);
+                    p.setBuyCorporationName(customers == null ? null : customers.get(0).getName());
+                    // 赋值客户标签
+                    p.setTag(customers == null ? null : customers.get(0).getTag());
+                }
+                // 赋值交接单附件
+                if (MapUtils.isNotEmpty(fileMap)) {
+                    List<FileInfoVo> fileInfoVos = fileMap.get(p.getId());
+                    p.setFileInfoVos(fileInfoVos);
+                }
+                // 赋值包装附件信息
+                if (MapUtils.isNotEmpty(packageFileMap)) {
+                    List<FileInfoVo> packageFileInfoVOList = packageFileMap.get(p.getId());
+                    p.setPackageFileInfoVOList(packageFileInfoVOList);
+                }
+                // 赋值产品信息
+                if (MapUtils.isNotEmpty(contractProductMap)) {
+                    List<ContractProduct> contractProducts = contractProductMap.get(p.getId());
+                    p.setContractProductList(contractProducts);
+                }
+                // 赋值采购单信息
+                if (MapUtils.isNotEmpty(ehsdPurchaseMap)) {
+                    List<EhsdPurchase> purchases = ehsdPurchaseMap.get(p.getId());
+                    p.setPurchaseList(purchases);
+                }
+
+                p.setAmountCNY(p.getAmount().multiply(p.getRate()));//CNY金额
+                p.setFinalPayment(p.getAmountCNY().subtract(p.getSumClaimMoney()));//尾款
+            }
+        }
+        //赋值原卖方公司名称 多公司
+        corporationService.attributeAssign(list, ContractVo::getSellCorporationId, (item, corporation) -> {
+            item.setSellCorporationName(corporation.getName());
+        });
+        //查询合同产品
+        return page;
+    }
+
     public static void main(String[] args) {
         BigDecimal a = null;
         double d1 = a.doubleValue() * 0.13;

+ 19 - 0
hx-sale/src/main/resources/mapper/contract/ContractDocumentaryMapper.xml

@@ -0,0 +1,19 @@
+<?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.contract.ContractDocumentaryMapper">
+    <select id="getPage" resultType="com.fjhx.sale.entity.contract.vo.ContractDocumentaryVo">
+        select
+            cd.id,
+            cd.contract_id,
+            cd.documentary_type,
+            cd.documentary_time,
+            cd.documentary_remark,
+            cd.create_user,
+            cd.create_time,
+            cd.update_user,
+            cd.update_time
+        from contract_documentary cd
+            ${ew.customSqlSegment}
+    </select>
+
+</mapper>

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

@@ -399,4 +399,42 @@
         </set>
         where id = #{upId}
     </update>
+
+    <select id="getExportCopyList" resultType="com.fjhx.sale.entity.contract.vo.ContractVo">
+        SELECT * FROM (SELECT
+            t1.*,
+            CASE
+            WHEN t1.purchaseCount = 0 THEN 10
+            WHEN t1.packCount = 0 THEN 20
+            WHEN t1.packCount > 0 AND t1.sumClaimMoney &lt; t1.amountCNY THEN 30
+            WHEN t1.packCount = 0 AND t1.sumClaimMoney >= t1.amountCNY THEN 40
+            WHEN t1.packCount > 0 AND t1.sumClaimMoney >= t1.amountCNY THEN 50
+            ELSE 88
+            END                                   AS orderStatus
+        FROM
+            (
+                SELECT
+                    t1.*,
+                    IFNULL( t1.amount * t1.rate, 0 ) AS amountCNY,
+                    IFNULL(t1.advance_ratio,0)*IFNULL(t1.amount,0)/100 AS earnest,
+                    ( SELECT create_time FROM claim_contract WHERE contract_id = t1.id ORDER BY create_time ASC LIMIT 1) AS claimTime,
+                    ( SELECT count( 1 ) FROM ehsd_purchase WHERE `status` = 30 AND data_resource_id = t1.id ) AS purchaseCount,
+                    ( SELECT count( 1 ) FROM pack_detail WHERE FIND_IN_SET( contract_ids, t1.id ) AND shipment_status = 1 ) AS packCount,
+                    (
+                        SELECT
+                            IFNULL( SUM( IFNULL( cc.money, 0 ) * IFNULL( arw.rate, 1 )), 0 )
+                        FROM
+                            claim_contract cc
+                                LEFT JOIN claim c ON cc.claim_id = c.id
+                                LEFT JOIN bytesailing_account.account_running_water arw ON c.business_id = arw.id
+                        WHERE
+                            cc.contract_id = t1.id
+                    ) AS sumClaimMoney
+            FROM
+                contract t1
+                WHERE `status` = 30
+            ) t1
+        ) t1
+        ${ew.customSqlSegment}
+    </select>
 </mapper>

Beberapa file tidak ditampilkan karena terlalu banyak file yang berubah dalam diff ini