浏览代码

Merge branch 'master' of http://192.168.1.41:3000/SmartCost/SCCommon

qinlaiqiao 4 年之前
父节点
当前提交
ccc7f8a904

+ 2 - 1
types/src/interface/base.ts

@@ -1,4 +1,4 @@
-import { IProcessData } from './process';
+import { IProcessData, IProjectApproval } from './process';
 import { IProjectGlj } from './glj';
 import { IBill, IBookmark } from './bill';
 import { IProject, IProjectPermission } from './project';
@@ -267,6 +267,7 @@ export interface IGetData {
   treeData: IProject[];
   isManager: boolean;
   projectsPermission: IProjectPermission[];
+  approval?: IProjectApproval;
 }
 
 // 费用字段

+ 1 - 1
types/src/interface/bill.ts

@@ -234,7 +234,7 @@ export interface IBillClass {
   name: string;
   itemCharacter: string; // 必填特征排列组合
   classCode: string; // 类别别名 040101001@一、二类土@人工
-  requiredRationIDs: number[]; // 必套定额ID
+  requiredRationIDs: number[][]; // 必套定额ID
   optionalRationIDs: number[]; // 选套定额ID
   errorRationIDs: number[]; // 错套定额ID
 }

+ 1 - 1
types/src/interface/compilation.ts

@@ -18,7 +18,7 @@ export interface ITaxGroup {
   colLib: IFileRef;
   feeLib: IFileRef;
   taxType: TaxType;
-  normLib: string;//指标分部
+  normLib: string; // 指标分部
 }
 
 // 工程专业

+ 4 - 0
types/src/interface/installation.ts

@@ -17,6 +17,7 @@ export interface IStdInstallSection {
   name: string;
   feeRule: IBaseFeeRule[];
   deleted: boolean;
+  seq: number; // 排序
 }
 // 费用项
 export interface IStdInstallFeeItem {
@@ -27,6 +28,7 @@ export interface IStdInstallFeeItem {
   position: string; // 记取位置
   section: [];
   deleted: boolean;
+  seq: number; // 排序
 }
 
 // 安装增加费-费用规则
@@ -43,6 +45,7 @@ export interface IInstallSection {
   feeItemID: string;
   feeRuleID: string;
   name: string;
+  seq: number; // 排序
 }
 
 // 安装增加费-费用项
@@ -53,6 +56,7 @@ export interface IInstallFeeItem {
   position: string; // 记取位置
   billID?: string; // 记取位置对应的清单ID
   isCalc: boolean; // 是否记取
+  seq: number; // 排序
 }
 
 export enum FeeItemCalcType {

+ 7 - 0
types/src/interface/process.ts

@@ -38,6 +38,11 @@ export enum AccountConfigure {
   ADDSIGN = 'addSign',
 }
 
+export interface ICoreView {
+  ID: string; // 用户ID
+  projectIDs: string[]; // 充许协审的单位工程ID,为空数组时表示可以协审当前环节的所有项目
+}
+
 export interface IProcessAccount {
   // ID 账号ID name 名称institutionID 企事业ID
   ID: string;
@@ -47,6 +52,8 @@ export interface IProcessAccount {
   status: ProcessStatus; // 审批状态
   configure: AccountConfigure[];
   remark: string; // 审批意见(肯定有,会有默认值)
+  coreViews: ICoreView[]; // 协审人信息
+  projectIDs: string[]; // 充许审批的单位工程ID,为空数组时表示可以审批当前环节的所有项目
 }
 
 // 参与者信息

+ 2 - 2
wise-cost-util/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@sc/wise-cost-util",
-  "version": "1.0.6",
+  "version": "1.0.7",
   "description": "wise-cost项目前后端业务通用工具包",
   "main": "./dist/index.cjs.js",
   "module": "./dist/index.esm.js",
@@ -20,7 +20,7 @@
   "devDependencies": {
     "@commitlint/cli": "^11.0.0",
     "@commitlint/config-conventional": "^11.0.0",
-    "@sc/types": "^1.0.28",
+    "@sc/types": "^1.0.30",
     "@types/chai": "^4.2.14",
     "@types/lodash": "^4.14.168",
     "@types/mocha": "^8.0.4",

+ 1 - 0
wise-cost-util/src/index.ts

@@ -3,3 +3,4 @@ export * from './rationAss';
 export * from './glj';
 export * from './cptLib';
 export * from './material';
+export * from './process';

+ 45 - 0
wise-cost-util/src/process.ts

@@ -0,0 +1,45 @@
+import { ApprovalWay, IProcessAccount, ProcessStatus } from '@sc/types';
+import { isArray } from 'lodash';
+
+// 获取流程某个环节审批状态
+export const getProcessStatus = (approvalWay: ApprovalWay, accounts: IProcessAccount[] | IProcessAccount) => {
+  if (!isArray(accounts)) {
+    return accounts.status;
+  }
+  // 若为上报审批,则流程状态直接为 success
+  if (approvalWay === ApprovalWay.REPORT) return ProcessStatus.APPROVED;
+  // 指定用户
+  if (approvalWay === ApprovalWay.ACCOUNT) {
+    const { status } = accounts[0];
+    if (status === ProcessStatus.ACTIVATING) return ProcessStatus.ACTIVATING;
+    if (status === ProcessStatus.APPROVED) return ProcessStatus.APPROVED;
+    if (status === ProcessStatus.FAILED) return ProcessStatus.FAILED;
+    return ProcessStatus.WAITING;
+  }
+  // 会签 或者 依次审批
+  if (approvalWay === ApprovalWay.JOINTLYSIGN || approvalWay === ApprovalWay.ORDERAPPROVAL) {
+    // 只要有一个人审批回退,即失败
+    if (accounts.some(account => account.status === ProcessStatus.FAILED)) return ProcessStatus.FAILED;
+    // 所有人都通过,即成功
+    if (accounts.every(account => account.status === ProcessStatus.APPROVED)) return ProcessStatus.APPROVED;
+    // 所有人都等待, 即等待
+    if (accounts.every(account => account.status === ProcessStatus.WAITING)) return ProcessStatus.WAITING;
+    // 否则正在进行
+    return ProcessStatus.ACTIVATING;
+  }
+  // 或签
+  if (approvalWay === ApprovalWay.ORSIGN) {
+    // 只要有一个人审批回退,即失败
+    if (accounts.some(account => account.status === ProcessStatus.FAILED)) return ProcessStatus.FAILED;
+    // 只要有一个人审批通过,即成功
+    if (accounts.some(account => account.status === ProcessStatus.APPROVED)) return ProcessStatus.APPROVED;
+    // 所有人都等待, 即等待
+    if (accounts.every(account => account.status === ProcessStatus.WAITING)) return ProcessStatus.WAITING;
+    // 否则正在进行
+    return ProcessStatus.ACTIVATING;
+  }
+  // 默认等待
+  return ProcessStatus.WAITING;
+};
+
+export const a = 1;