333
schangxiang@126.com
2025-09-19 18966e02fb573c7e2bb0c6426ed792b38b910940
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
import BaseService from "../baseService";
import { ResultInfo } from "../../public/commonInterface";
import { FinanceAccountCheck } from "../../entity/finance/biz/financeAccountCheck";
import { FinanceBankAccount } from "../../entity/finance/base/financeBankAccount";
import { FinanceFlow } from "../../entity/finance/base/financeFlow";
 
/**
 * 调整账户
 */
export default class AccountCheckService extends BaseService {
  //#region 账户调整生成账户流水
  public async batchAuditing(): Promise<ResultInfo> {
    let { ctx } = this;
    let body = ctx.request.body;
    let userInfo = await ctx.helper.userInfo();
    try {
      let idValues = body.idValues;
      if (!Array.isArray(idValues)) {
        this.info.result = false;
        this.info.msg = "没有可执行的数据";
        return this.info;
      }
      for (var idValue of idValues) {
        let dataInfo = await this.dbRead.findOne(FinanceAccountCheck, idValue);
        if (!dataInfo) {
          this.info.result = false;
          this.info.msg = "单据不存在";
          return this.info;
        }
        if (dataInfo.statusText != "新建") {
          this.info.result = false;
          this.info.msg = "只有新建的单子才允许审核";
          return this.info;
        }
        if (dataInfo.auditing !== 0) {
          this.info.result = false;
          this.info.msg = "只有新建的单子才允许审核";
          return this.info;
        }
        await this.dbWrite.update(
          FinanceAccountCheck,
          {
            accountCheck_Id: dataInfo.accountCheck_Id,
            userProduct_Id: userInfo.userProduct_Id
          },
          {
            statusText: "审核成功",
            auditing: 2,
            auditor: userInfo.userTrueName,
            auditDate: new Date()
          }
        );
        //调整后银行账户
        await this.dbWrite.update(
          FinanceBankAccount,
          {
            bankAccount_Id: dataInfo.bankAccount_Id
          },
          {
            currentRMB: dataInfo.resultMoneyRMB
          }
        );
        //银行账户
        let bankAccountList = await this.dbRead.findOne(FinanceBankAccount, {
          where: {
            bankAccount_Id: dataInfo.bankAccount_Id
          }
        });
        //账户流水
        await this.dbRead.findOne(FinanceFlow, {
          where: {
            bankAccount_Id: dataInfo.bankAccount_Id
          },
          order: {
            bankAccount_Id: "DESC"
          }
        });
        //生成账户流水
        let newFlow = new FinanceFlow();
        newFlow.flowCode = await this.ctx.service.common.getCodeRegular(1698);
        newFlow.flowName = dataInfo.checkType;
        newFlow.bankAccountCode = dataInfo.bankAccountCode;
        newFlow.bankAccountName = dataInfo.bankAccountName;
        if (dataInfo.checkMoneyRMB > 0) {
          newFlow.outcomeRMB = 0;
          newFlow.incomeRMB = dataInfo.checkMoneyRMB;
        } else {
          newFlow.outcomeRMB = dataInfo.checkMoneyRMB;
          newFlow.incomeRMB = 0;
        }
        newFlow.balanceRMB = dataInfo.resultMoneyRMB;
        newFlow.billCode = bankAccountList.bankAccount;
        newFlow.userTrueName = userInfo.userTrueName;
        newFlow.deptName = userInfo.deptName;
        newFlow.sourceType = "账户调整";
        await this.setAccountInfo(newFlow);
        await this.dbWrite.save(newFlow);
      }
      this.info.result = true;
      this.info.msg = "审核成功";
    } catch (error) {
      this.info.result = false;
      this.info.msg = "审核失败" + error.message;
    }
 
    return this.info;
  }
  //#endregion
}