24282 2 months ago
parent
commit
99a9e5cbe1

+ 6 - 2
jy-business/src/main/java/com/jy/business/capital/model/dto/CapitalTransactionsDto.java

@@ -1,7 +1,6 @@
 package com.jy.business.capital.model.dto;
 
 import com.jy.business.capital.model.entity.CapitalTransactions;
-import com.jy.business.contract.model.dto.ContractInfoDto;
 import lombok.Getter;
 import lombok.Setter;
 
@@ -20,9 +19,14 @@ public class CapitalTransactionsDto extends CapitalTransactions {
      */
     private Integer handleType;
 
-    ///**
+    /// **
     // * 合同信息
     // */
     //private ContractInfoDto contractInfo;
 
+    /**
+     * 是否关联合同
+     */
+    private Integer hasContract;
+
 }

+ 21 - 0
jy-business/src/main/java/com/jy/business/capital/service/impl/CapitalTransactionsServiceImpl.java

@@ -8,6 +8,9 @@ import com.jy.business.capital.model.dto.CapitalTransactionsSelectDto;
 import com.jy.business.capital.model.entity.CapitalTransactions;
 import com.jy.business.capital.model.vo.CapitalTransactionsVo;
 import com.jy.business.capital.service.CapitalTransactionsService;
+import com.jy.business.contract.dao.ContractFundReceivedDao;
+import com.jy.business.contract.model.entity.ContractFundReceived;
+import com.jy.framework.model.constants.CommonConstant;
 import com.jy.framework.utils.AssertUtil;
 import jakarta.annotation.Resource;
 import org.springframework.stereotype.Service;
@@ -36,6 +39,9 @@ public class CapitalTransactionsServiceImpl implements CapitalTransactionsServic
     @Resource
     private CapitalAccountDao capitalAccountDao;
 
+    @Resource
+    private ContractFundReceivedDao contractFundReceivedDao;
+
     @Override
     public Page<CapitalTransactionsVo> getPage(CapitalTransactionsSelectDto dto) {
         Page<CapitalTransactionsVo> page = capitalTransactionsDao.getPage(dto);
@@ -99,6 +105,19 @@ public class CapitalTransactionsServiceImpl implements CapitalTransactionsServic
         AssertUtil.eqTrue(updateAmount, "账户余额不足");
 
         capitalTransactionsDao.save(dto);
+
+        if (dto.getType() == 1 && CommonConstant.YES.equals(dto.getHasContract())) {
+            dto.setTargetType(70);
+
+            ContractFundReceived contractFundReceived = new ContractFundReceived();
+            contractFundReceived.setReceivedAmount(dto.getAmount());
+            contractFundReceived.setCapitalAccountId(dto.getCapitalAccountId());
+            contractFundReceived.setHasReceived(CommonConstant.NO);
+            contractFundReceived.setReceivedTime(dto.getTradingTime());
+            contractFundReceived.setCapitalTransactionsId(dto.getId());
+            contractFundReceivedDao.save(contractFundReceived);
+        }
+
     }
 
     @Transactional(rollbackFor = Exception.class)
@@ -132,6 +151,8 @@ public class CapitalTransactionsServiceImpl implements CapitalTransactionsServic
         });
 
         capitalTransactionsDao.removeBatchByIds(idList);
+        contractFundReceivedDao.remove(q -> q
+                .in(ContractFundReceived::getCapitalTransactionsId, idList));
     }
 
 }

+ 1 - 1
jy-business/src/main/java/com/jy/business/contract/model/dto/ContractFundReceivedSelectDto.java

