Commit 004c016a by 王勇飞

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

parents 0fa5190b d7ea23a4
......@@ -7,8 +7,8 @@ class AppAPI extends APIBase {
this.appS = system.getObject("service.common.appSve");
}
async create(pobj,q,req){
// console.log("oooooooooooooooooooooooooooooooooooooooooooooooo")
// console.log(req.xctx)
console.log("oooooooooooooooooooooooooooooooooooooooooooooooo")
console.log(req.xctx)
let rtn=this.appS.create(pobj,q,req);
return system.getResult(rtn);
}
......
......@@ -145,10 +145,10 @@ class DeliverybillCtl extends CtlBase {
}
// 创建融易算服务实例
async insertInfo(obj, qobj, req) {
console.log("GGGGGGG----------------------------------------------" + JSON.stringify(obj));
async insertInfo(mobj, qobj, req) {
console.log('mobj--------------------------------',mobj);
try {
var pobj = obj.actionBody.messageBody;
var pobj = mobj.actionBody;
var cachestr = sha235(JSON.stringify(pobj));
var cacheInfo = await this.cacheManager["TxCache"].getCache(cachestr);
if (cacheInfo && cacheInfo != 'undefined') {
......@@ -158,31 +158,39 @@ class DeliverybillCtl extends CtlBase {
"data": "",
"requestId": ""
}
}
}
else {
pobj.orderId = pobj.orderId + "_book";
pobj.contactsPhone = pobj.contactsMobile;
pobj.product_code = "bookkeeping";
pobj.product_name = "代帐服务";
pobj.delivery_status = "received";
pobj.facilitator_id = "10";
pobj.facilitator_name = "公司宝";
pobj.source_number = "tx";
pobj.source_name = "tencentCloud";
pobj.taxpayerName = pobj.taxpayerType;
if (pobj.taxpayerType == 1){
var obj = {};
obj.delivery_code = pobj.orderId + "_book";
obj.source_number = "tx";
if (pobj.solutionBizId) {
obj.scheme_number = pobj.solutionBizId;
var scheme = await this.fitaxschemeService.findInfoByBizid({ "bizId": pobj.solutionBizId });
if (scheme) {
pobj.demand_code = scheme.demand_code;
}
}
obj.product_code = "bookkeeping";
obj.product_name = "代帐服务";
obj.service_address = pobj.area;
obj.delivery_status = "received";
obj.facilitator_id = "10";
obj.facilitator_name = "公司宝";
obj.source_name = "tencentCloud";
pobj.contactsPhone = pobj.contactMobile;
delete pobj.contactMobile;
if (pobj.taxpayerType == 1) {
pobj.taxpayerType = "generalTaxpayer";
pobj.taxpayerName = "一般纳税人";
}
else if (pobj.taxpayerType == 2){
else if (pobj.taxpayerType == 2) {
pobj.taxpayerType = "smallScaleTaxpayer";
pobj.taxpayerName = "小规模纳税人";
}
if (pobj.solutionBizId){
var scheme = await this.fitaxschemeService.findInfoByBizid({"bizId":pobj.solutionBizId});
if (scheme){
pobj.demand_code = scheme.demand_code;
}
}
var buInfo = await this.service.insertInfo(pobj);
obj.delivery_info = pobj;
obj.biz_id = pobj.bizId;
var buInfo = await this.service.insertInfo(obj);
if (buInfo) {
await this.cacheManager["TxCache"].cache(cachestr, JSON.stringify({ cachestr: cachestr }), 180);//插入redis缓存
return {
......@@ -191,7 +199,7 @@ class DeliverybillCtl extends CtlBase {
"data": buInfo,
"requestId": ""
}
}
}
else {
return system.getResultFail(buInfo);
}
......@@ -203,12 +211,11 @@ class DeliverybillCtl extends CtlBase {
}
//更新融易算服务实例
async updateServer(obj, qobj, req) {
async updateServer(mobj, qobj, req) {
try {
var pobj = obj.actionBody.messageBody;
var pobj = mobj.actionBody;
var cachestr = sha235(JSON.stringify(pobj));
var cacheInfo = await this.cacheManager["TxCache"].getCache(cachestr);
var cacheInfo;
if (cacheInfo && cacheInfo != 'undefined') {
return {
"status": 1, //1代表成功,否则失败
......@@ -217,31 +224,31 @@ class DeliverybillCtl extends CtlBase {
"requestId": ""
}
} else {
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.contactMobile && pobj.contactMobile != 'undefined') {
pobj.contactsPhone = pobj.contactMobile;
delete pobj.contactMobile;
}
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 不能为空");
pobj.contactsName = pobj.contactName;
delete pobj.contactName;
pobj.companyType = pobj.companyBizType;
delete pobj.companyBizType;
pobj.creditCode = pobj.uscc;
delete pobj.uscc;
if (pobj.taxpayerType == 1) {
pobj.taxpayerType = "generalTaxpayer";
pobj.taxpayerName = "一般纳税人";
}
if (!pobj.uscc || pobj.uscc == 'undefined') {
throw new Error("uscc 不能为空");
else if (pobj.taxpayerType == 2) {
pobj.taxpayerType = "smallScaleTaxpayer";
pobj.taxpayerName = "小规模纳税人";
}
const rs = await this.service.updateServer(pobj);
obj = {
"delivery_code": pobj.orderId + "_book",
"delivery_info": pobj,
"biz_id": pobj.bizId
};
const rs = await this.service.updateServer(obj);
if (rs) {
await this.cacheManager["TxCache"].cache(cachestr, JSON.stringify({ cachestr: cachestr }), 180);//插入redis缓存
return {
......@@ -273,10 +280,37 @@ class DeliverybillCtl extends CtlBase {
return system.getResult(null, err.message)
}
}
async portog(){
console.log(settings.port);
}
}
module.exports = DeliverybillCtl;
// var task = new DeliverybillCtl();
var task = new DeliverybillCtl();
var obj = {
"actionType": "produceData",
"actionBody": {
"pushUrl": "http://ic.com:8000/web/bizchance/deliverybillCtl",
"actionType": "insertInfo",
"identifyCode": "book-manage",
"messageBody": {
"requestId": "825da0a74432-738f-4bed-468d-d51aa880",
"bizId": "2292748809",
"userId": "24173452443103825",
"orderId": "235184456620496",
"areatype": "city",
"area": "100010",
"topOrgCode": "rong_yi_suan",
"taxpayerType": 1,
"contactMobile": "18510669321"
}
}
}
task.portog().then(d => {
console.log(JSON.stringify(d));
})
// var obj = {
// "actionType": "produceData",
// "actionBody": {
......@@ -284,23 +318,18 @@ module.exports = DeliverybillCtl;
// "actionType": "insertInfo",
// "identifyCode": "book-manage",
// "messageBody": {
// "requestId": "825da0a74432-738f-4bed-b48d-d51aa808",
// "bizId": "5892748825",
// "contactsPhone": "18510669321",
// "userId": "10973452443103825",
// "orderId": "341184456620496_book",
// "areatype": "city",
// "area": "100010",
// "topOrgCode": "rong_yi_suan",
// "taxpayerType": 1,
// "product_code": "bookkeeping",
// "product_name": "代账服务",
// "service_address": "110100",
// "delivery_status": "waituserconfirm",
// "facilitator_id": "10"
// "requestId": "825da0a74432-738f-4bed-468d-d51aa880",
// "bizId": "2292748809",
// "orderId": "235184456620496",
// "companyName": "北京融易算",
// "contactName": "JAMES7",
// "taxpayerType": 5,
// "contactMobile": "18510669367",
// "companyBizType": 1,
// "uscc": "911101053516460817K"
// }
// }
// }
// task.insertInfo(obj, {}, {}).then(d => {
// task.updateServer(obj, {}, {}).then(d => {
// console.log(JSON.stringify(d));
// })
......@@ -40,7 +40,7 @@ class DeliverybillDao extends Dao {
})
// 根据 页面 过滤 交付状态
switch (qobj.bizpath) {
case "/configManageMent/deliveryRecord": // 交付单记录
case "/deliveryManage/deliveryRecord": // 交付单记录
filters.push({
delivery_status: {
$in: [
......@@ -49,7 +49,7 @@ class DeliverybillDao extends Dao {
}
});
break
case "/configManageMent/deliveryManage": //交付单处理
case "/deliveryManage/deliveryDealWith": //交付单处理
filters.push({
delivery_status: {
$in: [
......@@ -90,139 +90,60 @@ class DeliverybillDao extends Dao {
delete qc.where.deliveryNumber;
}
if (qc.where.deliveryStatus) {
filters.push({
delivery_status: qc.where.deliveryStatus
});
delete qc.where.deliveryStatus;
}
if (qc.where.setupStatus) {
if (qobj && qobj.search && qobj.search.setupStatus && qobj.search.setupStatus === system.SERVERSESTATUS.SETUP) {
filters.push({
v_setup_status: qc.where.setupStatus
});
} else {
filters.push({
$or: [
{
v_setup_status: qc.where.setupStatus
},
{
v_setup_status: {
$eq: null
}
}
]
});
}
delete qc.where.setupStatus;
}
qc.where["$and"] = filters;
return qw;
}
async insertInfo(qobj, t) {
var obj = {
"delivery_code": qobj.orderId,
"product_code": qobj.product_code,
"product_name": qobj.product_name,
"service_address": qobj.area,
"delivery_status": qobj.delivery_status,
"facilitator_id": qobj.facilitator_id,
"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;
}
// 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_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;
delete qobj.product_code;
delete qobj.product_name;
delete qobj.service_address;
delete qobj.delivery_status;
delete qobj.facilitator_id;
obj.delivery_info = qobj;
return await this.create(obj, t);
return await this.create(qobj, t);
}
async updateServer(qobj, whereobj, t) {
return await this.updateByWhere(qobj, whereobj, t);
async updateServer(qobj, t) {
var setobj = { "delivery_info": qobj.delivery_info };
var whereobj = { "delivery_code": qobj.delivery_code, "biz_id": qobj.biz_id };
return await this.updateByWhere(setobj, whereobj, t);
}
async findOneByDeliveryCodeAndBizId(qobj) {
var qcwhere = { "delivery_code": qobj.orderId, "biz_id": qobj.bizId };
var qcwhere = { "delivery_code": qobj.delivery_code, "biz_id": qobj.biz_id };
return await this.findOne(qcwhere);
}
/**
* 根据服务实例id查找服务所有信息
*/
async findByBizId(pobj){
var oid=pobj.bizId;
return await this.findOne({biz_id:oid});
async findByBizId(pobj) {
var oid = pobj.bizId;
return await this.findOne({ biz_id: oid });
}
}
module.exports = DeliverybillDao;
......@@ -22,6 +22,10 @@ module.exports = (db, DataTypes) => {
allowNull: true,
type: DataTypes.STRING
},
company_name: { // 公司名称-虚拟字段
allowNull: true,
type: DataTypes.STRING
},
v_coname: { // 联系人-虚拟字段
allowNull: true,
type: DataTypes.STRING
......@@ -30,6 +34,10 @@ module.exports = (db, DataTypes) => {
allowNull: true,
type: DataTypes.STRING
},
v_setup_status: {// 公司名称-建账状态
allowNull: true,
type: DataTypes.STRING
},
demand_code: {// 商机编号
allowNull: true,
type: DataTypes.STRING
......@@ -62,14 +70,14 @@ module.exports = (db, DataTypes) => {
allowNull: false,
type: DataTypes.STRING
},
master_source_number:{//主订单号
master_source_number: {//主订单号
allowNull: true,
type: DataTypes.STRING
},
settle_status: {// 服务单流转状态
allowNull: false,
type: DataTypes.STRING,
defaultValue:'waittosettle'
defaultValue: 'waittosettle'
},
selling_price: {//售价
allowNull: true,
......
......@@ -354,23 +354,18 @@ class System {
for (var i in arr) {
if (arr[i] != "sign" && arr[i] != "ip" &&
(!(Object.prototype.toString.call(obj[arr[i]]) == '[object Object]' || Object.prototype.toString.call(obj[arr[i]]) == '[object Array]')
&& (obj[arr[i]] && obj[arr[i]] != 'undefined'))) {
&& ((obj[arr[i]] || obj[arr[i]] === 0 || obj[arr[i]] === false) && obj[arr[i]] != 'undefined'))) {
str += arr[i] + "=" + obj[arr[i]] + "&";
}
}
var toSignStr = str.substr(0, str.length - 1);
var sb = toSignStr + secret;
console.log("cmd=ApiSignUtils:toSign msg=original Sign:" + sb.toString() + " req param:" + obj);
console.log("cmd=ApiSignUtils:toSign msg=original Sign:" + sb.toString());
// 对sb进行md5加密后得到svrSign
svrSign = md5(sb);
console.log("svrSign===>" + svrSign);
}
if (svrSign.toLowerCase() == obj["sign"].toLowerCase()) {
console.log("cmd=ApiSignUtils:SignValid msg=original Sign:" + svrSign)
return true;
}
console.error("cmd=ApiSignUtils:SignValid msg=Sign validtate fail! svrSign:" + svrSign + " reqSign:" + obj["sign"]);
return false;
return svrSign;
}
}
......@@ -415,7 +410,7 @@ System.SERVERSESTATUS = {
INSERVICE: "inservice",//服务中
CLOSED: "closed",//已关闭 、已终止
NOTSETUP: "notsetup",//未建账
SETUP: "setup"//建账
SETUP: "setup"//建账
}
/*
......
const axios = require("axios");
const settings = require("../../config/settings");
const system = require("../system");
const ftConfig = settings.ftConfig();
let ftTenantInfo; // 财税中心 缓存
/**
* 发送 post 请求
* @param {*} url
* @param {*} data
* @param {*} headers
*/
const postRequest = async (url, data, headers = {}) => {
try {
console.log(`${url} : 推送财税中心数据 ------- `);
console.log(JSON.stringify(data))
let result = await axios.post(url, data, {
headers: {
'Content-Type': 'application/json',
...headers
},
timeout: 5000,
});
result = result.data;
console.log("推送财税中心返回数据 ------- ");
console.log(JSON.stringify(result));
if (result.code == 1) {
return result.data
} else {
throw new Error(result.errMsg);
}
} catch (err) {
console.log("------ 财税中心err -----");
console.log(err)
throw (err)
}
}
/**
* 向财税 项目 发送消息 (不带签名)
* @param {*} url
* @param {*} data
* @param {*} headers
*/
const postToFt = (url, data, headers = {}) => {
return postRequest(`${ftConfig.url}${url}`, data, headers = {})
}
/**
* 租户 向财税 项目 发送消息 带签名
* @param {*} url
* @param {*} data
* @param {*} headers
*/
const postToFtBySign = async (url, data, headers = {}) => {
let tenantInfo = await getChannelCompany();
data.companyId = tenantInfo.id;
let sign = system.signValid(data, tenantInfo.signSecret);
return postRequest(`${ftConfig.url}${url}`, { ...data, sign }, headers = {})
}
/**
* 财税 获取 租户信息
*/
const getChannelCompany = async () => {
// 内存 缓存
if (ftTenantInfo) {
return ftTenantInfo
}
let reqData = {
channelCode: ftConfig.channelCode,
}
let sign = system.signValid(reqData, ftConfig.secret);
const companyData = await postToFt("/company/getChannelCompany", {
...reqData,
sign
});
if (companyData.datas && companyData.datas.length > 0) {
ftTenantInfo = companyData.datas[0]
return ftTenantInfo;
} else {
throw ("渠道码信息获取错误");
}
}
/**
* 建账
*/
const addCusAccApplyInfo = async () => {
let reqData = {
accountStandard: 1,
applyDate: "2020-09-10",
contact: "JAMES7",
creditCode: "911101053516460817K",
customerName: "北京融易算",
phoneNumber: "18510669367",
valueAddedTax: 1,
serviceTime: "5",
initPeriod: 202009,
}
const data = await postToFtBySign('/cusAccApplyInfo/addCusAccApplyInfo', reqData);
console.log(data);
}
module.exports = {
postToFtBySign,
addCusAccApplyInfo
}
......@@ -59,6 +59,21 @@ var settings = {
return "http://logs-sytxpublic-msgq-service/api/queueAction/producer/springBoard";
}
},
ftConfig: function () {
if (this.env == "localhost") {
return {
channelCode: "e0kj8ehs",
secret: "92a15b9b4c5a9ea708bb5583408e1441",
url: "https://nt-api.gongsibao.com/nga-api"
};
} else {
return {
channelCode: "e0kj8ehs",
secret: "92a15b9b4c5a9ea708bb5583408e1441",
url: "https://nt-api.gongsibao.com/nga-api"
};
}
},
pmappid: 1,
pmcompanyid: 1,
pmroleid: { "ta": 1, "pr": 2 },
......
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