Commit 471f0989 by Sxy

Merge branch 'tx-fi-tax' of gitlab.gongsibao.com:jiangyong/zhichan into tx-fi-tax

parents 92332523 dd61f5ef
......@@ -6,369 +6,358 @@ const CtlBase = require("../../ctl.base");
const moment = require('moment');
const appconfig = system.getSysConfig();
class BizOptCtl extends CtlBase {
constructor() {
super("bizchance", CtlBase.getServiceName(BizOptCtl));
this.schemeService = system.getObject("service.bizchance.schemeSve");
this.schemeSve = system.getObject("service.bizchance.fitaxschemeSve");//财税-方案信息
this.fitaxcompanySve = system.getObject("service.bizchance.fitaxcompanySve");//财税-企业信息
this.operationrecordSve = system.getObject("service.bizchance.operationrecordSve");//财税-需求分配记录
this.logService = system.getObject("service.bizchance.statuslogSve");
this.shisService = system.getObject("service.bizchance.salesmanhisSve");
this.receiveUrl = settings.receiveUrl();
this.queueUrl = settings.queueUrl();
//this.wdyUrl = settings.wdyUrl();
this.dateUtil = system.getObject("util.dateClient");
}
constructor() {
super("bizchance", CtlBase.getServiceName(BizOptCtl));
this.schemeService = system.getObject("service.bizchance.schemeSve");
this.schemeSve = system.getObject("service.bizchance.fitaxschemeSve"); //财税-方案信息
this.fitaxcompanySve = system.getObject("service.bizchance.fitaxcompanySve"); //财税-企业信息
this.operationrecordSve = system.getObject("service.bizchance.operationrecordSve"); //财税-需求分配记录
this.logService = system.getObject("service.bizchance.statuslogSve");
this.shisService = system.getObject("service.bizchance.salesmanhisSve");
this.receiveUrl = settings.receiveUrl();
this.queueUrl = settings.queueUrl();
//this.wdyUrl = settings.wdyUrl();
this.dateUtil = system.getObject("util.dateClient");
}
/**
* 根据用户id获取商机信息,分页获取
* @param {*} pobj
*/
async findAndCountAll(pobj, qobj, req) {
try {
//设置查询条件
console.log("bizoptCtl/findAndCountAll pobj--", pobj);
if (pobj.search && pobj.search.dateType) {
if (pobj.search.dateType !== '全部') {
pobj.search.created_at = this.dateUtil.betweenTime(pobj.search.dateType);
}
delete pobj.search.dateType
}
const rs = await this.service.findAndCountAll(pobj);
console.log("rs-------------" + rs);
let rarr = [];
let results = rs.results.rows;
results.forEach(element => {
let robj = {};
robj.id = element.id;//数据的id
robj.demand_code = element.demand_code;//商机编号
robj.v_cophone = system.decryptStr(element.v_cophone);//联系电话-shousuo
robj.business_status = element.business_status;//商机当前状态
if (element.business_info.serviceName && element.business_info.serviceName != 'undefined') {
robj.address = element.business_info.serviceName;//服务地区
}
else {
robj.address = "";
}
// robj.updated_at = this.timeFormat(element.updated_at);//商机当前状态日期
robj.updated_at = element.updated_at;//商机当前状态日期
robj.business_type = element.business_type;//商机类型
robj.v_coname = element.v_coname;//联系人-shousuo
robj.source_name = element.source_name;//渠道来源--前端服务
robj.servicerName = element.facilitator_name;//服务商名称
/**
* 根据用户id获取商机信息,分页获取
* @param {*} pobj
*/
async findAndCountAll(pobj, qobj, req) {
try {
//设置查询条件
console.log("bizoptCtl/findAndCountAll pobj--", pobj);
if (pobj.search && pobj.search.dateType) {
if (pobj.search.dateType !== '全部') {
pobj.search.created_at = this.dateUtil.betweenTime(pobj.search.dateType);
}
delete pobj.search.dateType
}
const rs = await this.service.findAndCountAll(pobj);
console.log("rs-------------" + rs);
let rarr = [];
let results = rs.results.rows;
results.forEach(element => {
let robj = {};
robj.id = element.id; //数据的id
robj.demand_code = element.demand_code; //商机编号
robj.v_cophone = system.decryptStr(element.v_cophone); //联系电话-shousuo
robj.business_status = element.business_status; //商机当前状态
if (element.business_info.serviceName && element.business_info.serviceName != 'undefined') {
robj.address = element.business_info.serviceName; //服务地区
} else {
robj.address = "";
}
// robj.updated_at = this.timeFormat(element.updated_at);//商机当前状态日期
robj.updated_at = element.updated_at; //商机当前状态日期
robj.business_type = element.business_type; //商机类型
robj.v_coname = element.v_coname; //联系人-shousuo
robj.source_name = element.source_name; //渠道来源--前端服务
robj.servicerName = element.facilitator_name; //服务商名称
// robj.facilitator_name = element.facilitator_name;//服务商名称
// robj.sourceName = element.source_name;//渠道来源
// robj.business_info_person = element.business_info.contactsName;//联系人
// robj.business_info_phone = system.decryptStr(element.business_info.contactsPhone);//联系电话
// robj.facilitator_name = element.facilitator_name;//服务商名称
// robj.sourceName = element.source_name;//渠道来源
// robj.business_info_person = element.business_info.contactsName;//联系人
// robj.business_info_phone = system.decryptStr(element.business_info.contactsPhone);//联系电话
robj.salesman_name = element.salesman_name;
robj.salesman_phone = system.decryptStr(element.salesman_phone);
robj.salesman_name = element.salesman_name;
robj.salesman_phone = system.decryptStr(element.salesman_phone);
rarr.push(robj);
});
rs.results.rows = rarr;
return system.getResult(rs);
} catch (error) {
console.log("error------------------------" + error);
return system.getResultError(error);
rarr.push(robj);
});
rs.results.rows = rarr;
return system.getResult(rs);
} catch (error) {
console.log("error------------------------" + error);
return system.getResultError(error);
}
}
}
/**
* 需求分配 TODO
* @param {*} mobj
* @param {*} qobj
* @param {*} req
* {
demand_code_list: ["1", "2", "3"],//至少一个需求编号
salesman_opcode: "",//唯一标识
salesman_id: "jdlfaj",//销售员id
salesman_name: "",//销售员姓名
salesman_phone: "",//销售员手机号
/**
* 需求分配 TODO
* @param {*} mobj
* @param {*} qobj
* @param {*} req
* {
demand_code_list: ["1", "2", "3"],//至少一个需求编号
salesman_opcode: "",//唯一标识
salesman_id: "jdlfaj",//销售员id
salesman_name: "",//销售员姓名
salesman_phone: "",//销售员手机号
}
*/
async distribution(mobj, qobj, req) {
let pobj = mobj.d;
}
*/
async distribution(mobj, qobj, req) {
let pobj = mobj.d;
}
/**
* 关闭需求
* @param {*} mobj
* {
demand_code: "",//需求编号
close_reason: "",//关闭原因
remarks: ""//备注
}
*/
async closeBizopt(mobj, qobj, req) {
let pobj = mobj.d;
pobj.business_status = "isClosed";
//根据需求编号去更新该条需求的状态为已关闭
try {
let res = await this.service.updateStatusByDemandCode(pobj);
//TODO 同步该需求关闭信息到其他系统
/**
* 关闭需求
* @param {*} mobj
* {
demand_code: "",//需求编号
close_reason: "",//关闭原因
remarks: ""//备注
}
*/
async closeBizopt(mobj, qobj, req) {
let pobj = mobj.d;
pobj.business_status = "isClosed";
//根据需求编号去更新该条需求的状态为已关闭
try {
let res = await this.service.updateStatusByDemandCode(pobj);
//TODO 同步该需求关闭信息到其他系统
return system.getResult("关闭需求成功!");
} catch (error) {
return system.getResultError("bizoptCtl/closeBizopt 关闭需求出错!");
return system.getResult("关闭需求成功!");
} catch (error) {
return system.getResultError("bizoptCtl/closeBizopt 关闭需求出错!");
}
}
}
/**
* 获取跟进详情页所有信息
* @param {*} mobj
* {
demand_code: "",//需求编号
}
*/
async getFollowUpInfo(mobj, qobj, req) {
var pobj = mobj.d;
if (pobj.demand_code && pobj.demand_code != 'undefined') {
try {
var bizoptInfo = await this.service.findInfoByDemandCode(pobj);
var companyInfo = await this.fitaxcompanySve.findInfo(pobj);
/**
* 获取跟进详情页所有信息
* @param {*} mobj
* {
demand_code: "",//需求编号
}
*/
async getFollowUpInfo(mobj, qobj, req) {
var pobj = mobj.d;
if (pobj.demand_code && pobj.demand_code != 'undefined') {
try {
var bizoptInfo = await this.service.findInfoByDemandCode(pobj);
var companyInfo = await this.fitaxcompanySve.findInfo(pobj);
pobj.operation_type = "followUp";
var followUpinfos = await this.operationrecordSve.findAllInfo(pobj);
var followUpinfo = {};
if (followUpinfos.length > 0) {
followUpinfo = followUpinfos[0];
pobj.operation_type = "followUp";
var followUpinfos = await this.operationrecordSve.findAllInfo(pobj);
var followUpinfo = {};
if (followUpinfos.length > 0) {
followUpinfo = followUpinfos[0];
}
return system.getResult({ bizoptInfo: bizoptInfo, companyInfo: companyInfo, followUpinfo: followUpinfo });
} catch (error) {
console.log("bizopt/getFollowUpInfo err: " + error);
return system.getResultError("bizoptCtl/closeBizopt 获取跟进详情页信息出错!");
}
}
return system.getResult({ bizoptInfo: bizoptInfo, companyInfo: companyInfo, followUpinfo: followUpinfo });
} catch (error) {
console.log("bizopt/getFollowUpInfo err: " + error);
return system.getResultError("bizoptCtl/closeBizopt 获取跟进详情页信息出错!");
}
}
}
/**
* 获取记录详情页所有信息
* @param {*} mobj
* {
demand_code: "",//需求编号
}
*/
async getRecordInfo(mobj, qobj, req) {
var pobj = mobj.d;
if (pobj.demand_code && pobj.demand_code != 'undefined') {
try {
var bizoptInfo = await this.service.findInfoByDemandCode(pobj);//需求信息
var companyInfo = await this.fitaxcompanySve.findInfo(pobj);//企业信息
var schemeInfo = await this.schemeSve.findInfo(pobj);//方案详情
var followUpinfos = await this.operationrecordSve.findAllInfo(pobj);//线索记录
/**
* 获取记录详情页所有信息
* @param {*} mobj
* {
demand_code: "",//需求编号
}
*/
async getRecordInfo(mobj, qobj, req) {
var pobj = mobj.d;
if (pobj.demand_code && pobj.demand_code != 'undefined') {
try {
var bizoptInfo = await this.service.findInfoByDemandCode(pobj); //需求信息
var companyInfo = await this.fitaxcompanySve.findInfo(pobj); //企业信息
var schemeInfo = await this.schemeSve.findInfo(pobj); //方案详情
var followUpinfos = await this.operationrecordSve.findAllInfo(pobj); //线索记录
return system.getResult({ bizoptInfo: bizoptInfo, companyInfo: companyInfo, schemeInfo: schemeInfo, followUpinfos: followUpinfos });
} catch (error) {
console.log("bizopt/getFollowUpInfo err: " + error);
return system.getResultError("bizoptCtl/closeBizopt 获取跟进详情页信息出错!");
}
}
}
/**
* @param {*} mobj
*/
async findInfoByDemandCode(mobj, qobj, req) {
var pobj = mobj.d;
if (pobj.demand_code && pobj.demand_code != 'undefined') {
try {
var rs = await this.service.findInfoByDemandCode(pobj);
var ms = await this.schemeService.findInfoByDemandCode(pobj);
var rarr = {}
if (rs) {
var statusInfo = { "currentStatus": rs.business_status };//商机状态
var businessInfo = {};
businessInfo.demand_code = rs.demand_code;//商机编号
businessInfo.channelSource = appconfig.pdict.source[rs.source_name];///渠道来源
// businessInfo.businessType = rs.business_type;//商机类型代码
businessInfo.businessType = appconfig.pdict.businessType[rs.business_type];//商机类型名称
// businessInfo.serviceArea = rs.service_address;//服务地区
if (businessInfo.businessName == "云上园区注册") {
businessInfo.serviceArea = appconfig.pdict.registeredParkDict[rs.service_address];//服务地区名称
}
else {
businessInfo.serviceArea = appconfig.pdict.registeredAreaDict[rs.service_address];//服务地区名称
}
if (businessInfo.businessName == "注册地址") {
businessInfo.registeredAddress = appconfig.pdict.registeredAreaDict[rs.service_address];//注册地址名称
}
businessInfo.statusReason = rs.close_reason;//商机关闭原因
businessInfo.memoInfo = rs.business_info.memoInfo;//备注信息
businessInfo.contactsName = rs.business_info.contactsName;//联系人名称
businessInfo.contactsPhone = system.decryptStr(rs.business_info.contactsPhone);//联系人联系方式
businessInfo.createdTime = this.timeFormat(rs.created_at);//商机创建时间
rarr.statusInfo = statusInfo;
rarr.businessInfo = businessInfo;
}
if (ms) {
var planInfo = ms.scheme_info;
planInfo.schemeNumber = ms.scheme_number;
planInfo.currentStatus = ms.scheme_status;
if (ms.scheme_status && ms.scheme_status == "isReject") {
planInfo.currentStatus = "已退回";
}
else {
planInfo.currentStatus = ms.scheme_status;
}
planInfo.statusReason = ms.reject_reason;
rarr.planInfo = planInfo;
return system.getResult({ bizoptInfo: bizoptInfo, companyInfo: companyInfo, schemeInfo: schemeInfo, followUpinfos: followUpinfos });
} catch (error) {
console.log("bizopt/getFollowUpInfo err: " + error);
return system.getResultError("bizoptCtl/closeBizopt 获取跟进详情页信息出错!");
}
}
return system.getResult(rarr);
}
catch (error) {
console.log("eeeeeeeeeeeeeeeeeeeeee");
console.log(error);
return system.getResultError(error);
}
}
else {
return system.getResultError("参数错误!");
}
}
/*更新业务员信息*/
async updateSalesmanInfoByDemandCode(mobj, qobj, req) {
var pobj = mobj.d;
if (pobj.businessMode && pobj.businessMode != 'undefined') {
try {
var res = await this.service.findInfoByDemandCode(pobj);
if (res) {
var sInfo = {
"flowType": "BIZ",
"flowId": res.id,
"flowCode": pobj.businessMode,
"salesmanInfo": {
"oldOpcode": res.salesman_opcode,
"oldClerkName": res.salesman_name,
"oldClerkId": res.salesman_id,
"oldClerkPhone": res.salesman_phone,
"oldFacilitatorId": res.facilitator_id,
"oldFacilitatorName": res.facilitator_name,
"newOpcode": pobj.salesmanOpcode,
"newClerkName": pobj.salesmanName,
"newClerkId": pobj.salesmanId,
"newClerkPhone": pobj.salesmanPhone,
"newFacilitatorId": pobj.facilitatorId,
"newFacilitatorName": pobj.facilitatorName
/**
* @param {*} mobj
*/
async findInfoByDemandCode(mobj, qobj, req) {
var pobj = mobj.d;
if (pobj.demand_code && pobj.demand_code != 'undefined') {
try {
var rs = await this.service.findInfoByDemandCode(pobj);
var ms = await this.schemeService.findInfoByDemandCode(pobj);
var rarr = {}
if (rs) {
var statusInfo = { "currentStatus": rs.business_status }; //商机状态
var businessInfo = {};
businessInfo.demand_code = rs.demand_code; //商机编号
businessInfo.channelSource = appconfig.pdict.source[rs.source_name]; ///渠道来源
// businessInfo.businessType = rs.business_type;//商机类型代码
businessInfo.businessType = appconfig.pdict.businessType[rs.business_type]; //商机类型名称
// businessInfo.serviceArea = rs.service_address;//服务地区
if (businessInfo.businessName == "云上园区注册") {
businessInfo.serviceArea = appconfig.pdict.registeredParkDict[rs.service_address]; //服务地区名称
} else {
businessInfo.serviceArea = appconfig.pdict.registeredAreaDict[rs.service_address]; //服务地区名称
}
if (businessInfo.businessName == "注册地址") {
businessInfo.registeredAddress = appconfig.pdict.registeredAreaDict[rs.service_address]; //注册地址名称
}
businessInfo.statusReason = rs.close_reason; //商机关闭原因
businessInfo.memoInfo = rs.business_info.memoInfo; //备注信息
businessInfo.contactsName = rs.business_info.contactsName; //联系人名称
businessInfo.contactsPhone = system.decryptStr(rs.business_info.contactsPhone); //联系人联系方式
businessInfo.createdTime = this.timeFormat(rs.created_at); //商机创建时间
rarr.statusInfo = statusInfo;
rarr.businessInfo = businessInfo;
}
if (ms) {
var planInfo = ms.scheme_info;
planInfo.schemeNumber = ms.scheme_number;
planInfo.currentStatus = ms.scheme_status;
if (ms.scheme_status && ms.scheme_status == "isReject") {
planInfo.currentStatus = "已退回";
} else {
planInfo.currentStatus = ms.scheme_status;
}
planInfo.statusReason = ms.reject_reason;
rarr.planInfo = planInfo;
}
return system.getResult(rarr);
} catch (error) {
console.log("eeeeeeeeeeeeeeeeeeeeee");
console.log(error);
return system.getResultError(error);
}
}
await this.shisService.insertInfo(sInfo);//之前业务员转历史
await this.service.updateSalesmanInfoByDemandCode(pobj);//更新业务员信息
return system.getResult("操作成功!");
}
else {
return system.getResultError("未找到相关数据");
} else {
return system.getResultError("参数错误!");
}
}
catch (error) {
return system.getResultError(error);
}
}
else {
return system.getResultError("参数错误!");
}
}
/*根据商机编号更新商机状态*/
async updateStatusByDemandCode(mobj, qobj, req) {
var pobj = mobj.d;
if (pobj.businessMode && pobj.businessMode != 'undefined' && pobj.currentStatus && pobj.currentStatus != 'undefined') {
try {
await this.service.updateStatusByDemandCode(pobj);
await this.schemeService.updateStatusByDemandCode(pobj);//同时更新方案的状态
var res = await this.service.findInfoByDemandCode(pobj);
if (res && res != 'undefined') {
var logInfo = {
"flowType": "BIZ",
"flowId": res.id,
"statusCode": pobj.currentStatus,
"statusReason": res.close_reason,
"clerkName": res.salesman_name,
"clerkId": res.salesman_id
}
await this.logService.insertInfo(logInfo);//插入状态日志表
}
if (pobj.currentStatus == "isClosed") { //关闭需求时调用
var rc = system.getObject("util.execClient");
var requrl = this.queueUrl;
var params = {
"actionType": "produceData",
"actionBody": {
"pushUrl": this.receiveUrl,
"actionType": "closeNeed",
"identifyCode": "ic-manage",
"messageBody": {
"needNum": pobj.businessMode,
"note": pobj.statusReason
}
/*更新业务员信息*/
async updateSalesmanInfoByDemandCode(mobj, qobj, req) {
var pobj = mobj.d;
if (pobj.businessMode && pobj.businessMode != 'undefined') {
try {
var res = await this.service.findInfoByDemandCode(pobj);
if (res) {
var sInfo = {
"flowType": "BIZ",
"flowId": res.id,
"flowCode": pobj.businessMode,
"salesmanInfo": {
"oldOpcode": res.salesman_opcode,
"oldClerkName": res.salesman_name,
"oldClerkId": res.salesman_id,
"oldClerkPhone": res.salesman_phone,
"oldFacilitatorId": res.facilitator_id,
"oldFacilitatorName": res.facilitator_name,
"newOpcode": pobj.salesmanOpcode,
"newClerkName": pobj.salesmanName,
"newClerkId": pobj.salesmanId,
"newClerkPhone": pobj.salesmanPhone,
"newFacilitatorId": pobj.facilitatorId,
"newFacilitatorName": pobj.facilitatorName
}
}
await this.shisService.insertInfo(sInfo); //之前业务员转历史
await this.service.updateSalesmanInfoByDemandCode(pobj); //更新业务员信息
return system.getResult("操作成功!");
} else {
return system.getResultError("未找到相关数据");
}
} catch (error) {
return system.getResultError(error);
}
} else {
return system.getResultError("参数错误!");
}
}
var rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
if (j.status == 1) {
return system.getResult("操作成功!");
}
else {
return system.getResultError("更新方案状态出错!");
}
}
else {
return system.getResult("操作成功!");
/*根据商机编号更新商机状态*/
async updateStatusByDemandCode(mobj, qobj, req) {
var pobj = mobj.d;
if (pobj.businessMode && pobj.businessMode != 'undefined' && pobj.currentStatus && pobj.currentStatus != 'undefined') {
try {
await this.service.updateStatusByDemandCode(pobj);
await this.schemeService.updateStatusByDemandCode(pobj); //同时更新方案的状态
var res = await this.service.findInfoByDemandCode(pobj);
if (res && res != 'undefined') {
var logInfo = {
"flowType": "BIZ",
"flowId": res.id,
"statusCode": pobj.currentStatus,
"statusReason": res.close_reason,
"clerkName": res.salesman_name,
"clerkId": res.salesman_id
}
await this.logService.insertInfo(logInfo); //插入状态日志表
}
if (pobj.currentStatus == "isClosed") { //关闭需求时调用
var rc = system.getObject("util.execClient");
var requrl = this.queueUrl;
var params = {
"actionType": "produceData",
"actionBody": {
"pushUrl": this.receiveUrl,
"actionType": "closeNeed",
"identifyCode": "ic-manage",
"messageBody": {
"needNum": pobj.businessMode,
"note": pobj.statusReason
}
}
}
var rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
if (j.status == 1) {
return system.getResult("操作成功!");
} else {
return system.getResultError("更新方案状态出错!");
}
} else {
return system.getResult("操作成功!");
}
} catch (error) {
return system.getResultError(error);
}
} else {
return system.getResultError("参数错误!");
}
}
catch (error) {
return system.getResultError(error);
}
}
else {
return system.getResultError("参数错误!");
}
}
/*插入数据信息 */
async insertInfo(nobj, qobj, req) {
var pobj = nobj.d;
if (pobj.businessMode && pobj.businessMode != 'undefined' && pobj.businessType && pobj.businessType != 'undefined') {
try {
//pobj.currentStatus = "beforeSubmission";//加上当前状态为待提交方案
// pobj.channelSource = "tencentCloud";//目前渠道只有腾讯
// pobj.sourceNumber = "1111111";
pobj.businessType = appconfig.pdict.dyDict[pobj.businessType];
var buInfo = await this.service.insertInfo(pobj);
var logInfo = {
"flowType": "BIZ",
"flowId": buInfo.id,
"statusCode": pobj.currentStatus,
"clerkName": pobj.clerkName,
"clerkId": pobj.salesmanId
/*插入数据信息 */
async insertInfo(nobj, qobj, req) {
var pobj = nobj.d;
if (pobj.businessMode && pobj.businessMode != 'undefined' && pobj.businessType && pobj.businessType != 'undefined') {
try {
//pobj.currentStatus = "beforeSubmission";//加上当前状态为待提交方案
// pobj.channelSource = "tencentCloud";//目前渠道只有腾讯
// pobj.sourceNumber = "1111111";
// pobj.businessType = appconfig.pdict.dyDict[pobj.businessType];
var buInfo = await this.service.insertInfo(pobj);
var logInfo = {
"flowType": "BIZ",
"flowId": buInfo.id,
"statusCode": pobj.bussinessStatus,
"clerkName": pobj.salesmanName,
"clerkId": pobj.salesmanId
}
await this.logService.insertInfo(logInfo); //插入状态日至表
return {
"status": 1, //1代表成功,否则失败
"message": "操作成功",
"data": "",
"requestId": ""
};
} catch (error) {
console.log("TTTTTTTTTTTTTTTTTTTTTTT");
console.log(error);
return system.getResultError(error);
}
} else {
return system.getResultError("参数错误!");
}
await this.logService.insertInfo(logInfo);//插入状态日至表
return {
"status": 1, //1代表成功,否则失败
"message": "操作成功",
"data": "",
"requestId": ""
};
}
catch (error) {
console.log("TTTTTTTTTTTTTTTTTTTTTTT");
console.log(error);
return system.getResultError(error);
}
}
else {
return system.getResultError("参数错误!");
}
}
timeFormat(date) {
let localTime = moment.utc(date).toDate();
localTime = moment(localTime).format("YYYY-MM-DD");
return localTime;
}
timeFormat(date) {
let localTime = moment.utc(date).toDate();
localTime = moment(localTime).format("YYYY-MM-DD");
return localTime;
}
}
module.exports = BizOptCtl;
......@@ -397,4 +386,4 @@ module.exports = BizOptCtl;
// }
// task.findInfoByDemandCode(obj,{},{}).then(d=>{
// console.log(JSON.stringify(d));
// })
// })
\ No newline at end of file
......@@ -143,7 +143,6 @@ class DeliverybillCtl extends CtlBase {
// 创建服务实例
async insertInfo(pobj, qobj, req) {
// console.log(pobj);
// 检验各项必传参数
if (pobj.requestId && pobj.requestId != 'undefined' &&
pobj.bizId && pobj.bizId != 'undefined' &&
......@@ -160,30 +159,54 @@ class DeliverybillCtl extends CtlBase {
pobj.delivery_status && pobj.delivery_status != 'undefined' &&
pobj.facilitator_id && pobj.facilitator_id != 'undefined') {
try {
// console.log(pobj);
var buInfo = await this.service.insertInfo(pobj);
var logInfo = {
"flowType": "DELIVERY",
"flowId": buInfo.id,
"statusCode": buInfo.delivery_status,
"status_reason": ""
}
await this.logService.insertInfo(logInfo);//插入状态日至表
return system.getResult(buInfo);
} catch (error) {
// console.log(error);
return system.getResultError(error);
}
} else {
return system.getResultError("参数错误!");
}
}
async updateServer(pobj, qobj, req) {
try {
if (!pobj.requestId || pobj.requestId == 'undefined') {
throw new Error("requestId 不能为空");
}
if (!pobj.bizId || pobj.bizId == 'undefined') {
throw new Error("bizId 不能为空");
}
if (!pobj.orderId || pobj.orderId == 'undefined') {
throw new Error("orderId 不能为空");
}
if (!pobj.topOrgCode || pobj.topOrgCode == 'undefined') {
throw new Error("topOrgCode 不能为空");
}
if (!pobj.companyName || pobj.companyName == 'undefined') {
throw new Error("companyName 不能为空");
}
if (!pobj.contactName || pobj.contactName == 'undefined') {
throw new Error("contactName 不能为空");
}
if (!pobj.companyBizType || pobj.companyBizType == 'undefined') {
throw new Error("companyBizType 不能为空");
}
if (!pobj.uscc || pobj.uscc == 'undefined') {
throw new Error("uscc 不能为空");
}
const rs = await this.service.updateServer(pobj);
return system.getResult(rs);
} catch (err) {
return system.getResult(null, err.message)
}
}
}
module.exports = DeliverybillCtl;
// var task = new DeliverybillCtl();
// var obj = {
// "orderId": "341184456620455_book",
// "orderId": "241284456620422",
// "source_number": "tx",
// "demand_code": "demand_code",
// "sku_code": "sku_code",
......@@ -196,14 +219,18 @@ module.exports = DeliverybillCtl;
// "facilitator_name": "公司宝",
// "source_name": "tencentCloud",
// "requestId": "282da0a74432-738f-4bed-b48d-d51aa433",
// "bizId": "1292748632",
// "bizId": "1292748623",
// "contactsPhone": "18510669321",
// "userId": "10973452443103156",
// "areaType": "city",
// "area": "100010",
// "topOrgCode": "rong_yi_suan",
// "taxpayerType": 1
// "taxpayerType": "generalTaxpayer",
// "companyName": "汉唐信通",
// "contactName": "王麻子",
// "companyBizType": "1",
// "uscc": "企业社会统一信用代码"
// };
// task.insertInfo(obj, {}, {}).then(d => {
// task.updateServer(obj, {}, {}).then(d => {
// console.log(JSON.stringify(d));
// })
\ No newline at end of file
......@@ -13,9 +13,23 @@ class BizoptDao extends Dao {
} else {
//需要添加公司查询条件
qw["facilitator_id"] = Number(qobj.company_id)
// 为空说明是管理员,不需设置组织结构过滤
if (qobj.opath && qobj.opath != "") {
qw["salesman_opcode"] = { [this.db.Op.like]: `%${qobj.opath}%` }
/**
* 数据权限过滤
* 1. 管理员 (opath 为空)、 销售主管(isPrincipal = true) 、 销售 (isPrincipal = false && opath不为空)
*/
if (!qobj.opath) { // 管理员 不做处理
} else if (qobj.isPrincipal) { // 销售主管 查询为空和自己组织结构下的
qw["$or"] = [
{
salesman_opcode: {
$eq: null
}
}, {
salesman_opcode: { $like: `%${qobj.opath}%` }
}
]
} else { // 销售 查询自己的
qw["salesman_opcode"] = { $like: `%${qobj.opath}%` }
}
//不是来自平台前端查询
if (qobj.bizpath && qobj.bizpath.indexOf("pmx") < 0) {
......@@ -29,12 +43,7 @@ class BizoptDao extends Dao {
[this.db.Op.eq]: "received"
};
}
if (qobj.bizpath.indexOf("demandfollow") > 0) {//从需求跟进列表过来的
qw["business_status"] = {
[this.db.Op.in]: ["beforeFollowUp", "followingUp", "beforeSubmission"]
};
}
if (qobj.bizpath.indexOf("distributionManagement") > 0) {//从分配记录列表过来的
if (qobj.bizpath.indexOf("demandfollow") > 0 || qobj.bizpath.indexOf("distributionManagement") > 0) {//从需求跟进列表或分配记录列表过来的
qw["business_status"] = {
[this.db.Op.ne]: "received"
};
......@@ -57,8 +66,7 @@ class BizoptDao extends Dao {
var setobj = { "business_status": qobj.business_status };
if (qobj.close_reason && qobj.close_reason != 'undefined') {
setobj["close_reason"] = qobj.close_reason;
}
else {
} else {
setobj["close_reason"] = "";
}
var whereobj = { "demand_code": qobj.demand_code };
......@@ -95,47 +103,35 @@ class BizoptDao extends Dao {
var obj = {
"demand_code": qobj.businessMode,
"business_type": qobj.businessType,
"business_status": qobj.currentStatus,
"business_info": {}
"business_status": qobj.bussinessStatus,
"business_info": {},
"source_number": qobj.sourceNumber,
"service_address": qobj.serviceAddress,
"facilitator_id": qobj.favilitatorID,
"facilitator_name": qobj.favilitatorName,
"source_name": qobj.sourceName,
};
if (qobj.channelSource && qobj.channelSource != 'undefined') {
obj.source_name = qobj.channelSource;
}
if (qobj.sourceNumber && qobj.sourceNumber != 'undefined') {
obj.source_number = qobj.sourceNumber;
}
if (qobj.serviceCode && qobj.serviceCode != 'undefined') {
obj.service_address = qobj.serviceCode;
//business_info START
if (qobj.topOrgCode && qobj.topOrgCode != 'undefined') {
obj.business_info.topOrgCode = qobj.topOrgCode
}
if (qobj.memoInfo && qobj.memoInfo != 'undefined') {
obj.business_info.memoInfo = qobj.memoInfo;
if (qobj.intentionBizId && qobj.intentionBizId != 'undefined') {
obj.business_info.intentionBizId = qobj.intentionBizId;
}
if (qobj.statusReason && qobj.statusReason != 'undefined') {
obj.close_reason = qobj.statusReason;
if (qobj.contactsPhone && qobj.contactsPhone != 'undefined') {
obj.business_info.contactsPhone = qobj.contactsPhone; //已经加密
}
if (qobj.contactsName && qobj.contactsName != 'undefined') {
obj.business_info.contactsName = qobj.contactsName;
}
if (qobj.contactsPhone && qobj.contactsPhone != 'undefined') {
obj.business_info.contactsPhone = qobj.contactsPhone;//已经加密
}
if (qobj.serviceName && qobj.serviceName != 'undefined') {
obj.business_info.serviceName = qobj.serviceName;
}
if (qobj.businessName && qobj.businessName != 'undefined') {
obj.business_info.businessName = qobj.businessName;
}
if (qobj.UserName && qobj.UserName != 'undefined') {
obj.business_info.userName = qobj.UserNames;
}
if (qobj.companyName && qobj.companyName != 'undefined') {
obj.business_info.companyName = qobj.companyName;
}
if (qobj.servicerCode && qobj.servicerCode != 'undefined') {
obj.facilitator_id = qobj.servicerCode;
}
if (qobj.servicerName && qobj.servicerName != 'undefined') {
obj.facilitator_name = qobj.servicerName;
//bussiness_info END
//other
if (qobj.closeReason && qobj.closeReason != 'undefined') {
obj.close_reason = qobj.closeReason;
}
if (qobj.salesmanOpcode && qobj.salesmanOpcode != 'undefined') {
obj.salesman_opcode = qobj.salesmanOpcode;
......@@ -143,15 +139,16 @@ class BizoptDao extends Dao {
if (qobj.salesmanId && qobj.salesmanId != 'undefined') {
obj.salesman_id = qobj.salesmanId;
}
if (qobj.clerkName && qobj.clerkName != 'undefined') {
obj.salesman_name = qobj.clerkName;
if (qobj.salesmanName && qobj.salesmanName != 'undefined') {
obj.salesman_name = qobj.salesmanName;
}
if (qobj.clerkPhone && qobj.clerkPhone != 'undefined') {
obj.salesman_phone = qobj.clerkPhone;
if (qobj.salesmanPhone && qobj.salesmanPhone != 'undefined') {
obj.salesman_phone = qobj.salesmanPhone;
}
return await this.create(obj, t);
}
}
module.exports = BizoptDao;
module.exports = BizoptDao;
\ No newline at end of file
......@@ -70,8 +70,6 @@ class DeliverybillDao extends Dao {
}
async insertInfo(qobj, t) {
// console.log("dao层qobj===>");
// console.log(qobj);
var obj = {
"delivery_code": qobj.orderId,
"product_code": qobj.product_code,
......@@ -183,9 +181,16 @@ class DeliverybillDao extends Dao {
delete qobj.delivery_status;
delete qobj.facilitator_id;
obj.delivery_info = qobj;
// console.log("dao层obj===>");
// console.log(obj);
return await this.create(obj, t);
}
async updateServer(qobj, whereobj, t) {
return await this.updateByWhere(qobj, whereobj, t);
}
async findOneByDeliveryCodeAndBizId(qobj) {
var qcwhere = { "delivery_code": qobj.orderId, "biz_id": qobj.bizId };
return await this.findOne(qcwhere);
}
}
module.exports = DeliverybillDao;
......@@ -240,5 +240,140 @@ class DeliverybillService extends ServiceBase {
return await self.dao.insertInfo(qobj, t);
});
}
async updateServer(qobj) {
var self = this;
var bill = await self.dao.findOneByDeliveryCodeAndBizId(qobj);
var obj = {};
var whereobj = {
"delivery_code": qobj.orderId,
"biz_id": qobj.bizId
};
// source_number
if (qobj.source_number && qobj.source_number != 'undefined') {
obj.source_number = qobj.source_number;
delete qobj.source_number;
}
// demand_code
if (qobj.demand_code && qobj.demand_code != 'undefined') {
obj.demand_code = qobj.demand_code;
delete qobj.demand_code;
}
// sku_code
if (qobj.sku_code && qobj.sku_code != 'undefined') {
obj.sku_code = qobj.sku_code;
delete qobj.sku_code;
}
// scheme_number
if (qobj.solutionBizId && qobj.solutionBizId != 'undefined') {
obj.scheme_number = qobj.solutionBizId;
delete qobj.solutionBizId;
}
// product_code
if (qobj.product_code && qobj.product_code != 'undefined') {
obj.product_code = qobj.product_code;
delete qobj.product_code;
}
// product_name
if (qobj.product_name && qobj.product_name != 'undefined') {
obj.product_name = qobj.product_name;
delete qobj.product_name;
}
// service_address
if (qobj.service_address && qobj.service_address != 'undefined') {
obj.service_address = qobj.service_address;
delete qobj.service_address;
}
// delivery_status
if (qobj.delivery_status && qobj.delivery_status != 'undefined') {
obj.delivery_status = qobj.delivery_status;
delete qobj.delivery_status;
}
// selling_price
if (qobj.selling_price && qobj.selling_price != 'undefined') {
obj.selling_price = qobj.selling_price;
delete qobj.selling_price;
}
// cost_price
if (qobj.cost_price && qobj.cost_price != 'undefined') {
obj.cost_price = qobj.cost_price;
delete qobj.cost_price;
}
// close_reason
if (qobj.close_reason && qobj.close_reason != 'undefined') {
obj.close_reason = qobj.close_reason;
delete qobj.close_reason;
}
// facilitator_id
if (qobj.facilitator_id && qobj.facilitator_id != 'undefined') {
obj.facilitator_id = qobj.facilitator_id;
delete qobj.facilitator_id;
}
// facilitator_name
if (qobj.facilitator_name && qobj.facilitator_name != 'undefined') {
obj.facilitator_name = qobj.facilitator_name;
delete qobj.facilitator_name;
}
// salesman_opcode
if (qobj.salesman_opcode && qobj.salesman_opcode != 'undefined') {
obj.salesman_opcode = qobj.salesman_opcode;
delete qobj.salesman_opcode;
}
// salesman_id
if (qobj.salesman_id && qobj.salesman_id != 'undefined') {
obj.salesman_id = qobj.salesman_id;
delete qobj.salesman_id;
}
// salesman_name
if (qobj.salesman_name && qobj.salesman_name != 'undefined') {
obj.salesman_name = qobj.salesman_name;
delete qobj.salesman_name;
}
// salesman_phone
if (qobj.salesman_phone && qobj.salesman_phone != 'undefined') {
obj.salesman_phone = qobj.salesman_phone;
delete qobj.salesman_phone;
}
// source_name
if (qobj.source_name && qobj.source_name != 'undefined') {
obj.source_name = qobj.source_name;
delete qobj.source_name;
}
// master_source_number
if (qobj.master_source_number && qobj.master_source_number != 'undefined') {
obj.master_source_number = qobj.master_source_number;
delete qobj.master_source_number;
}
// settle_status
if (qobj.settle_status && qobj.settle_status != 'undefined') {
obj.settle_status = qobj.settle_status;
delete qobj.settle_status;
}
// settlebill_id
if (qobj.settlebill_id && qobj.settlebill_id != 'undefined') {
obj.settlebill_id = qobj.settlebill_id;
delete qobj.settlebill_id;
}
// delivery_man_id
if (qobj.delivery_man_id && qobj.delivery_man_id != 'undefined') {
obj.delivery_man_id = qobj.delivery_man_id;
delete qobj.delivery_man_id;
}
// delivery_man_name
if (qobj.delivery_man_name && qobj.delivery_man_name != 'undefined') {
obj.delivery_man_name = qobj.delivery_man_name;
delete qobj.delivery_man_name;
}
// delivery_man_opcode
if (qobj.delivery_man_opcode && qobj.delivery_man_opcode != 'undefined') {
obj.delivery_man_opcode = qobj.delivery_man_opcode;
delete qobj.delivery_man_opcode;
}
delete qobj.orderId;
obj.delivery_info = JSON.parse((JSON.stringify(bill.delivery_info) + JSON.stringify(qobj)).replace(/}{/, ','));
return self.db.transaction(async function (t) {
return await self.dao.updateServer(obj, whereobj, t);
});
}
}
module.exports = DeliverybillService;
\ No newline at end of file
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