diff --git a/web-api/src/main/java/com/jeesite/modules/apps/Service/erpFlowService.java b/web-api/src/main/java/com/jeesite/modules/apps/Service/erpFlowService.java index bfe4395..90e9391 100644 --- a/web-api/src/main/java/com/jeesite/modules/apps/Service/erpFlowService.java +++ b/web-api/src/main/java/com/jeesite/modules/apps/Service/erpFlowService.java @@ -80,25 +80,45 @@ public class erpFlowService { */ public void addDebt(ErpDebtRecords erpDebtRecords) { ErpDebts debts = erpDebtsService.get(erpDebtRecords.getDebtId()); + ErpCategory category = erpCategoryService.get(debts.getCategoryId()); ErpAccount account = erpAccountService.get(erpDebtRecords.getAccountId()); - ErpCategory category = erpCategoryService.get(erpDebtRecords.getCategoryId()); - debts.setRemaining(BigDecimalUtils.add(debts.getRemaining(),erpDebtRecords.getRepayAmount())); + + debts.setRemaining(BigDecimalUtils.add(debts.getRemaining(), erpDebtRecords.getRepayAmount())); erpDebtsService.save(debts); - account.setUpdateTime(new Date()); - account.setCurrentBalance(BigDecimalUtils.subtract(account.getCurrentBalance(), erpDebtRecords.getRepayAmount())); - erpAccountService.save(account); - addFlow( - erpDebtRecords.getDebtName(), // 交易名称 - category.getCategoryType(), // 交易类型 - erpDebtRecords.getRepayAmount(), // 交易金额 - erpDebtRecords.getAccountId(), // 账户ID - erpDebtRecords.getCategoryId(), // 分类ID - erpDebtRecords.getRemark(), // 备注 - erpDebtRecords.getDebtId(), // 业务ID - DateUtils.getCurrentYear(), // 年份 - DateUtils.getCurrentMonth() // 月份 - ); + if (debts.getDebtType().equals("1")) { + account.setUpdateTime(new Date()); + account.setCurrentBalance(BigDecimalUtils.subtract(account.getCurrentBalance(), erpDebtRecords.getRepayAmount())); + erpAccountService.save(account); + addFlow( + erpDebtRecords.getDebtName(), // 交易名称 + category.getCategoryType(), // 交易类型 + erpDebtRecords.getRepayAmount(), // 交易金额 + erpDebtRecords.getAccountId(), // 账户ID + debts.getCategoryId(), // 分类ID + erpDebtRecords.getRemark(), // 备注 + erpDebtRecords.getDebtId(), // 业务ID + DateUtils.getCurrentYear(), // 年份 + DateUtils.getCurrentMonth() // 月份 + ); + } + + if (debts.getDebtType().equals("2")) { + account.setUpdateTime(new Date()); + account.setCurrentBalance(BigDecimalUtils.add(account.getCurrentBalance(), erpDebtRecords.getRepayAmount())); + erpAccountService.save(account); + addFlow( + erpDebtRecords.getDebtName(), // 交易名称 + category.getCategoryType(), // 交易类型 + erpDebtRecords.getRepayAmount(), // 交易金额 + erpDebtRecords.getAccountId(), // 账户ID + debts.getCategoryId(), // 分类ID + erpDebtRecords.getRemark(), // 备注 + erpDebtRecords.getDebtId(), // 业务ID + DateUtils.getCurrentYear(), // 年份 + DateUtils.getCurrentMonth() // 月份 + ); + } } /** diff --git a/web-api/src/main/java/com/jeesite/modules/erp/entity/ErpDebtRecords.java b/web-api/src/main/java/com/jeesite/modules/erp/entity/ErpDebtRecords.java index 110da91..5586036 100644 --- a/web-api/src/main/java/com/jeesite/modules/erp/entity/ErpDebtRecords.java +++ b/web-api/src/main/java/com/jeesite/modules/erp/entity/ErpDebtRecords.java @@ -37,7 +37,6 @@ import java.io.Serial; @Column(name = "account_id", attrName = "accountId", label = "账户标识"), @Column(name = "repay_amount", attrName = "repayAmount", label = "还款金额", isQuery = false), @Column(name = "repay_time", attrName = "repayTime", label = "还款时间", isQuery = false, isUpdateForce = true), - @Column(name = "category_id", attrName = "categoryId", label = "分类标识"), @Column(name = "remark", attrName = "remark", label = "备注说明", queryType = QueryType.LIKE), @Column(name = "is_recorded", attrName = "isRecorded", label = "是否记账"), }, joinTable = { @@ -51,12 +50,6 @@ import java.io.Serial; columns = { @Column(name = "debt_name", attrName = "debtName", label = "对方名称"), }), - @JoinTable(type = Type.LEFT_JOIN, entity = ErpCategory.class, alias = "d", - on = "a.category_id = d.category_id", attrName = "this", - columns = { - @Column(name = "parent_name", attrName = "parentName", label = "父级名称"), - @Column(name = "category_name", attrName = "categoryName", label = "分类名称"), - }), }, orderBy = "a.record_id DESC" ) @Data @@ -70,17 +63,12 @@ public class ErpDebtRecords extends DataEntity implements Serial private String accountId; // 账户标识 private BigDecimal repayAmount; // 还款金额 private Date repayTime; // 还款时间 - private String categoryId; private String remark; // 备注说明 private String isRecorded; private String accountName; private String debtName; - private String parentName; - - private String categoryName; - @ExcelFields({ @ExcelField(title = "记录时间", attrName = "createTime", align = Align.CENTER, sort = 10, dataFormat = "yyyy-MM-dd hh:mm"), @ExcelField(title = "唯一标识", attrName = "recordId", align = Align.CENTER, sort = 20), diff --git a/web-api/src/main/java/com/jeesite/modules/erp/entity/ErpDebts.java b/web-api/src/main/java/com/jeesite/modules/erp/entity/ErpDebts.java index 1370cdc..7d3bd84 100644 --- a/web-api/src/main/java/com/jeesite/modules/erp/entity/ErpDebts.java +++ b/web-api/src/main/java/com/jeesite/modules/erp/entity/ErpDebts.java @@ -39,7 +39,15 @@ import java.io.Serial; @Column(name = "remaining", attrName = "remaining", label = "未还金额", isQuery = false, isUpdateForce = true), @Column(name = "end_time", attrName = "endTime", label = "结清时间", isQuery = false, isUpdateForce = true), @Column(name = "ustatus", attrName = "ustatus", label = "状态"), + @Column(name = "category_id", attrName = "categoryId", label = "分类标识"), @Column(name = "remark", attrName = "remark", label = "交易备注", isQuery = false), +}, joinTable = { + @JoinTable(type = Type.LEFT_JOIN, entity = ErpCategory.class, alias = "b", + on = "a.category_id = b.category_id", attrName = "this", + columns = { + @Column(name = "parent_name", attrName = "parentName", label = "父级名称"), + @Column(name = "category_name", attrName = "categoryName", label = "分类名称"), + }), }, orderBy = "a.create_time DESC" ) @Data @@ -52,11 +60,17 @@ public class ErpDebts extends DataEntity implements Serializable { private String debtType; // 负债类型 private String debtName; // 对方名称 private BigDecimal debtAmount; // 借贷金额 - private BigDecimal remaining; // 未还金额 + private BigDecimal remaining; // 已还金额 private Date endTime; // 结清时间 private String ustatus; // 状态 + private String categoryId; private String remark; + private String parentName; + + private String categoryName; + + @ExcelFields({ @ExcelField(title = "记录时间", attrName = "createTime", align = Align.CENTER, sort = 10, dataFormat = "yyyy-MM-dd hh:mm"), @ExcelField(title = "唯一标识", attrName = "debtId", align = Align.CENTER, sort = 20), diff --git a/web-vue/packages/erp/api/erp/debtRecords.ts b/web-vue/packages/erp/api/erp/debtRecords.ts index 1dd062a..d52ce01 100644 --- a/web-vue/packages/erp/api/erp/debtRecords.ts +++ b/web-vue/packages/erp/api/erp/debtRecords.ts @@ -19,7 +19,6 @@ export interface ErpDebtRecords extends BasicModel { accountId: string; // 账户标识 repayAmount: number; // 还款金额 repayTime?: string; // 还款时间 - categoryId?: string; // 分类标识 remark?: string; // 备注说明 } diff --git a/web-vue/packages/erp/api/erp/debts.ts b/web-vue/packages/erp/api/erp/debts.ts index 7e932d2..1b17cd7 100644 --- a/web-vue/packages/erp/api/erp/debts.ts +++ b/web-vue/packages/erp/api/erp/debts.ts @@ -21,6 +21,7 @@ export interface ErpDebts extends BasicModel { remaining?: number; // 已还金额 endTime?: string; // 结清时间 ustatus: string; // 状态 + categoryId?: string; // 分类标识 remark?: string; // 交易备注 } diff --git a/web-vue/packages/erp/views/erp/debtRecords/form.vue b/web-vue/packages/erp/views/erp/debtRecords/form.vue index 9867e35..5a8cad8 100644 --- a/web-vue/packages/erp/views/erp/debtRecords/form.vue +++ b/web-vue/packages/erp/views/erp/debtRecords/form.vue @@ -27,7 +27,6 @@ import { Icon } from '@jeesite/core/components/Icon'; import { BasicForm, FormSchema, useForm } from '@jeesite/core/components/Form'; import { BasicModal, useModalInner } from '@jeesite/core/components/Modal'; - import { ErpCategory, erpCategoryListAll } from '@jeesite/erp/api/erp/category'; import { ErpDebtRecords, erpDebtRecordsSave, erpDebtRecordsForm } from '@jeesite/erp/api/erp/debtRecords'; import { formatToDateTime } from '@jeesite/core/utils/dateUtil'; @@ -37,6 +36,8 @@ const { showMessage } = useMessage(); const { meta } = unref(router.currentRoute); const record = ref({} as ErpDebtRecords); + + const categoryParams = ref({ categoryType: '' }); const getTitle = computed(() => ({ icon: meta.icon || 'i-ant-design:book-outlined', @@ -70,36 +71,22 @@ }, required: true, }, - { - label: t('还款分类'), - field: 'categoryId', - component: 'Select', - componentProps: { - api: erpCategoryListAll, - params: { - categoryType: '1' - }, - fieldNames: { label: 'categoryName', value: 'categoryId' }, - }, - required: true, - }, { label: t('还款金额'), field: 'repayAmount', component: 'InputNumber', componentProps: { - maxlength: 10, + maxlength: 20, }, required: true, }, { label: t('备注说明'), field: 'remark', - component: 'InputTextArea', + component: 'Input', componentProps: { maxlength: 200, }, - colProps: { md: 24, lg: 24 }, }, ]; diff --git a/web-vue/packages/erp/views/erp/debtRecords/list.vue b/web-vue/packages/erp/views/erp/debtRecords/list.vue index d8f3156..939c6e5 100644 --- a/web-vue/packages/erp/views/erp/debtRecords/list.vue +++ b/web-vue/packages/erp/views/erp/debtRecords/list.vue @@ -109,22 +109,6 @@ width: 130, align: 'left', }, - { - title: t('父级分类'), - dataIndex: 'parentName', - key: 'd.parent_name', - sorter: true, - width: 130, - align: 'left', - }, - { - title: t('还款分类'), - dataIndex: 'categoryName', - key: 'd.category_name', - sorter: true, - width: 130, - align: 'left', - }, { title: t('还款金额'), dataIndex: 'repayAmount', diff --git a/web-vue/packages/erp/views/erp/debts/form.vue b/web-vue/packages/erp/views/erp/debts/form.vue index 3703b8b..f176f1e 100644 --- a/web-vue/packages/erp/views/erp/debts/form.vue +++ b/web-vue/packages/erp/views/erp/debts/form.vue @@ -27,6 +27,7 @@ import { Icon } from '@jeesite/core/components/Icon'; import { BasicForm, FormSchema, useForm } from '@jeesite/core/components/Form'; import { BasicModal, useModalInner } from '@jeesite/core/components/Modal'; + import { ErpCategory, erpCategoryListAll } from '@jeesite/erp/api/erp/category'; import { ErpDebts, erpDebtsSave, erpDebtsForm } from '@jeesite/erp/api/erp/debts'; import { formatToDateTime } from '@jeesite/core/utils/dateUtil'; @@ -36,6 +37,8 @@ const { showMessage } = useMessage(); const { meta } = unref(router.currentRoute); const record = ref({} as ErpDebts); + + const categoryParams = ref({ categoryType: '' }); const getTitle = computed(() => ({ icon: meta.icon || 'i-ant-design:book-outlined', @@ -58,25 +61,49 @@ }, required: true, }, - { - label: t('负债类型'), - field: 'debtType', - component: 'Select', - componentProps: { - dictType: 'debt_type', - allowClear: true, - }, - required: true, - }, { label: t('借贷金额'), field: 'debtAmount', component: 'InputNumber', componentProps: { - maxlength: 10, + maxlength: 20, }, required: true, }, + { + label: t('负债类型'), + field: 'debtType', + component: 'Select', + componentProps: { + dictType: 'debt_type', + allowClear: true, + onChange: (value: string) => { + categoryParams.value.categoryType = value; + }, + }, + required: true, + }, + { + label: t('借贷分类'), + field: 'categoryId', + component: 'Select', + componentProps: { + api: erpCategoryListAll, + params: categoryParams.value, + fieldNames: { label: 'categoryName', value: 'categoryId' }, + }, + required: true, + }, + { + label: t('已还金额'), + field: 'remaining', + defaultValue: 0, + component: 'InputNumber', + componentProps: { + maxlength: 20, + }, + required: true, + }, { label: t('借贷状态'), field: 'ustatus', @@ -107,6 +134,9 @@ const res = await erpDebtsForm(data); record.value = (res.erpDebts || {}) as ErpDebts; record.value.__t = new Date().getTime(); + if (record.value.debtType) { + categoryParams.value.categoryType = record.value.debtType; + } await setFieldsValue(record.value); setModalProps({ loading: false }); }); @@ -122,7 +152,7 @@ data[record.value.isNewRecord ? 'createTime' : 'updateTime'] = formatToDateTime(new Date()); - console.log('submit', params, data, record); + // console.log('submit', params, data, record); const res = await erpDebtsSave(params, data); showMessage(res.message); setTimeout(closeModal); diff --git a/web-vue/packages/erp/views/erp/debts/list.vue b/web-vue/packages/erp/views/erp/debts/list.vue index 5414d47..acddff0 100644 --- a/web-vue/packages/erp/views/erp/debts/list.vue +++ b/web-vue/packages/erp/views/erp/debts/list.vue @@ -109,7 +109,6 @@ sorter: true, width: 130, align: 'left', - slot: 'bizScopeKey', }, { title: t('借贷金额'), @@ -127,6 +126,22 @@ width: 130, align: 'right', }, + { + title: t('父级分类'), + dataIndex: 'parentName', + key: 'b.parent_name', + sorter: true, + width: 130, + align: 'left', + }, + { + title: t('借贷分类'), + dataIndex: 'categoryName', + key: 'b.category_name', + sorter: true, + width: 130, + align: 'left', + }, { title: t('结清时间'), dataIndex: 'endTime',