Commit c432ab07 by 宋毅

增加内容

parent 9840e8b8
...@@ -8,6 +8,7 @@ const moment = require('moment'); ...@@ -8,6 +8,7 @@ const moment = require('moment');
*/ */
class BaseQcService { class BaseQcService {
constructor() { constructor() {
this.execClientNew = system.getObject("util.execClientNew");
this.needsolutionDao = system.getObject("db.dbneed.needsolutionDao"); this.needsolutionDao = system.getObject("db.dbneed.needsolutionDao");
this.needinfoDao = system.getObject("db.dbneed.needinfoDao"); this.needinfoDao = system.getObject("db.dbneed.needinfoDao");
this.orderinfoDao = system.getObject("db.dbcorder.orderinfoDao"); this.orderinfoDao = system.getObject("db.dbcorder.orderinfoDao");
...@@ -425,201 +426,213 @@ class BaseQcService { ...@@ -425,201 +426,213 @@ class BaseQcService {
//交付商通知状态变更 //交付商通知状态变更
async serviceProviderNotification(pobj) { async serviceProviderNotification(pobj) {
let ab = pobj.actionBody; try {
if (!pobj.userInfo || !pobj.userInfo.id) { let ab = pobj.actionBody;
return system.getResultFail(-1100, "未知用户"); if (!pobj.userInfo || !pobj.userInfo.id) {
} return system.getResultFail(-1100, "未知用户");
if (!ab.orderNo) { }
return system.getResultFail(-1101, "订单号不能为空"); if (!ab.orderNo) {
} return system.getResultFail(-1101, "订单号不能为空");
if (!ab.status) { }
return system.getResultFail(-1102, "交付状态不能为空"); if (!ab.status) {
} else { return system.getResultFail(-1102, "交付状态不能为空");
ab["ApplicationStatus"] = ab.status; } else {
} ab["ApplicationStatus"] = ab.status;
if (ab.officialFileURL) { }
ab["OfficialFileURL"] = ab.officialFileURL; if (ab.officialFileURL) {
} ab["OfficialFileURL"] = ab.officialFileURL;
//2021-3-18 addNew }
if (ab.certificateNumber) { //2021-3-18 addNew
ab["CertificateNumber"] = ab.certificateNumber; if (ab.certificateNumber) {
} ab["CertificateNumber"] = ab.certificateNumber;
if (ab.certificateStartTime) { }
ab["CertificateStartTime"] = ab.certificateStartTime; if (ab.certificateStartTime) {
} ab["CertificateStartTime"] = ab.certificateStartTime;
if (ab.certificateEndTime) { }
ab["CertificateEndTime"] = ab.certificateEndTime; if (ab.certificateEndTime) {
ab["CertificateEndTime"] = ab.certificateEndTime;
}
pobj.actionBody = ab;
return this.acceptIcpPartnerNotification(pobj);
} catch (e) {
const stackStr = e.stack ? e.stack : JSON.stringify(e);
this.execClientNew.execLogs("serviceProviderNotification-reqError:", pobj, "center-order-serviceProviderNotification", null, stackStr);
return system.getResultFail(-200, "serviceProviderNotification操作异常");
} }
pobj.actionBody = ab;
return this.acceptIcpPartnerNotification(pobj);
} }
//服务商通知状态变更 //服务商通知状态变更
async acceptIcpPartnerNotification(pobj) { async acceptIcpPartnerNotification(pobj) {
let self = this; let self = this;
let ab = pobj.actionBody; let ab = pobj.actionBody;
let needSolutionWhere = {}; try {
if (ab.solutionNo) { let needSolutionWhere = {};
needSolutionWhere = {solutionNo: ab.solutionNo}; if (ab.solutionNo) {
} else if (ab.orderNo) { needSolutionWhere = {solutionNo: ab.solutionNo};
needSolutionWhere = {orderNo: ab.orderNo}; } else if (ab.orderNo) {
} needSolutionWhere = {orderNo: ab.orderNo};
//获取方案信息
let needsolutioninfo = await this.needsolutionDao.model.findOne({
attributes: ["id", "status", "solutionContent", "needNo", "channelNeedNo"],
where: needSolutionWhere, raw: true
});
if (!needsolutioninfo || !needsolutioninfo.id) {
return system.getResultFail(-400, "未知方案");
}
let solutionContent = needsolutioninfo.solutionContent;
if (!solutionContent) {
return system.getResultFail(-402, "方案交付信息有误");
}
if (solutionContent.applicationStatus && solutionContent.applicationStatus > ab.ApplicationStatus) {
return system.getResultFail(-403, "操作失败,交付流程未按顺序执行");
}
if (solutionContent.ApplicationStatus && solutionContent.ApplicationStatus == ab.ApplicationStatus) {
return system.getResultFail(-405, "操作失败,该流程状态已提交,不能重复提交");
}
let solutionFlowList = solutionContent.solutionFlowList || [];
let orderInfo = await this.orderinfoDao.model.findOne({
attributes: ["uapp_id", "channelOrderNo"],
where: {orderNo: ab.orderNo}, raw: true
})
if (!orderInfo || !orderInfo.channelOrderNo) {
return system.getResultFail(-406, "未知订单");
}
let uapp_id = orderInfo.uapp_id;
let channelOrderNo = orderInfo.channelOrderNo
if (ab.ApplicationStatus == 507) {//完成账户注册
if (uapp_id == '18') {
if (solutionContent.status != "USER_CONFIRMED") {
return system.getResultFail(-508, "交付流程错误,用户确认递交⽂件后才能执行此操作");
}
} }
solutionContent.ApplicationStatus = 507; //获取方案信息
solutionFlowList.push({ let needsolutioninfo = await this.needsolutionDao.model.findOne({
file: ab.OfficialFileURL || "", attributes: ["id", "status", "solutionContent", "needNo", "channelNeedNo"],
status: "ACCOUNT_REGISTERED", where: needSolutionWhere, raw: true
statusName: this.icpSolutionStatusReference.ACCOUNT_REGISTERED,
updated_at: new Date()
});
solutionContent.status = "ACCOUNT_REGISTERED";
solutionContent.statusName = this.icpSolutionStatusReference.ACCOUNT_REGISTERED;
}
if (ab.ApplicationStatus == 508) {//"服务商完成提交资料到⼯信部
if (solutionContent.status != "ACCOUNT_REGISTERED") {
return system.getResultFail(-508, "交付流程错误,请先完成账户注册");
}
solutionFlowList.push({
file: ab.OfficialFileURL || "",
status: "MATERIAL_SUBMITTED",
statusName: this.icpSolutionStatusReference.MATERIAL_SUBMITTED,
updated_at: new Date()
}); });
solutionContent.status = "MATERIAL_SUBMITTED"; if (!needsolutioninfo || !needsolutioninfo.id) {
solutionContent.statusName = this.icpSolutionStatusReference.MATERIAL_SUBMITTED; return system.getResultFail(-400, "未知方案");
}
if (ab.ApplicationStatus == 509) {//⼯商部已受理
if (solutionContent.status != "MATERIAL_SUBMITTED") {
return system.getResultFail(-509, "交付流程错误,请先完成资料递交");
} }
solutionFlowList.push({ let solutionContent = needsolutioninfo.solutionContent;
file: ab.OfficialFileURL || "", if (!solutionContent) {
status: "GXB_ACCEPT", statusName: this.icpSolutionStatusReference.GXB_ACCEPT, updated_at: new Date() return system.getResultFail(-402, "方案交付信息有误");
});
solutionContent.status = "GXB_ACCEPT";
solutionContent.statusName = this.icpSolutionStatusReference.GXB_ACCEPT;
}
if (ab.ApplicationStatus == 510) {//⼯商部不予受理
if (solutionContent.status != "MATERIAL_SUBMITTED") {
return system.getResultFail(-510, "交付流程错误,请先完成资料递交");
} }
solutionFlowList.push({ if (solutionContent.applicationStatus && solutionContent.applicationStatus > ab.ApplicationStatus) {
file: ab.OfficialFileURL || "", return system.getResultFail(-403, "操作失败,交付流程未按顺序执行");
status: "GXB_REFUSE", statusName: this.icpSolutionStatusReference.GXB_REFUSE, updated_at: new Date()
});
solutionContent.status = "GXB_REFUSE";
needsolutioninfo.status = "ywc";
solutionContent.statusName = this.icpSolutionStatusReference.GXB_REFUSE;
}
if (ab.ApplicationStatus == 511) {//⼯商部通过
if (solutionContent.status != "GXB_ACCEPT") {
return system.getResultFail(-511, "交付流程错误,⼯信部已受理后才能执行此操作");
} }
if (uapp_id == "18") { if (solutionContent.ApplicationStatus && solutionContent.ApplicationStatus == ab.ApplicationStatus) {
return system.getResultFail(-405, "操作失败,该流程状态已提交,不能重复提交");
}
let solutionFlowList = solutionContent.solutionFlowList || [];
let orderInfo = await this.orderinfoDao.model.findOne({
attributes: ["uapp_id", "channelOrderNo"],
where: {orderNo: ab.orderNo}, raw: true
})
if (!orderInfo || !orderInfo.channelOrderNo) {
return system.getResultFail(-406, "未知订单");
}
let uapp_id = orderInfo.uapp_id;
let channelOrderNo = orderInfo.channelOrderNo
if (ab.ApplicationStatus == 507) {//完成账户注册
if (uapp_id == '18') {
if (solutionContent.status != "USER_CONFIRMED") {
return system.getResultFail(-508, "交付流程错误,用户确认递交⽂件后才能执行此操作");
}
}
solutionContent.ApplicationStatus = 507;
solutionFlowList.push({ solutionFlowList.push({
file: ab.OfficialFileURL || "", status: "GXB_SUCCESS", file: ab.OfficialFileURL || "",
statusName: this.icpSolutionStatusReference.GXB_SUCCESS, updated_at: new Date(), status: "ACCOUNT_REGISTERED",
CertificateNumber: ab.CertificateNumber, statusName: this.icpSolutionStatusReference.ACCOUNT_REGISTERED,
CertificateStartTime: ab.CertificateStartTime, updated_at: new Date()
CertificateEndTime: ab.CertificateEndTime
}); });
} else { solutionContent.status = "ACCOUNT_REGISTERED";
solutionContent.statusName = this.icpSolutionStatusReference.ACCOUNT_REGISTERED;
}
if (ab.ApplicationStatus == 508) {//"服务商完成提交资料到⼯信部
if (solutionContent.status != "ACCOUNT_REGISTERED") {
return system.getResultFail(-508, "交付流程错误,请先完成账户注册");
}
solutionFlowList.push({ solutionFlowList.push({
file: ab.OfficialFileURL || "", file: ab.OfficialFileURL || "",
status: "GXB_SUCCESS", status: "MATERIAL_SUBMITTED",
statusName: this.icpSolutionStatusReference.GXB_SUCCESS, statusName: this.icpSolutionStatusReference.MATERIAL_SUBMITTED,
updated_at: new Date() updated_at: new Date()
}); });
solutionContent.status = "MATERIAL_SUBMITTED";
solutionContent.statusName = this.icpSolutionStatusReference.MATERIAL_SUBMITTED;
} }
needsolutioninfo.status = "ywc"; if (ab.ApplicationStatus == 509) {//⼯商部已受理
solutionContent.status = "GXB_SUCCESS"; if (solutionContent.status != "MATERIAL_SUBMITTED") {
solutionContent.statusName = this.icpSolutionStatusReference.GXB_SUCCESS; return system.getResultFail(-509, "交付流程错误,请先完成资料递交");
} }
if (ab.ApplicationStatus == 512) {//⼯信部未通过 solutionFlowList.push({
if (solutionContent.status != "GXB_ACCEPT") { file: ab.OfficialFileURL || "",
return system.getResultFail(-512, "交付流程错误,⼯信部已受理后才能执行此操作"); status: "GXB_ACCEPT", statusName: this.icpSolutionStatusReference.GXB_ACCEPT, updated_at: new Date()
});
solutionContent.status = "GXB_ACCEPT";
solutionContent.statusName = this.icpSolutionStatusReference.GXB_ACCEPT;
}
if (ab.ApplicationStatus == 510) {//⼯商部不予受理
if (solutionContent.status != "MATERIAL_SUBMITTED") {
return system.getResultFail(-510, "交付流程错误,请先完成资料递交");
}
solutionFlowList.push({
file: ab.OfficialFileURL || "",
status: "GXB_REFUSE", statusName: this.icpSolutionStatusReference.GXB_REFUSE, updated_at: new Date()
});
solutionContent.status = "GXB_REFUSE";
needsolutioninfo.status = "ywc";
solutionContent.statusName = this.icpSolutionStatusReference.GXB_REFUSE;
}
if (ab.ApplicationStatus == 511) {//⼯商部通过
if (solutionContent.status != "GXB_ACCEPT") {
return system.getResultFail(-511, "交付流程错误,⼯信部已受理后才能执行此操作");
}
if (uapp_id == "18") {
solutionFlowList.push({
file: ab.OfficialFileURL || "", status: "GXB_SUCCESS",
statusName: this.icpSolutionStatusReference.GXB_SUCCESS, updated_at: new Date(),
CertificateNumber: ab.CertificateNumber,
CertificateStartTime: ab.CertificateStartTime,
CertificateEndTime: ab.CertificateEndTime
});
} else {
solutionFlowList.push({
file: ab.OfficialFileURL || "",
status: "GXB_SUCCESS",
statusName: this.icpSolutionStatusReference.GXB_SUCCESS,
updated_at: new Date()
});
}
needsolutioninfo.status = "ywc";
solutionContent.status = "GXB_SUCCESS";
solutionContent.statusName = this.icpSolutionStatusReference.GXB_SUCCESS;
}
if (ab.ApplicationStatus == 512) {//⼯信部未通过
if (solutionContent.status != "GXB_ACCEPT") {
return system.getResultFail(-512, "交付流程错误,⼯信部已受理后才能执行此操作");
}
solutionFlowList.push({
file: ab.OfficialFileURL || "",
status: "GXB_FAIL", statusName: this.icpSolutionStatusReference.GXB_FAIL, updated_at: new Date()
});
solutionContent.status = "GXB_FAIL";
needsolutioninfo.status = "ywc";
solutionContent.statusName = this.icpSolutionStatusReference.GXB_FAIL;
} }
solutionFlowList.push({
file: ab.OfficialFileURL || "",
status: "GXB_FAIL", statusName: this.icpSolutionStatusReference.GXB_FAIL, updated_at: new Date()
});
solutionContent.status = "GXB_FAIL";
needsolutioninfo.status = "ywc";
solutionContent.statusName = this.icpSolutionStatusReference.GXB_FAIL;
}
solutionContent.solutionFlowList = solutionFlowList; solutionContent.solutionFlowList = solutionFlowList;
//返回状态 //返回状态
let statusObj = {}; let statusObj = {};
let applicationStatusList = solutionContent.applicationStatusList || []; let applicationStatusList = solutionContent.applicationStatusList || [];
if (uapp_id == "18") { if (uapp_id == "18") {
statusObj = { statusObj = {
"OfficialFileURL": ab.OfficialFileURL || "", "OfficialFileURL": ab.OfficialFileURL || "",
"ApplicationStatus": ab.ApplicationStatus, "ApplicationStatus": ab.ApplicationStatus,
"ApplicationStatusName": this.icpApplicationStatusReference[ab.ApplicationStatus], "ApplicationStatusName": this.icpApplicationStatusReference[ab.ApplicationStatus],
"created_at": new Date(), "created_at": new Date(),
//2021-3-18 addNew //2021-3-18 addNew
"CertificateNumber": ab.CertificateNumber || "",//证书编号 "CertificateNumber": ab.CertificateNumber || "",//证书编号
"CertificateStartTime": ab.CertificateStartTime || "",//证书有效期 开始时间 "CertificateStartTime": ab.CertificateStartTime || "",//证书有效期 开始时间
"CertificateEndTime": ab.CertificateEndTime || ""//证书有效期 结束时间 "CertificateEndTime": ab.CertificateEndTime || ""//证书有效期 结束时间
}; };
} else { } else {
statusObj = { statusObj = {
"OfficialFileURL": ab.OfficialFileURL || "", "OfficialFileURL": ab.OfficialFileURL || "",
"ApplicationStatus": ab.ApplicationStatus, "ApplicationStatus": ab.ApplicationStatus,
"ApplicationStatusName": this.icpApplicationStatusReference[ab.ApplicationStatus], "ApplicationStatusName": this.icpApplicationStatusReference[ab.ApplicationStatus],
"created_at": new Date() "created_at": new Date()
}; };
} }
applicationStatusList.push(statusObj); applicationStatusList.push(statusObj);
solutionContent.applicationStatusList = applicationStatusList; solutionContent.applicationStatusList = applicationStatusList;
solutionContent.applicationStatus = ab.ApplicationStatus; solutionContent.applicationStatus = ab.ApplicationStatus;
needsolutioninfo.solutionContent = JSON.stringify(solutionContent); needsolutioninfo.solutionContent = JSON.stringify(solutionContent);
return await this.needsolutionDao.db.transaction(async function (t) { return await this.needsolutionDao.db.transaction(async function (t) {
await self.needsolutionDao.update(needsolutioninfo, t); await self.needsolutionDao.update(needsolutioninfo, t);
statusObj["BizId"] = needsolutioninfo.channelSolutionNo; statusObj["BizId"] = needsolutioninfo.channelSolutionNo;
statusObj["solutionNo"] = needsolutioninfo.solutionNo; statusObj["solutionNo"] = needsolutioninfo.solutionNo;
statusObj["material"] = solutionContent; statusObj["material"] = solutionContent;
statusObj["uapp_id"] = uapp_id; statusObj["uapp_id"] = uapp_id;
statusObj['channelOrderNo'] = channelOrderNo; statusObj['channelOrderNo'] = channelOrderNo;
return system.getResultSuccess(statusObj); return system.getResultSuccess(statusObj);
}) })
} catch (e) {
const stackStr = e.stack ? e.stack : JSON.stringify(e);
this.execClientNew.execLogs("acceptIcpPartnerNotification-reqError:", pobj, "center-order-acceptIcpPartnerNotification", null, stackStr);
return system.getResultFail(-200, "acceptIcpPartnerNotification操作异常");
}
} }
/* /*
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment