caozj 2 роки тому
батько
коміт
2780e60460
25 змінених файлів з 414 додано та 68 видалено
  1. 10 2
      hx-account/src/main/java/com/fjhx/account/controller/account/AccountRunningWaterController.java
  2. 37 0
      hx-account/src/main/java/com/fjhx/account/controller/tax/TaxRefundDetailsController.java
  3. 9 1
      hx-account/src/main/java/com/fjhx/account/entity/account/dto/AccountRunningWaterDto.java
  4. 5 0
      hx-account/src/main/java/com/fjhx/account/entity/account/po/AccountRunningWater.java
  5. 17 0
      hx-account/src/main/java/com/fjhx/account/entity/tax/dto/TaxRefundDetailsDto.java
  6. 17 0
      hx-account/src/main/java/com/fjhx/account/entity/tax/dto/TaxRefundDetailsSelectDto.java
  7. 36 0
      hx-account/src/main/java/com/fjhx/account/entity/tax/po/TaxRefundDetails.java
  8. 17 0
      hx-account/src/main/java/com/fjhx/account/entity/tax/vo/TaxRefundDetailsVo.java
  9. 5 3
      hx-account/src/main/java/com/fjhx/account/mapper/account/AccountRunningWaterMapper.java
  10. 26 0
      hx-account/src/main/java/com/fjhx/account/mapper/tax/TaxRefundDetailsMapper.java
  11. 5 0
      hx-account/src/main/java/com/fjhx/account/service/account/AccountRunningWaterService.java
  12. 33 2
      hx-account/src/main/java/com/fjhx/account/service/account/impl/AccountRunningWaterServiceImpl.java
  13. 25 0
      hx-account/src/main/java/com/fjhx/account/service/tax/TaxRefundDetailsService.java
  14. 33 0
      hx-account/src/main/java/com/fjhx/account/service/tax/impl/TaxRefundDetailsServiceImpl.java
  15. 8 2
      hx-account/src/main/resources/mapper/account/AccountRunningWaterMapper.xml
  16. 17 0
      hx-account/src/main/resources/mapper/tax/TaxRefundDetailsMapper.xml
  17. 45 45
      hx-admin/src/main/resources/application-prod.yml
  18. 5 0
      hx-sale/src/main/java/com/fjhx/sale/entity/contract/po/Contract.java
  19. 10 0
      hx-sale/src/main/java/com/fjhx/sale/entity/intermediate/dto/IntermediateContractSelectDto.java
  20. 5 0
      hx-sale/src/main/java/com/fjhx/sale/entity/pack/vo/PackDetailVo.java
  21. 6 1
      hx-sale/src/main/java/com/fjhx/sale/flow/ContractFlow.java
  22. 7 5
      hx-sale/src/main/java/com/fjhx/sale/service/claim/impl/ClaimServiceImpl.java
  23. 21 4
      hx-sale/src/main/java/com/fjhx/sale/service/intermediate/impl/IntermediateContractServiceImpl.java
  24. 7 3
      hx-sale/src/main/resources/mapper/contract/ContractMapper.xml
  25. 8 0
      hx-sale/src/main/resources/mapper/pack/PackDetailMapper.xml

+ 10 - 2
hx-account/src/main/java/com/fjhx/account/controller/account/AccountRunningWaterController.java

@@ -95,8 +95,16 @@ public class AccountRunningWaterController {
      * 账户资金流水表导出excel
      */
     @PostMapping("/exportExcel")
-    public void exportExcel(@RequestBody AccountRunningWaterSelectDto dto,HttpServletResponse httpServletResponse) {
-        accountRunningWaterService.exportExcel(dto,httpServletResponse);
+    public void exportExcel(@RequestBody AccountRunningWaterSelectDto dto, HttpServletResponse httpServletResponse) {
+        accountRunningWaterService.exportExcel(dto, httpServletResponse);
+    }
+
+    /**
+     * 退税添加
+     */
+    @PostMapping("/taxRefund")
+    public void taxRefund(@RequestBody AccountRunningWaterDto dto) {
+        accountRunningWaterService.taxRefund(dto);
     }
 
 }

+ 37 - 0
hx-account/src/main/java/com/fjhx/account/controller/tax/TaxRefundDetailsController.java

@@ -0,0 +1,37 @@
+package com.fjhx.account.controller.tax;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.account.entity.tax.dto.TaxRefundDetailsSelectDto;
+import com.fjhx.account.entity.tax.vo.TaxRefundDetailsVo;
+import com.fjhx.account.service.tax.TaxRefundDetailsService;
+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;
+
+
+/**
+ * <p>
+ * 退税明细表 前端控制器
+ * </p>
+ *
+ * @author
+ * @since 2023-06-30
+ */
+@RestController
+@RequestMapping("/taxRefundDetails")
+public class TaxRefundDetailsController {
+
+    @Autowired
+    private TaxRefundDetailsService taxRefundDetailsService;
+
+    /**
+     * 退税明细表分页
+     */
+    @PostMapping("/page")
+    public Page<TaxRefundDetailsVo> page(@RequestBody TaxRefundDetailsSelectDto dto) {
+        return taxRefundDetailsService.getPage(dto);
+    }
+
+}

+ 9 - 1
hx-account/src/main/java/com/fjhx/account/entity/account/dto/AccountRunningWaterDto.java

@@ -1,17 +1,25 @@
 package com.fjhx.account.entity.account.dto;
 
 import com.fjhx.account.entity.account.po.AccountRunningWater;
+import com.fjhx.account.entity.tax.po.TaxRefundDetails;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.util.List;
+
 /**
  * 账户资金流水表新增编辑入参实体
  *
- * @author 
+ * @author
  * @since 2023-04-06
  */
 @Getter
 @Setter
 public class AccountRunningWaterDto extends AccountRunningWater {
 
+    /**
+     * 退税合同明细列表
+     */
+    List<TaxRefundDetails> taxRefundDetailsList;
+
 }

+ 5 - 0
hx-account/src/main/java/com/fjhx/account/entity/account/po/AccountRunningWater.java

@@ -95,6 +95,11 @@ public class AccountRunningWater extends BasePo {
     private Integer isClaim;
 
     /**
+     * 汇率
+     */
+    private BigDecimal rate;
+
+    /**
      * 条数
      */
     @TableField(exist = false)

+ 17 - 0
hx-account/src/main/java/com/fjhx/account/entity/tax/dto/TaxRefundDetailsDto.java

@@ -0,0 +1,17 @@
+package com.fjhx.account.entity.tax.dto;
+
+import com.fjhx.account.entity.tax.po.TaxRefundDetails;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 退税明细表新增编辑入参实体
+ *
+ * @author
+ * @since 2023-06-30
+ */
+@Getter
+@Setter
+public class TaxRefundDetailsDto extends TaxRefundDetails {
+
+}

+ 17 - 0
hx-account/src/main/java/com/fjhx/account/entity/tax/dto/TaxRefundDetailsSelectDto.java

@@ -0,0 +1,17 @@
+package com.fjhx.account.entity.tax.dto;
+
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 退税明细表列表查询入参实体
+ *
+ * @author
+ * @since 2023-06-30
+ */
+@Getter
+@Setter
+public class TaxRefundDetailsSelectDto extends BaseSelectDto {
+
+}

+ 36 - 0
hx-account/src/main/java/com/fjhx/account/entity/tax/po/TaxRefundDetails.java

@@ -0,0 +1,36 @@
+package com.fjhx.account.entity.tax.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-30
+ */
+@Getter
+@Setter
+@TableName("tax_refund_details")
+public class TaxRefundDetails extends BasePo {
+
+    /**
+     * 资金流水id
+     */
+    private Long accountRunningWaterId;
+
+    /**
+     * 合同id
+     */
+    private Long contractId;
+
+    /**
+     * 合同退税关联金额
+     */
+    private Long amount;
+
+}

+ 17 - 0
hx-account/src/main/java/com/fjhx/account/entity/tax/vo/TaxRefundDetailsVo.java

@@ -0,0 +1,17 @@
+package com.fjhx.account.entity.tax.vo;
+
+import com.fjhx.account.entity.tax.po.TaxRefundDetails;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 退税明细表列表查询返回值实体
+ *
+ * @author
+ * @since 2023-06-30
+ */
+@Getter
+@Setter
+public class TaxRefundDetailsVo extends TaxRefundDetails {
+
+}

+ 5 - 3
hx-account/src/main/java/com/fjhx/account/mapper/account/AccountRunningWaterMapper.java

@@ -1,11 +1,10 @@
 package com.fjhx.account.mapper.account;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.fjhx.account.entity.account.po.AccountRunningWater;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.account.entity.account.po.AccountRunningWater;
 import com.fjhx.account.entity.account.vo.AccountRunningWaterVo;
-import com.ruoyi.common.utils.wrapper.IWrapper;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -24,10 +23,13 @@ public interface AccountRunningWaterMapper extends BaseMapper<AccountRunningWate
     /**
      * 账户资金流水表分页
      */
-    Page<AccountRunningWaterVo> getPage(@Param("page") Page<Object> page, @Param("ew")QueryWrapper<Object> wrapper);
+    Page<AccountRunningWaterVo> getPage(@Param("page") Page<Object> page, @Param("ew") QueryWrapper<Object> wrapper);
+
+    List<AccountRunningWater> getAccountRunningWaterAmount(@Param("ew") QueryWrapper<Object> wrapper, @Param("size") Integer size);
 
     /**
      * 查询至今账户详情
+     *
      * @param id
      * @return
      */

+ 26 - 0
hx-account/src/main/java/com/fjhx/account/mapper/tax/TaxRefundDetailsMapper.java

@@ -0,0 +1,26 @@
+package com.fjhx.account.mapper.tax;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.account.entity.tax.po.TaxRefundDetails;
+import com.fjhx.account.entity.tax.vo.TaxRefundDetailsVo;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import org.apache.ibatis.annotations.Param;
+
+
+/**
+ * <p>
+ * 退税明细表 Mapper 接口
+ * </p>
+ *
+ * @author
+ * @since 2023-06-30
+ */
+public interface TaxRefundDetailsMapper extends BaseMapper<TaxRefundDetails> {
+
+    /**
+     * 退税明细表分页
+     */
+    Page<TaxRefundDetailsVo> getPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<TaxRefundDetails> wrapper);
+
+}

+ 5 - 0
hx-account/src/main/java/com/fjhx/account/service/account/AccountRunningWaterService.java

@@ -61,4 +61,9 @@ public interface AccountRunningWaterService extends BaseService<AccountRunningWa
      * 账户资金流水表导出excel
      */
     void exportExcel(AccountRunningWaterSelectDto dto, HttpServletResponse httpServletResponse);
+
+    /**
+     * 退税添加
+     */
+    void taxRefund(AccountRunningWaterDto dto);
 }

