Commit 9168ce65 by 庄冰

orderdelivery

parent 303c8f07
......@@ -57,6 +57,9 @@ class OrderAPI extends APIBase {
opResult = await this.orderinfoSve.putReceiptVoucherInfo(pobj, pobj.actionBody);
break;
//--------------------------------支付相关接口------------结束
case "tmConfirm"://商标方案确认
opResult = await this.orderinfoSve.tmConfirm(pobj);
break;
default:
opResult = system.getResult(null, "action_type参数错误");
break;
......
......@@ -4,7 +4,7 @@ const uiconfig = system.getUiConfig2(settings.appKey);
module.exports = (db, DataTypes) => {
return db.define("orderinfo", {
uapp_id :DataTypes.INTEGER,//
solutionId :DataTypes.STRING(128),// 方案ID
// solutionId :DataTypes.STRING(128),// 方案ID
orderNo :DataTypes.STRING(128),// 订单号
channelServiceNo :DataTypes.STRING(128),// 渠道服务单号
channelOrderNo :DataTypes.STRING(128),// 渠道订单号(页面中列表中显示该单号)
......@@ -36,6 +36,7 @@ module.exports = (db, DataTypes) => {
invoiceApplyStatus :DataTypes.STRING(10),// 发票状态:00: 未申请, 10: 已申请,20:已开票
opNotes :DataTypes.STRING,// 备注
notes :DataTypes.STRING,// 备注
isSolution :DataTypes.INTEGER,// 是否有方案,0无,1有
}, {
paranoid: true,//假的删除
underscored: true,
......
......@@ -4,12 +4,35 @@ const uuidv4 = require('uuid/v4');
class InternalCallsNotifyService {
constructor() {
this.orderinfoDao = system.getObject("db.dbcorder.orderinfoDao");
this.delivery_status={
"dqrfa": "待确认方案",
"fabtg": "方案不通过",
"dfwsfw": "待服务",
"dsccl": "待上传材料",
"dsh": "待审核",
"ddj": "待递交",
"ydj": "已递交",
"ywc": "已完成"
};
this.statusContrast={
"WAITCONFIRM":{name:"待确认方案",value:"dqrfa"},
"CONFIRMFAIL":{name:"方案不通过",value:"fabtg"},
"READY":{name:"待上传材料",value:"dsccl"},
"WAITCOMMIT":{name:"待递交",value:"ddj"},
"WAITARTIFICIALEXAMINE":{name:"待审核",value:"dsh"},
"DOCFINISH": {name:"待审核",value:"dsh"},
"AWAITCHECK": {name:"待审核",value:"dsh"},
"COMMITED": {name:"已递交",value:"ydj"},
"ROBOT": {name:"已递交",value:"ydj"},
"ROBOTPAY": {name:"已递交",value:"ydj"},
"RECVCOMMIT": {name:"已递交",value:"ydj"},
};
}
//接收辅助、担保商标注册信息
async receiveAssistTmData(pobj){
var checkRes = await this.checkParams(pobj);
if(checkRes.status==0){
var deliveryData = await this.packagingTmDeliveryData(pobj);
var deliveryData = await this.packagingTmDeliveryData(pobj,null);
//获取交付信息
var orderdeliveryRes = await this.getOrderDelivery(pobj.sourceOrderNo,pobj.serviceNo);
if(orderdeliveryRes && orderdeliveryRes.length>0){
......@@ -30,7 +53,8 @@ class InternalCallsNotifyService {
if(!orderdeliveryRes || orderdeliveryRes.length<1){
return system.getResult(null,"未知交付信息,10150");
}
var deliveryData = await this.packagingTmDeliveryData(pobj);
var orderdelivery = orderdeliveryRes[0];
var deliveryData = await this.packagingTmDeliveryData(pobj,orderdelivery.deliveryContent);
this.putOrderDelivery(deliveryData,deliveryData.sourceOrderNo,deliveryData.serviceNo);
return system.getResultSuccess();
}else{
......@@ -98,37 +122,32 @@ class InternalCallsNotifyService {
}
return system.getResultSuccess(pobj);
}
async packagingTmDeliveryData(pobj) {//重新组装商标交付信息
var deliveryStatus = "dsccl";
var deliveryStatusName = "待上传材料";
var deliveryStatusList = [{
deliveryStatus: "dsccl",
deliveryStatusName: "待上传材料",
deliveryUpdated: new Date()
}];
if (pobj.apply.customerType == "ent") {
if (pobj.apply.businessLicensePdf && pobj.apply.gzwtsUrl) {
deliveryStatus = "dsh";
deliveryStatusName = "待审核";
async packagingTmDeliveryData(pobj,deliveryData) {//重新组装商标交付信息
var deliveryStatusList = [];
if(deliveryData && deliveryData.deliveryStatusList){
deliveryStatusList = deliveryData.deliveryStatusList;
}
var nclOne = pobj.nclones[0];
if(nclOne.tmStatus){
var deliveryStatusObj = this.statusContrast[nclOne.tmStatus];
if(deliveryStatusObj && deliveryStatusObj.value){
var deliveryStatus = deliveryStatusObj.value;
var deliveryStatusName = deliveryStatusObj.name;
deliveryStatusList.push({
deliveryStatus: deliveryStatus,
deliveryStatusName: deliveryStatusName,
deliveryUpdated: new Date()
});
}
} else {
if (pobj.apply.businessLicensePdf && pobj.apply.gzwtsUrl && pobj.apply.identityCardPdf) {
deliveryStatus = "dsh";
deliveryStatusName = "待审核";
pobj.deliveryStatus = deliveryStatus;
pobj.deliveryStatusName = deliveryStatusName;
}else{
deliveryStatusList.push({
deliveryStatus: deliveryStatus,
deliveryStatusName: deliveryStatusName,
deliveryStatus: nclOne.tmStatus,
deliveryStatusName: nclOne.tmStatus,
deliveryUpdated: new Date()
});
}
}
pobj.deliveryStatus = deliveryStatus;
pobj.deliveryStatusName = deliveryStatusName;
pobj.deliveryStatusList = deliveryStatusList;
pobj.opNotes = ""; //操作备注
return pobj;
......@@ -148,5 +167,6 @@ class InternalCallsNotifyService {
sql = sql + " and deliveryContent->'$.serviceNo' = '"+channelOrderNo+"'";
return await this.orderinfoDao.customQuery(sql);
}
//----------------------------------------------------------------------------------------------------------
}
module.exports = InternalCallsNotifyService;
\ No newline at end of file
......@@ -731,6 +731,10 @@ class OrderInfoService extends ServiceBase {
orderNo + "','" + JSON.stringify(data) + "')";
this.customQuery(sql);
}
async getOrderDelivery(orderNo) {//查询交付信息
var sql = "select * from `c_order_delivery` where sourceOrderNo='" + orderNo + "'";
return await this.customQuery(sql);
}
async delOrder(pobj, actionBody) {//删除订单
await this.dao.delOrderByOrderNo(actionBody.orderNo, pobj.appInfo.uapp_id, pobj.userInfo.channel_userid);
return system.getResultSuccess();
......@@ -1175,6 +1179,98 @@ class OrderInfoService extends ServiceBase {
}
//-------------------------------服务商通知订单流程-------------end----------------
//商标方案确认
async tmConfirm(pobj) {
var ab = pobj.actionBody;
var self = this;
var user = pobj.userInfo;
var app = pobj.appInfo;
if (!user || !user.id) {
return system.getResultFail(-100, "未知用户");
}
if (!app || !app.id) {
return system.getResultFail(-100, "未知渠道");
}
var channelUserId = user.channel_userid;
var orderNo = ab.orderNo;
var isConfirm = ab.isConfirm;
if (!channelUserId) {
return system.getResultFail(-101, "渠道用户id不能为空");
}
if (!orderNo) {
return system.getResultFail(-102, "订单号不能为空");
}
if (!isConfirm) {
return system.getResultFail(-103, "确认码不能为空");
}
//获取订单信息
var orderinfo = await this.dao.model.findOne({
where:{orderNo:orderNo,uapp_id:app.uapp_id},raw:true
});
if (!orderinfo || !orderinfo.id) {
return system.getResultFail(-110, "未知订单信息");
}
if (orderinfo.isSolution != 1) {
return system.getResultFail(-111, "该订单无方案,不能执行此操作");
}
//获取交付单信息
var orderdeliveryRes = await this.getOrderDelivery(orderNo);
if (!orderdeliveryRes || !orderdeliveryRes.length<1) {
return system.getResultFail(-104, "未知订单交付信息");
}
var orderdelivery = orderdelivery[0];
var deliveryContent = orderdelivery.deliveryContent;
if (!deliveryContent || !deliveryContent.deliveryStatus || deliveryContent.deliveryStatus != "dqrfa") {
return system.getResultFail(-105, "方案确认失败,该方案交付状态为" + ordertmproduct.deliveryStatusName);
}
if(!deliveryContent.deliveryStatusList){
deliveryContent.deliveryStatusList = [];
}
return await self.db.transaction(async function (t) {
var orderLog = {
uapp_id: app.uapp_id,
sourceOrderNo: orderNo,
opContent: "商标方案确认",
isShow: 1
};
var orderInfoObj = {
id:orderinfo.id
};
if (isConfirm == "0") {
if (!ab.notes) {
return system.getResultFail(-106, "方案确认失败,不通过原因不能为空");
}
deliveryContent["deliveryStatus"] = "fabtg";
deliveryContent["deliveryStatusName"] = "方案不通过";
deliveryContent["opNotes"] = ab.notes;
orderLog["opContent"] = "商标方案不通过";
deliveryContent.deliveryStatusList.push({
deliveryStatus:"fabtg",
deliveryStatusName: "方案不通过",
deliveryUpdated: new Date()
});
orderInfoObj["isSolution"]=0;
}
if (isConfirm == "1") {
deliveryContent["deliveryStatus"] = "dsh";
deliveryContent["deliveryStatusName"] = "待审核";
deliveryContent["opNotes"] = obj.notes || "";
orderLog["opContent"] = "商标方案确认通过";
deliveryContent.deliveryStatusList.push({
deliveryStatus:"dsh",
deliveryStatusName: "待审核",
deliveryUpdated: new Date()
});
orderInfoObj["isSolution"]=0;
}
self.putOrderDelivery(deliveryContent,orderNo);//修改订单交付信息
await self.dao.update(orderInfoObj, t);//修改订单信息
await self.flowlogDao.create(orderLog, t);//添加流程信息
return system.getResultSuccess();
})
}
}
module.exports = OrderInfoService;
\ 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