import _ from "lodash"; import { ICardMainResponse } from "../card/ICardMainResponse"; import * as Const from "../const"; import { IDeptResponse } from "../core/IDeptResponse"; import { IUnitResponse } from "../core/index.ts"; import { IPathResponse } from "../core/IPathResponse"; import { IUserLiteResponse } from "../core/IUserLiteResponse"; import { IUserResponse } from "../core/IUserResponse"; import { TFlowDataResponse } from "../flow/IFlowDataResponse"; import { TCore, TStim } from "../index.ts"; import { IYzcgMainResponse } from "../yzcg/IYzcgMainResponse"; import { IYzhtMainResponse } from "../yzht/IYzhtMainResponse"; import { IMyoaBillResponse } from "./IMyoaBillResponse.ts"; import { IMyoaCashResponse } from "./IMyoaCashResponse"; import { IMyoaPGDWResponse } from "./IMyoaPGDWResponse"; import { IMyoaRoomResponse, TMyoaRoomResponse } from "./IMyoaRoomResponse.ts"; export interface IMyoaMainResponse { typeName: string; whoBuild: number; userIndx: number; myoaIndx: number; parentID: number; hashCode: number; dataLevl: number; dataFrom: number; kjndKJQJ: number; dataStat: number; dataOrdr: number; dataDate: number; dataTime: number; dataHide: number; dataGUID: string; mastName: string; mastGUID: string; createBy: string; createAt: number; updateBy: string; updateAt: number; deleteBy: string; deleteAt: number; queuesBy: number; entityID: string; myoaCode: string; myoaType: number; myoaStat: number; myoaDate: number; unitMain: number; unitNamf: string; deptMain: number; dictMain: number; /** 会议室间歇时间 */ interVal: number; startOut: number; //#用车申请.出车时间 YYYYMMDDHHMM endedOut: number; //#用车申请.结束时间 YYYYMMDDHHMM totalOut: number; canClose: number; //#用车申请.是否归还 closedBy: string; //#用车申请.归还用户 closedAt: number; //#用车申请.归还时间 YYYYMMDDHHMMSS myoaUses: string; //#用车申请.用车事由.会议内容 myoaMemo: string; sourceND: number; sourceDW: string; flowText: string; flowUndo: number; varySize: number; //#是否变更;(默认值:0;做过变更则标记1); outMoney: number; yzcgCgxm: string; yzcgCgfs: number; yzcgCgmj: number; yzcgCode: string; yzcgMain: number; dddwText: string; dldwText: string; yzcgZbkz: number; //招标控制价格 yzcgZbbh: string; // editedBy: string; //编制人 fileType: number; //文件类型 fileText: string; dzyzType: number; //印章类型 dzyzText: string; yzhtHtbh: string; yzhtQdrq: number; yzhtYsrq: number; yzhtCode: string; yzhtMain: number; autoType: number; menuUUID: string; menuName: string; coverURL: string; touchURL: string; flowMain: number; flowNode: number; cgfsText: string; cgmjText: string; sqbmText: string; sqyhText: string; // 经办人 userName: string; userMain: number; /** 流程节点判断 */ flowVal1: number; authStat: number; //#取钥状态 autoCpbh: string; //#车牌号码 authDate: number; //#取钥时间.YYYYMMDDHHMMSS wldyMain: number; startTxt: string; //#用车申请.始发地 startLat: string; //#用车申请.始发地(定位) endedTxt: string; //#用车申请.目的地 endedLat: string; //#用车申请.目的地(定位) cardType: number; //#用车申请.车辆类型(字典) rangeOut: number; //#用车申请.出行范围(字典) mobileID: string; //#用车申请.用户短号 usesNbyh: number; //#用车申请.是否需求司机 nbyhText: string; //#用车申请.司机名称 userSize: number; //#用车申请.司乘人数 cardUses: number; //#用车申请.车辆用途 autoMode: number; deptName: string; lastMemo: string; usesDzqz: number; //是否签章0:否,1:是 flowUser: string; cardUnitText: string; cardDeptText: string; cardTypeText: string; cardUsesText: string; cardJldwText: string; cardLaidText: string; cardUserText: string; autoTypeText: string; rangeOutText: string; autoModeText: string; deviceD1: number /** 有无投影 {0:否,1:有} */; pageNums: string /** 盖章页码 */; /** 送审/审核时间 */ lastTime: number; /** * 0:用车 1锁车 * */ isLocked: number; /** * 公物仓 * */ laidMain: number; /** * 公物仓名称 * */ laidText: string; /** * 入仓/领用数量 * */ cardSize: number; /** * 入仓/领用原值 * */ totalVal: number; /** * 入仓/领用理由 * */ reasonBy: string; /** * 领用标志 * */ mrokStat: number; /** * 车辆名称 */ cardName: string; /**评分 */ inputVal: number; /** * 入仓/领用原卡片 * */ listBeforeAsset: ICardMainResponse[]; /** * 入仓/领用新卡片 * */ listAfterAsset: ICardMainResponse[]; listLock: IMyoaMainResponse[]; listCard: ICardMainResponse[]; /** 会议室 */ listChat: IMyoaRoomResponse[]; listPath: IPathResponse[]; listSQBM: IDeptResponse[]; listSQYH: IUserResponse[]; listNBYH: IUserResponse[]; /** 用车申请时,指定为listCard.cardName, 会议申请时, 指定为listChat.RoomName */ cardText: string; //#合同签订 listYZHT: IYzhtMainResponse[]; listYZCG: IYzcgMainResponse[]; listCash: IMyoaCashResponse[]; //#保证金 listDDDW: IUserLiteResponse[]; listDLDW: IUserLiteResponse[]; listPGDW: IMyoaPGDWResponse[]; // 评审审批时的评审代表 listType: TCore.IDictResponse[]; listBill: IMyoaBillResponse[]; listUnit: IUnitResponse[]; wContact: string; // 联系人 dContact: string; // 联系方式 //虚拟字段 detailId: number; cardMain: number; fromCardIndx: number; mainListPath: TCore.IPathResponse[]; //列表上的附件信息 mainFileName: string; //列表上显示的名称 /** * 用车判断审核人角色 */ dataUses: string; sField01: string; //用车用途文本 sField02: string; sField03: string; sField04: string; sField05: string; bField01: number; bField02: number; bField03: number; bField04: number; bField05: number; // 是否骑缝章 dzyzQife: number; fField01: number; fField02: number; fField03: number; fField04: number; fField05: number; myoaFrom: number; } export class TMyoaMainResponse implements IMyoaMainResponse { typeName: string = "TMyoaMainResponse"; whoBuild: number = 0; userIndx: number = 0; myoaIndx: number = 0; parentID: number = 0; hashCode: number = 0; dataLevl: number = 0; dataFrom: number = 0; kjndKJQJ: number = 0; dataStat: number = 0; dataOrdr: number = 0; dataDate: number = 0; dataTime: number = 0; dataHide: number = 0; dataGUID: string = ""; mastName: string = ""; mastGUID: string = ""; createBy: string = ""; createAt: number = 0; updateBy: string = ""; updateAt: number = 0; deleteBy: string = ""; deleteAt: number = 0; queuesBy: number = 0; entityID: string = ""; myoaCode: string = ""; myoaType: number = 0; myoaStat: number = 0; myoaDate: number = 0; menuUUID: string = ""; menuName: string = ""; unitMain: number = 0; unitNamf: string = ""; deptMain: number = 0; dictMain: number = 0; /** 会议室间歇时间 */ interVal: number = 0; /** 拟公告时间 */ startOut: number = 0; endedOut: number = 0; totalOut: number = 0; canClose: number = 0; closedBy: string = ""; closedAt: number = 0; myoaUses: string = ""; myoaMemo: string = ""; wContact: string = ""; dContact: string = ""; sourceND: number = 0; sourceDW: string = ""; flowText: string = ""; flowUndo: number = 0; varySize: number = 0; /** * 用车申请时,指定为listCard.cardName, 会议申请时, 指定为listChat.RoomName */ cardText: string = ""; /** 预算资金 */ outMoney: number = 0; /** 采购项目名称 */ yzcgCgxm: string = ""; /** 采购方式 */ yzcgCgfs: number = 0; /** 拟公告媒介 */ yzcgCgmj: number = 0; yzcgCode: string = ""; yzcgMain: number = 0; dddwText: string = ""; dldwText: string = ""; yzcgZbkz: number = 0; /** 招标编号 */ yzcgZbbh: string = ""; editedBy: string = ""; /** 合同编号 */ yzhtHtbh: string = ""; /** 签订日期 */ yzhtQdrq: number = 0; /** 验收日期 */ yzhtYsrq: number = 0; /** 合同单号 */ yzhtCode: string = ""; /** 合同标识 */ yzhtMain: number = 0; autoType: number = 0; coverURL: string = ""; touchURL: string = ""; flowMain: number = 0; flowNode: number = 0; cgfsText: string = ""; cgmjText: string = ""; sqbmText: string = ""; sqyhText: string = ""; userName: string = ""; userMain: number = 0; /** 流程节点判断 */ flowVal1: number = -1; /** 文件类型 */ fileType: number = 0; fileText: string = ""; /** 印章类型 */ dzyzType: number = 0; dzyzText: string = ""; /** 盖章页码 */ pageNums: string = ""; /** 有无投影 {0:否,1:有} */ deviceD1: number = 0; authStat: number = 0; autoCpbh: string = ""; authDate: number = 0; wldyMain: number = 0; startTxt: string = ""; startLat: string = ""; endedTxt: string = ""; endedLat: string = ""; cardType: number = 0; cardUses: number = 0; rangeOut: number = 0; mobileID: string = ""; usesNbyh: number = 0; nbyhText: string = ""; userSize: number = 0; autoMode: number = 0; deptName: string = ""; lastMemo: string = ""; usesDzqz: number = 0; flowUser: string = ""; /** 送审/审核时间 */ lastTime: number = 0; cardUnitText: string = ""; cardDeptText: string = ""; cardTypeText: string = ""; cardUsesText: string = ""; cardJldwText: string = ""; cardLaidText: string = ""; cardUserText: string = ""; autoTypeText: string = ""; rangeOutText: string = ""; autoModeText: string = ""; cardName: string = ""; /**评分 */ inputVal: number = 0; /** * 0:用车 1锁车 * */ isLocked: number = 0; laidMain: number = 0; laidText: string = ""; cardSize: number = 0; totalVal: number = 0; reasonBy: string = ""; mrokStat: number = 0; listBeforeAsset: ICardMainResponse[] = []; listAfterAsset: ICardMainResponse[] = []; listLock: IMyoaMainResponse[] = []; listCard: ICardMainResponse[] = []; /** 会议室 */ listChat: TMyoaRoomResponse[] = []; listPath: IPathResponse[] = []; listSQBM: IDeptResponse[] = []; listSQYH: IUserResponse[] = []; listNBYH: IUserResponse[] = []; listYZHT: IYzhtMainResponse[] = []; listYZCG: IYzcgMainResponse[] = []; listCash: IMyoaCashResponse[] = []; listDDDW: IUserLiteResponse[] = []; listDLDW: IUserLiteResponse[] = []; listPGDW: IMyoaPGDWResponse[] = []; // 评审审批时的评审代表 listType: TCore.IDictResponse[] = []; listBill: IMyoaBillResponse[] = []; listUnit: IUnitResponse[] = []; //虚拟字段 detailId: number = 0; cardMain: number = 0; fromCardIndx: number = 0; mainListPath: TCore.IPathResponse[] = []; //列表上的附件信息 mainFileName: string = ""; //列表上显示的名称 /** * 用车判断审核人角色 */ dataUses: string = ""; sField01: string = ""; //用车用途文本 sField02: string = ""; sField03: string = ""; sField04: string = ""; sField05: string = ""; dzyzQife: number = 0; bField01: number = 0; bField02: number = 0; bField03: number = 0; bField04: number = 0; bField05: number = 0; fField01: number = 0; fField02: number = 0; fField03: number = 0; fField04: number = 0; fField05: number = 0; myoaFrom: number = 0; constructor(card: Partial) { if (card) { _.merge(this, _.pick(card, Object.keys(this))); } } static toFlowDatas(card: IMyoaMainResponse[]): TFlowDataResponse[] { return card.map((u) => this.toFlowData(u)); } //#进入流程 static toFlowData(myoa: IMyoaMainResponse): TFlowDataResponse { const result = new TFlowDataResponse(); result.whoBuild = myoa.whoBuild; result.userIndx = myoa.userIndx; result.flowMain = myoa.flowMain; result.flowNode = myoa.flowNode; result.notified = Const.Todo.CONST_STR_TODO_TYPE_TO_HTQD_WAIT; result.entityID = myoa.entityID; result.billMain = myoa.myoaIndx; result.billCode = myoa.myoaCode; result.billMemo = myoa.myoaMemo; result.billUses = ""; result.ysxmText = ""; result.outMoney = 0; result.createAt = myoa.createAt; result.mastName = myoa.mastName; result.createBy = myoa.createBy; result.unitMain = myoa.unitMain; result.menuUUID = myoa.menuUUID; result.deptMain = myoa.deptMain; result.flowStat = myoa.myoaStat; return result; } //#取车状态 static getAuthStat(myoa: IMyoaMainResponse): string { let result: string = ""; if (myoa.myoaStat !== Const.Flow.CONST_FLOW_NODE_STAT_VOID) { return ""; } switch (myoa.authStat) { case 1: result = "待取车"; break; case 2: result = "待还车"; if (myoa.canClose === 1) { result = "已还车"; } break; default: break; } return result; } //#流程状态 static getMyoaStat(myoa: IMyoaMainResponse): string { let result: string = ""; if (myoa.dataHide === 1) { return ""; } switch (myoa.myoaStat) { case -2: result = "已作废"; break; case -1: result = "已退回"; break; case 1: result = "待审核"; if (myoa.lastMemo !== "") { result = `待审核:${myoa.lastMemo}`; } break; case 2: result = "已终审"; break; default: break; } return result; } /** * 用来记录操作 * */ static toTravel(card: IMyoaMainResponse): TCore.ISysTravelResponse { const travel = new TCore.TSysTravelResponse(); travel.whoBuild = card.whoBuild; travel.flowMain = card.flowMain; travel.flowNode = card.flowNode; travel.billUUID = card.entityID; travel.billMain = card.myoaIndx; travel.billCode = card.myoaCode; travel.mastName = card.mastName; travel.createBy = card.createBy; travel.menuUUID = card.menuUUID; return travel; } /** 转换成记录日志需要的数据(第一层,不包含菜单) */ static toTravelData(card?: IMyoaMainResponse | IMyoaMainResponse[]): TCore.ISysTravelResponse[] { if (_.isNil(card)) { return []; } if (_.isArray(card)) { return card.map((u) => { return this.toTravel(u); }); } return [this.toTravel(card)]; } static toWldyPrintData(noti: IMyoaMainResponse) { const data = new TStim.TStimulsoftPrintData(); data.billMain = String(noti.myoaIndx); data.menuUUID = noti.menuUUID; return data; } static toWldyPrintDatas(listNoti: IMyoaMainResponse[]) { return listNoti.map((u) => this.toWldyPrintData(u)); } }