+ 33 - 2
hx-account/src/main/java/com/fjhx/account/service/account/impl/AccountRunningWaterServiceImpl.java

@@ -16,14 +16,17 @@ import com.fjhx.account.entity.account.po.AccountManagement;
 import com.fjhx.account.entity.account.po.AccountRemainder;
 import com.fjhx.account.entity.account.po.AccountRunningWater;
 import com.fjhx.account.entity.account.vo.AccountRunningWaterVo;
+import com.fjhx.account.entity.tax.po.TaxRefundDetails;
 import com.fjhx.account.mapper.account.AccountRunningWaterMapper;
 import com.fjhx.account.service.account.AccountManagementService;
 import com.fjhx.account.service.account.AccountRemainderService;
 import com.fjhx.account.service.account.AccountRunningWaterService;
+import com.fjhx.account.service.tax.TaxRefundDetailsService;
 import com.fjhx.common.constant.SourceConstant;
 import com.fjhx.common.entity.corporation.po.Corporation;
 import com.fjhx.common.service.corporation.CorporationService;
 import com.fjhx.common.utils.Assert;
+import com.fjhx.common.utils.ExchangeRateUtil;
 import com.fjhx.item.util.excel.util.ExcelUtil;
 import com.fjhx.socket.service.WebSocketServer;
 import com.fjhx.tenant.entity.dict.dto.DictTenantDataSelectDto;