@@ -15,7 +15,7 @@ import lombok.Setter;
 public class ContractFundReceivedSelectDto extends BaseSelectDto {
 
     /**
-     * 是否到账
+     * 是否认领
      */
     private Integer hasReceived;
 

+ 1 - 1
jy-business/src/main/java/com/jy/business/contract/model/entity/ContractFundReceived.java

@@ -39,7 +39,7 @@ public class ContractFundReceived extends BaseIdPo {
     private Long capitalAccountId;
 
     /**
-     * 是否到账
+     * 是否认领
      */
     private Integer hasReceived;
 

+ 1 - 1
jy-business/src/main/java/com/jy/business/contract/model/table/ContractFundReceivedTable.java

@@ -30,7 +30,7 @@ public class ContractFundReceivedTable extends Table<ContractFundReceived> {
     public QueryColumn capitalAccountId = this.field(ContractFundReceived::getCapitalAccountId);
 
     /**
-     * 是否到账
+     * 是否认领
      */
     public QueryColumn hasReceived = this.field(ContractFundReceived::getHasReceived);
 

+ 2 - 19
jy-business/src/main/java/com/jy/business/contract/service/impl/ContractFundReceivedServiceImpl.java

@@ -1,12 +1,9 @@
 package com.jy.business.contract.service.impl;
 
-import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.jy.business.capital.dao.CapitalAccountDao;
-import com.jy.business.capital.model.dto.CapitalTransactionsDto;
 import com.jy.business.capital.model.entity.CapitalAccount;
 import com.jy.business.capital.service.CapitalTransactionsService;
-import com.jy.business.config.RabbitMqUtil;
 import com.jy.business.contract.dao.ContractFundReceivedDao;
 import com.jy.business.contract.model.dto.ContractFundReceivedDto;
 import com.jy.business.contract.model.dto.ContractFundReceivedSelectDto;
@@ -87,30 +84,16 @@ public class ContractFundReceivedServiceImpl implements ContractFundReceivedServ
     @Transactional(rollbackFor = Exception.class)
     @Override
     public void confirmArrivalAccount(ContractFundReceivedDto dto) {
-        CapitalTransactionsDto capitalTransactionsDto = new CapitalTransactionsDto();
-        capitalTransactionsDto.setId(IdWorker.getId());
-        capitalTransactionsDto.setCapitalAccountId(dto.getCapitalAccountId());
-        capitalTransactionsDto.setTradingTime(dto.getReceivedTime());
-        capitalTransactionsDto.setType(1);
-        capitalTransactionsDto.setAmount(dto.getReceivedAmount());
-        capitalTransactionsDto.setTargetType(70);
-        capitalTransactionsDto.setContractId(dto.getContractId());
-
-        dto.setCapitalTransactionsId(capitalTransactionsDto.getId());
         boolean update = contractFundReceivedDao.update(q -> q
                 .eq(BaseIdPo::getId, dto.getId())
                 .eq(ContractFundReceived::getHasReceived, CommonConstant.NO)
-                .set(ContractFundReceived::getCapitalAccountId, dto.getCapitalAccountId())
                 .set(ContractFundReceived::getHasReceived, CommonConstant.YES)
-                .set(ContractFundReceived::getReceivedTime, dto.getReceivedTime())
-                .set(ContractFundReceived::getCapitalTransactionsId, capitalTransactionsDto.getId())
+                .set(ContractFundReceived::getContractId, dto.getContractId())
                 .set(ContractFundReceived::getRemark, dto.getRemark())
         );
         AssertUtil.eqTrue(update, "资金已到账");
 
-        capitalTransactionsService.add(capitalTransactionsDto);
-
-        RabbitMqUtil.sendConfirmFundReceived(dto.getId());
+        //RabbitMqUtil.sendConfirmFundReceived(dto.getId());
     }
 
 }

+ 18 - 12
jy-ui/src/views/business/capital/transactions/index.vue

@@ -25,7 +25,7 @@ const pageTotal = ref<number>(0)
 
 const queryData = ref<StrAnyObj>({ pageNum: 1, pageSize: 10 })
 const tableData = ref<StrAnyObjArr>([])
-const formData = ref<StrAnyObj>({ type: 1, targetType: 99 })
+const formData = ref<StrAnyObj>({ type: 1, targetType: 99, hasContract: 0 })
 
 const dialogTitle = ref<string>('')
 const dialogVisible = ref<boolean>(false)
@@ -160,17 +160,6 @@ const columnConfig: ColumnConfigType[] = [
     label: '余额',
     width: 100
   },
-  // {
-  //   prop: 'type',
-  //   label: '交易类型',
-  //   formatter(row) {
-  //     return row.type == 1 ? '收入' : '支出'
-  //   }
-  // },
-  // {
-  //   prop: 'amount',
-  //   label: '交易金额'
-  // },
   {
     prop: 'targetType',
     label: '对方类型',
@@ -257,6 +246,23 @@ const formConfig: FormConfigType[] = [
     rule: [{ required: true, message: '交易类型不能为空', trigger: 'blur' }]
   },
   {
+    type: 'radio',
+    prop: 'hasContract',
+    label: '合同到账',
+    if: () => formData.value.type === 1,
+    option: [
+      {
+        key: 1,
+        label: '是'
+      },
+      {
+        key: 0,
+        label: '否'
+      }
+    ],
+    rule: [{ required: true, message: '合同到账不能为空', trigger: 'blur' }]
+  },
+  {
     type: 'inputNumber',
     prop: 'amount',
     label: '交易金额',

+ 60 - 51
jy-ui/src/views/business/contract/fundReceived/index.vue

@@ -1,20 +1,13 @@
 <script setup lang="ts">
 import AForm from '@/components/AForm/index.vue'
-import { FormConfigType } from '@/components/AForm/type'
-import { ToolbarConfigType } from '@/components/AToolbar/type'
-import { ColumnConfigType } from '@/components/ATable/type'
-import { StrAnyObj, StrAnyObjArr } from '@/typings'
-import { useHandleData } from '@/utils/useHandleData'
-import {
-  getPageApi,
-  getDetailApi,
-  addApi,
-  editApi,
-  deleteApi,
-  confirmArrivalAccountApi
-} from '@/api/business/contract/fundReceived'
-import { getPageApi as getCapitalAccountPageApi } from '@/api/business/capital/account'
+import {FormConfigType} from '@/components/AForm/type'
+import {ToolbarConfigType} from '@/components/AToolbar/type'
+import {ColumnConfigType} from '@/components/ATable/type'
+import {StrAnyObj, StrAnyObjArr} from '@/typings'
+import {confirmArrivalAccountApi, getDetailApi, getPageApi} from '@/api/business/contract/fundReceived'
+import {getPageApi as getCapitalAccountPageApi} from '@/api/business/capital/account'
 import Detail from '@/views/business/contract/info/detail.vue'
+import {getPageApi as getContractPageApi} from "@/api/business/contract/info";
 
 const queryRef = ref<InstanceType<typeof AForm>>()
 const formRef = ref<InstanceType<typeof AForm>>()
@@ -23,7 +16,7 @@ const showQuery = ref<boolean>(true)
 const selectKeys = ref<string[]>([])
 const pageTotal = ref<number>(0)
 
-const queryData = ref<StrAnyObj>({ pageNum: 1, pageSize: 10 })
+const queryData = ref<StrAnyObj>({pageNum: 1, pageSize: 10})
 const tableData = ref<StrAnyObjArr>([])
 const formData = ref<StrAnyObj>({})
 
@@ -40,7 +33,7 @@ const queryConfig: FormConfigType[] = [
   {
     type: 'select',
     prop: 'hasReceived',
-    label: '是否到账',
+    label: '是否认领',
     dict: 'yes_no'
   }
 ]
@@ -73,7 +66,7 @@ const columnConfig: ColumnConfigType[] = [
   },
   {
     prop: 'hasReceived',
-    label: '是否到账',
+    label: '是否认领',
     dict: 'yes_no'
   },
   {
@@ -95,11 +88,11 @@ const columnConfig: ColumnConfigType[] = [
         if: (row) => {
           return row.hasReceived == 0
         },
-        text: '确认到账',
+        text: '到账认领',
         click(row) {
           dialogVisible.value = true
-          dialogTitle.value = '确认到账'
-          getDetailApi({ id: row.id }).then((resp: StrAnyObj) => {
+          dialogTitle.value = '到账认领'
+          getDetailApi({id: row.id}).then((resp: StrAnyObj) => {
             formData.value = resp
           })
         }
@@ -110,10 +103,23 @@ const columnConfig: ColumnConfigType[] = [
 
 const formConfig: FormConfigType[] = [
   {
-    type: 'input',
-    prop: 'contractNo',
+    type: 'select',
     label: '合同',
-    disabled: true
+    prop: 'contractId',
+    option: () => {
+      return getContractPageApi({searchAll: true}).then((res: StrAnyObjArr) => {
+        if (res.records && res.records.length > 0) {
+          return res.records.map((item) => {
+            return {
+              label: item.contractNo,
+              key: item.id
+            }
+          })
+        } else {
+          return []
+        }
+      })
+    }
   },
   {
     type: 'input',
@@ -127,11 +133,12 @@ const formConfig: FormConfigType[] = [
     label: '资金账号',
     keyName: 'id',
     labelName: 'accountAlias',
+    disabled: true,
     async option() {
-      const data = await getCapitalAccountPageApi({ searchAll: true })
+      const data = await getCapitalAccountPageApi({searchAll: true})
       return data.records
     },
-    rule: [{ required: true, message: '资金账号不能为空', trigger: 'blur' }]
+    rule: [{required: true, message: '资金账号不能为空', trigger: 'blur'}]
   },
   {
     type: 'datePicker',
@@ -140,7 +147,8 @@ const formConfig: FormConfigType[] = [
     datePickerType: 'datetime',
     format: 'YYYY-MM-DD hh:mm:ss',
     valueFormat: 'YYYY-MM-DD hh:mm:ss',
-    rule: [{ required: true, message: '到账时间不能为空', trigger: 'blur' }]
+    disabled: true,
+    rule: [{required: true, message: '到账时间不能为空', trigger: 'blur'}]
   },
   {
     type: 'input',
@@ -180,6 +188,7 @@ function formSubmit() {
 function formClosed() {
   formRef.value?.resetFields()
 }
+
 function clickContract(item: StrAnyObjArr) {
   formData.value = {
     id: item.contractId
@@ -192,48 +201,48 @@ function clickContract(item: StrAnyObjArr) {
 <template>
   <div>
     <el-card v-if="showQuery">
-      <a-form ref="queryRef" v-model="queryData" :config="queryConfig" :span="6"> </a-form>
+      <a-form ref="queryRef" v-model="queryData" :config="queryConfig" :span="6"></a-form>
     </el-card>
 
     <a-table
-      :data="tableData"
-      :page-total="pageTotal"
-      :toolbar-config="toolbarConfig"
-      :column-config="columnConfig"
-      v-model:showQuery="showQuery"
-      v-model:page-num="queryData.pageNum"
-      v-model:page-size="queryData.pageSize"
-      @page-num-change="getPage"
-      @page-size-change="getPage"
-      @selection-change="tableSelectionChange"
+        :data="tableData"
+        :page-total="pageTotal"
+        :toolbar-config="toolbarConfig"
+        :column-config="columnConfig"
+        v-model:showQuery="showQuery"
+        v-model:page-num="queryData.pageNum"
+        v-model:page-size="queryData.pageSize"
+        @page-num-change="getPage"
+        @page-size-change="getPage"
+        @selection-change="tableSelectionChange"
     >
       <template #contractNo="{ row }">
         <div>
           <a
-            style="color: #409eff; cursor: pointer; word-break: break-all"
-            @click="clickContract(row)"
-            >{{ row.contractNo }}</a
+              style="color: #409eff; cursor: pointer; word-break: break-all"
+              @click="clickContract(row)"
+          >{{ row.contractNo }}</a
           >
         </div>
       </template>
     </a-table>
 
     <a-dialog
-      v-model="dialogVisible"
-      :title="dialogTitle"
-      @submit="formSubmit"
-      @closed="formClosed"
+        v-model="dialogVisible"
+        :title="dialogTitle"
+        @submit="formSubmit"
+        @closed="formClosed"
     >
-      <a-form ref="formRef" v-model="formData" :config="formConfig" :span="24"> </a-form>
+      <a-form ref="formRef" v-model="formData" :config="formConfig" :span="24"></a-form>
     </a-dialog>
 
     <a-dialog
-      v-if="detailDialog"
-      v-model="detailDialog"
-      :title="detailTitle"
-      @closed="formClosed"
-      style="width: 900px"
-      :footer="false"
+        v-if="detailDialog"
+        v-model="detailDialog"
+        :title="detailTitle"
+        @closed="formClosed"
+        style="width: 900px"
+        :footer="false"
     >
       <Detail :rowData="formData"></Detail>
     </a-dialog>