@@ -65,6 +68,8 @@ public class AccountRunningWaterServiceImpl extends ServiceImpl<AccountRunningWa
 
     @Autowired
     private AccountManagementService accountManagementService;
+    @Autowired
+    private TaxRefundDetailsService taxRefundDetailsService;
 
     @Override
     public Page<AccountRunningWaterVo> getPage(AccountRunningWaterSelectDto dto) {
@@ -140,6 +145,17 @@ public class AccountRunningWaterServiceImpl extends ServiceImpl<AccountRunningWa
         // 币种
         wrapper.eq(ObjectUtil.isNotEmpty(dto.getCurrency()), "arw.currency", dto.getCurrency());
         wrapper.orderByDesc("arw.transaction_time");
+
+        //获取当前分页之前的数据先处理余额
+        Integer size = (dto.getPageNum() - 1) * dto.getPageSize();
+        List<AccountRunningWater> amounts = baseMapper.getAccountRunningWaterAmount(wrapper, size);
+        //收入合
+        BigDecimal incomeSum = amounts.stream().filter(item -> "10".equals(item.getStatus())).map(AccountRunningWater::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+        //支出合
+        BigDecimal expenditureSum = amounts.stream().filter(item -> "20".equals(item.getStatus())).map(AccountRunningWater::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+        remainder = remainder.subtract(incomeSum).add(expenditureSum);
+
+        //获取分页数据
         Page<AccountRunningWaterVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
         List<AccountRunningWaterVo> records = page.getRecords();
         for (AccountRunningWaterVo record : records) {
@@ -171,7 +187,10 @@ public class AccountRunningWaterServiceImpl extends ServiceImpl<AccountRunningWa
     @Override
     @DSTransactional
     public void add(AccountRunningWaterDto dto) {
-
+        if (StringUtils.isEmpty(dto.getCurrency())) {
+            throw new ServiceException("币种不能为空");
+        }
+        dto.setRate(ExchangeRateUtil.getCnyToCodeRate(dto.getCurrency()));
         // 修改账户余额表的余额
         AccountRemainder accountRemainder = accountRemainderService.getOne(q -> q
                 .eq(AccountRemainder::getAccountManagementId, dto.getAccountManagementId())
@@ -181,7 +200,6 @@ public class AccountRunningWaterServiceImpl extends ServiceImpl<AccountRunningWa
         if (ObjectUtil.isEmpty(accountRemainder)) {
             throw new ServiceException("该账户不存在此币种,请前往资金账户添加");
         }
-
         BigDecimal amount = dto.getAmount();
         String status = dto.getStatus();
         BigDecimal remainder = accountRemainder.getRemainder();
@@ -345,4 +363,17 @@ public class AccountRunningWaterServiceImpl extends ServiceImpl<AccountRunningWa
         return dictTenantDataServiceList;
     }
 
+    /**
+     * 退税添加
+     */
+    @DSTransactional
+    @Override
+    public void taxRefund(AccountRunningWaterDto dto) {
+        dto.setStatus("10");
+        add(dto);
+        List<TaxRefundDetails> taxRefundDetailsList = dto.getTaxRefundDetailsList();
+        taxRefundDetailsList.forEach(item -> item.setAccountRunningWaterId(dto.getId()));
+        taxRefundDetailsService.saveBatch(taxRefundDetailsList);
+    }
+
 }

+ 25 - 0
hx-account/src/main/java/com/fjhx/account/service/tax/TaxRefundDetailsService.java

@@ -0,0 +1,25 @@
+package com.fjhx.account.service.tax;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.account.entity.tax.dto.TaxRefundDetailsSelectDto;
+import com.fjhx.account.entity.tax.po.TaxRefundDetails;
+import com.fjhx.account.entity.tax.vo.TaxRefundDetailsVo;
+import com.ruoyi.common.core.service.BaseService;
+
+
+/**
+ * <p>
+ * 退税明细表 服务类
+ * </p>
+ *
+ * @author
+ * @since 2023-06-30
+ */
+public interface TaxRefundDetailsService extends BaseService<TaxRefundDetails> {
+
+    /**
+     * 退税明细表分页
+     */
+    Page<TaxRefundDetailsVo> getPage(TaxRefundDetailsSelectDto dto);
+
+}

+ 33 - 0
hx-account/src/main/java/com/fjhx/account/service/tax/impl/TaxRefundDetailsServiceImpl.java

@@ -0,0 +1,33 @@
+package com.fjhx.account.service.tax.impl;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fjhx.account.entity.tax.dto.TaxRefundDetailsSelectDto;
+import com.fjhx.account.entity.tax.po.TaxRefundDetails;
+import com.fjhx.account.entity.tax.vo.TaxRefundDetailsVo;
+import com.fjhx.account.mapper.tax.TaxRefundDetailsMapper;
+import com.fjhx.account.service.tax.TaxRefundDetailsService;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import org.springframework.stereotype.Service;
+
+
+/**
+ * <p>
+ * 退税明细表 服务实现类
+ * </p>
+ *
+ * @author
+ * @since 2023-06-30
+ */
+@Service
+public class TaxRefundDetailsServiceImpl extends ServiceImpl<TaxRefundDetailsMapper, TaxRefundDetails> implements TaxRefundDetailsService {
+
+    @Override
+    public Page<TaxRefundDetailsVo> getPage(TaxRefundDetailsSelectDto dto) {
+        IWrapper<TaxRefundDetails> wrapper = getWrapper();
+        wrapper.orderByDesc("trd", TaxRefundDetails::getId);
+        Page<TaxRefundDetailsVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
+        return page;
+    }
+
+}

+ 8 - 2
hx-account/src/main/resources/mapper/account/AccountRunningWaterMapper.xml

@@ -51,10 +51,16 @@
             arw.create_time,
             arw.update_user,
             arw.update_time,
-            am.alias accountManagementName
+            am.alias                                             accountManagementName
         from account_running_water arw
-                 left join  account_management am on arw.account_management_id = am.id
+                 left join account_management am on arw.account_management_id = am.id
             ${ew.customSqlSegment}
     </select>
+    <select id="getAccountRunningWaterAmount" resultType="com.fjhx.account.entity.account.po.AccountRunningWater">
+        SELECT arw.`status`,
+               amount
+        FROM account_running_water arw ${ew.customSqlSegment}
+            LIMIT #{size}
+    </select>
 
 </mapper>

+ 17 - 0
hx-account/src/main/resources/mapper/tax/TaxRefundDetailsMapper.xml

@@ -0,0 +1,17 @@
+<?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.account.mapper.tax.TaxRefundDetailsMapper">
+    <select id="getPage" resultType="com.fjhx.account.entity.tax.vo.TaxRefundDetailsVo">
+        select trd.id,
+               trd.account_running_water_id,
+               trd.contract_id,
+               trd.amount,
+               trd.create_user,
+               trd.create_time,
+               trd.update_user,
+               trd.update_time
+        from tax_refund_details trd
+            ${ew.customSqlSegment}
+    </select>
+
+</mapper>

+ 45 - 45
hx-admin/src/main/resources/application-prod.yml

@@ -6,65 +6,65 @@ spring:
             primary: base
             datasource:
                 victoriatourist:
-                    url: jdbc:mysql://192.168.0.238:23063/bytesailing_victoriatourist?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
-                    username: hx_mysql_byteSailing_rds
-                    password: da~h2swYUI#aj134&y8K
+                  url: jdbc:mysql://192.168.0.238: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://192.168.0.238:23063/bytesailing_common?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
-                    username: hx_mysql_byteSailing_rds
-                    password: da~h2swYUI#aj134&y8K
+                  url: jdbc:mysql://192.168.0.238: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://192.168.0.238:23063/bytesailing_oa?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
-                    username: hx_mysql_byteSailing_rds
-                    password: da~h2swYUI#aj134&y8K
+                  url: jdbc:mysql://192.168.0.238: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://192.168.0.238:23063/bytesailing_mes?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
-                    username: hx_mysql_byteSailing_rds
-                    password: da~h2swYUI#aj134&y8K
+                  url: jdbc:mysql://192.168.0.238: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://192.168.0.238:23063/bytesailing_wms?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
-                    username: hx_mysql_byteSailing_rds
-                    password: da~h2swYUI#aj134&y8K
+                  url: jdbc:mysql://192.168.0.238: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://192.168.0.238:23063/bytesailing_item?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
-                    username: hx_mysql_byteSailing_rds
-                    password: da~h2swYUI#aj134&y8K
+                  url: jdbc:mysql://192.168.0.238: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://192.168.0.238:23063/bytesailing_supply?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
-                    username: hx_mysql_byteSailing_rds
-                    password: da~h2swYUI#aj134&y8K
+                  url: jdbc:mysql://192.168.0.238: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://192.168.0.238:23063/bytesailing_base?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
-                    username: hx_mysql_byteSailing_rds
-                    password: da~h2swYUI#aj134&y8K
+                  url: jdbc:mysql://192.168.0.238: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://192.168.0.238:23063/bytesailing_iot?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
-                    username: hx_mysql_byteSailing_rds
-                    password: da~h2swYUI#aj134&y8K
+                  url: jdbc:mysql://192.168.0.238: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://192.168.0.238:23063/bytesailing_customer?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
-                    username: hx_mysql_byteSailing_rds
-                    password: da~h2swYUI#aj134&y8K
+                  url: jdbc:mysql://192.168.0.238: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://192.168.0.238:23063/bytesailing_purchase?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
-                    username: hx_mysql_byteSailing_rds
-                    password: da~h2swYUI#aj134&y8K
+                  url: jdbc:mysql://192.168.0.238: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://192.168.0.238:23063/bytesailing_account?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
-                    username: hx_mysql_byteSailing_rds
-                    password: da~h2swYUI#aj134&y8K
+                  url: jdbc:mysql://192.168.0.238: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://192.168.0.238:23063/bytesailing_sale?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
-                    username: hx_mysql_byteSailing_rds
-                    password: da~h2swYUI#aj134&y8K
+                  url: jdbc:mysql://192.168.0.238: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://192.168.0.238:23063/bytesailing_mail?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
-                    username: hx_mysql_byteSailing_rds
-                    password: da~h2swYUI#aj134&y8K
+                  url: jdbc:mysql://192.168.0.238: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://192.168.0.238:23063/bytesailing_kd100?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
-                    username: hx_mysql_byteSailing_rds
-                    password: da~h2swYUI#aj134&y8K
+                  url: jdbc:mysql://192.168.0.238:23063/bytesailing_kd100?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
+                  username: bytesailing_db_user
+                  password: kfG-A93-w7h-qX8
 
     # redis 配置
     redis:

+ 5 - 0
hx-sale/src/main/java/com/fjhx/sale/entity/contract/po/Contract.java

@@ -134,6 +134,11 @@ public class Contract extends BasePo {
     private String buyContactNumber;
 
     /**
+     * 币种汇率
+     */
+    private BigDecimal rate;
+
+    /**
      * 买方国家表id
      */
     private Long buyCountryId;

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

@@ -14,4 +14,14 @@ import lombok.Setter;
 @Setter
 public class IntermediateContractSelectDto extends BaseSelectDto {
 
+    /**
+     * 卖方公司ID
+     */
+    private Long sellCorporationId;
+
+    /**
+     * 买方公司ID
+     */
+    private Long buyCorporationId;
+
 }

+ 5 - 0
hx-sale/src/main/java/com/fjhx/sale/entity/pack/vo/PackDetailVo.java

@@ -18,4 +18,9 @@ public class PackDetailVo extends PackDetail {
      * 合同编码+产品名称
      */
     private String codeAPName;
+
+    /**
+     * 装箱明细数据JSON
+     */
+    private String dataJsonList;
 }

+ 6 - 1
hx-sale/src/main/java/com/fjhx/sale/flow/ContractFlow.java

@@ -8,6 +8,7 @@ import com.fjhx.area.utils.CustomizeAreaUtil;
 import com.fjhx.common.enums.CodingRuleEnum;
 import com.fjhx.common.enums.FlowStatusEnum;
 import com.fjhx.common.service.coding.CodingRuleService;
+import com.fjhx.common.utils.ExchangeRateUtil;
 import com.fjhx.file.utils.ObsFileUtil;
 import com.fjhx.flow.core.FlowDelegate;
 import com.fjhx.sale.entity.contract.dto.ContractDto;
@@ -21,6 +22,7 @@ import com.fjhx.sale.service.contract.ContractService;
 import com.fjhx.sale.service.contract.ContractShipmentService;
 import com.ruoyi.common.exception.ServiceException;
 import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.common.utils.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
@@ -66,7 +68,9 @@ public class ContractFlow extends FlowDelegate {
     @Override
     public Long start(Long flowId, JSONObject submitData) {
         ContractDto contract = submitData.toJavaObject(ContractDto.class);
-
+        if(StringUtils.isEmpty(contract.getCurrency())){
+            throw new ServiceException("币种不能为空");
+        }
         // 保存合同产品
         List<ContractProduct> contractProductList = contract.getContractProductList();
 
@@ -115,6 +119,7 @@ public class ContractFlow extends FlowDelegate {
         contract.setBuyCityId(contract.getCityId());
         contract.setBuyCountryId(contract.getCountryId());
         contract.setBuyProvinceId(contract.getProvinceId());
+        contract.setRate(ExchangeRateUtil.getCnyToCodeRate(contract.getCurrency()));
         contractService.save(contract);
 
         // 保存合同产品

+ 7 - 5
hx-sale/src/main/java/com/fjhx/sale/service/claim/impl/ClaimServiceImpl.java

@@ -118,15 +118,17 @@ public class ClaimServiceImpl extends ServiceImpl<ClaimMapper, Claim> implements
     public void delete(Long id) {
         //通过流水ID查找出到账认领的数据
         List<Claim> claimList = this.list(Wrappers.<Claim>query().lambda().eq(Claim::getBusinessId, id));
-        if (CollectionUtils.isNotEmpty(claimList)) {
-            List<Long> claimIds = claimList.stream().map(Claim::getId).collect(Collectors.toList());
-            this.removeBatchByIds(claimIds);
-            claimContractService.remove(Wrappers.<ClaimContract>query().lambda().in(ClaimContract::getClaimId, claimIds));
+        if (CollectionUtils.isEmpty(claimList)) {
+            throw new ServiceException("当前流水暂无认领合同,不能取消认领");
         }
-        //更新流水数据为认领状态
+        List<Long> claimIds = claimList.stream().map(Claim::getId).collect(Collectors.toList());
+        this.removeBatchByIds(claimIds);
+        claimContractService.remove(Wrappers.<ClaimContract>query().lambda().in(ClaimContract::getClaimId, claimIds));
+        //更新流水数据为认领状态---已认领金额还原
         AccountRunningWater water = new AccountRunningWater();
         water.setId(id);
         water.setIsClaim(0);//未认领状态
+        water.setClaimAmount(BigDecimal.ZERO);
         accountRunningWaterService.updateById(water);
     }
 

+ 21 - 4
hx-sale/src/main/java/com/fjhx/sale/service/intermediate/impl/IntermediateContractServiceImpl.java

@@ -51,6 +51,11 @@ public class IntermediateContractServiceImpl extends ServiceImpl<IntermediateCon
     @Override
     public Page<IntermediateContractVo> getPage(IntermediateContractSelectDto dto) {
         IWrapper<IntermediateContract> wrapper = getWrapper();
+        //买方公司过滤
+        wrapper.eq(IntermediateContract::getBuyCorporationId, dto.getBuyCorporationId());
+        //卖方公司过滤
+        wrapper.eq(IntermediateContract::getSellCorporationId, dto.getSellCorporationId());
+
         wrapper.orderByDesc("ic", IntermediateContract::getId);
         Page<IntermediateContractVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
         List<IntermediateContractVo> records = page.getRecords();
@@ -101,11 +106,23 @@ public class IntermediateContractServiceImpl extends ServiceImpl<IntermediateCon
     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());
+        if (ObjectUtil.isNotEmpty(dto.getSellContactName())) {
+            wrapper.or().like(IntermediateContract::getSellContactName, dto.getSellContactName());
+            wrapper.groupBy("sell_contact_name");
+        }
+        if (ObjectUtil.isNotEmpty(dto.getSellContactNumber())) {
+            wrapper.or().like(IntermediateContract::getSellContactNumber, dto.getSellContactNumber());
+            wrapper.groupBy("sell_contact_number");
+        }
         //根据买方联系人名称/联系方式过滤
-        wrapper.or().like(IntermediateContract::getBuyContactName, dto.getBuyContactName());
-        wrapper.or().like(IntermediateContract::getBuyContactNumber, dto.getBuyContactNumber());
+        if (ObjectUtil.isNotEmpty(dto.getBuyContactName())) {
+            wrapper.or().like(IntermediateContract::getBuyContactName, dto.getBuyContactName());
+            wrapper.groupBy("buy_contact_name");
+        }
+        if (ObjectUtil.isNotEmpty(dto.getBuyContactNumber())) {
+            wrapper.or().like(IntermediateContract::getBuyContactNumber, dto.getBuyContactNumber());
+            wrapper.groupBy("buy_contact_number");
+        }
         List<IntermediateContractVo> list = baseMapper.contactList(wrapper);
         //赋值买方名称
         corporationService.attributeAssign(list, IntermediateContractVo::getBuyCorporationId, (item, corporation) -> {

+ 7 - 3
hx-sale/src/main/resources/mapper/contract/ContractMapper.xml

@@ -2,8 +2,12 @@
 <!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 t1.*,
+        SELECT
+               *
+            FROM
+             (SELECT
+                     t1.*,
+                     IFNULL(t1.amount,0)*IFNULL(t1.rate,0) AS amountCNY,
                      CASE
                          WHEN (t1.amount - t1.sumClaimMoney) &lt;= 0 THEN
                              20
@@ -12,7 +16,7 @@
                          ELSE 10
                          END AS refundStatusNew
               FROM (SELECT t1.*,
-                           (SELECT IFNULL(SUM(money), 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>

+ 8 - 0
hx-sale/src/main/resources/mapper/pack/PackDetailMapper.xml

@@ -16,6 +16,14 @@
                       FROM pack_detail_product t2
                                LEFT JOIN contract t3 ON t2.contract_id = t3.id
                       WHERE t2.pack_detail_id IN (GROUP_CONCAT(t1.id))) AS codeAPName,
+                     (SELECT GROUP_CONCAT(CONCAT(
+                             "{\"bomVolume\":",bom_volume,",",
+                             "\"boxLong\":",box_long,",",
+                             "\"boxWide\":",box_wide,",",
+                             "\"boxHigh\":",box_high,",",
+                             "\"roughWeight\":",rough_weight,",",
+                             "\"netWeight\":",net_weight,"}"
+                     )) FROM pack_detail WHERE id IN (	GROUP_CONCAT(t1.id)))AS dataJsonList,
                      sum(t1.pack_quantity)                                 packQuantity,
                      sum(t1.net_weight)                                    netWeight,
                      sum(t1.rough_weight)                                  roughWeight,