023-61709229

物资系统接口

发布日期:2022-09-04发布人:管理员

目的

本文档指导第三方系统对接追溯系统,实现目标:

向追溯系统增加一次性物品模板信息

向追溯系统入库一次性物品;

 

对接说明

 

追溯系统提供WebAPI

数据提交方式:Post

数据格式:JSON

数据传输格式:utf-8

对接地址:现场配置,如:http://192.168.x.x:12345/api.ashx

 

数据格式

1post和返回格式相同;

字段

必填

说明

dateTime

接口发生时间,格式:yyyy-MM-dd HH:mm:ss

如果提交的时间与服务器时间相差超过5分钟,返回失败

rndCode

一个随机字符串,推荐使用GUID

data

报文正文,一个JSON,各函数另附说明

dataLng

报文字符串长度,中文按1个长度计算,如果与data的长度不一致,返回失败

sign

签名,一个md5结果大写字符串,参见签名说明


签名说明

sign=md5(dateTime.ToString("yyyy-MM-dd HH:mm:ss")   "|"   rndCode   "|"   sKey   "|"   dataLng)

 

md5的时候把字符串按GBK2312的方式编码后参与计算;

sKey:现场分配;

 

参考代码(c#):

/// <summary>

/// 返回sign

/// </summary>

/// <param name="dtime">流水时间</param>

/// <param name="dataLng">流水正文长度</param>

/// <param name="sKey">系统分配的sKey</param>

/// <returns></returns>

public static string GetMD5(DateTime dtime, int dataLng,string sKey)

{

    //获取需要加密的字符串

    string encypStr = dtime.ToString("yyyy-MM-dd HH:mm:ss")   "|"   Guid.NewGuid().ToString("N")   "|"   sKey   "|"   dataLng;

    //返回加密后的内容

    return System.BitConverter.ToString((new MD5CryptoServiceProvider()).ComputeHash(Encoding.GetEncoding("GB2312").GetBytes(encypStr))).ToUpper();

}

 


成功时返回报文正文说明

{... ... "OK":true,  ... ... }

成功时报文正文里必有:OK:true

其它内容参见各函数说明;

 

 

示例:

{

  "dateTime": "2021-01-01 00:00:00",

  "rndCode": "df4a4949-dabb-4b15-9038-0409ebf047ae",

  "dataLng": "???",

  "sign": "xxxx",

  "data": {

"OK": true

...... (有可能不存在其它参数)

  }

}

 

失败时返回报文正文说明

{... ..."OK":false,"Message":"错误说明", ... ...}

失败时报文正文里必有:OK:false Message

Message里表示失败原因,如果有用户界面,该失败原因可直接向用户显示;

 

示例:

{

  "dateTime": "2021-01-01 00:00:00",

  "rndCode": "df4a4949-dabb-4b15-9038-0409ebf047ae",

  "dataLng": "???",

  "sign": "xxxx",

  "data": {

    "OK": false,

    "Message": "???"

  }

}

 


【函数说明】

【登陆】

传入参数

字段

必填

说明

menukey

login.webonekey

username

现场分配

nodecode

现场分配

 

返回内容

字段

必填

说明

token

一个字符串,小于或等于50字节,24小时内有效,作为其它函数的参数使用

rsUser

登陆的操作员相关信息,不使用可忽略,如姓名

kehuid

登陆的医院相关信息,不使用可忽略,如医院名称

rsKeshi

登陆的科室相关信息,不使用可忽略,如科室名称

...


其它还有一些可选信息,可忽略

 

示例:

{

  "dateTime": "2021-01-01 00:00:00",

  "rndCode": "df4a4949-dabb-4b15-9038-0409ebf047ae",

  "dataLng": "???",

  "sign": "xxxx",

  "data": {

    "menukey": "login.webonekey",

    "username": "???",

    "nodecode": "???"

  }

}

 

实例:

{"data":"{\"menukey\":\"login.webonekey\",\"username\":\"621764\",\"nodecode\":\"741A2E10-5FF2-4C66-AE2F-00124887765D\"}","dateTime":"2021-09-02 16:10:49","rndCode":"31f5d485-71b1-44c3-ab29-9f376bcd62be","dataLng":99,"sign":"B380C2D9AD401A21989D406057218419"}

 

里面没有换行符,因显示的原因产生了换行


【增加供应商或厂家】

传入参数

字段

必填

说明

id

一个GUID,全局唯一标识符

pagekey

*

267

menukey

*

pubgrid.add

isDel

*

0

gxtoken

登陆时获取的token

viewUrl

*

""

iconUrl

*

""

isStop

*

0

idInt

一个不重复的整数,大于:100000000,必须9位数

kehuID

现场分配

parentId

现场分配

parentIdName

现场分配

fullName

""

keshiType

*

00000000-0000-0000-0000-000000000000

keshiTypeName

*

""

jieshuanKeshi

*

00000000-0000-0000-0000-000000000000

jieshuanKeshi

*

""

Tel

*

""

orderNum

排序号,一个整数,0--100000000,允许重复

isGongyinshang

是供应商: true   否则:false

isChangjia

是厂家: true   否则:false

isCSSD

*

0

isWailaibaoGongShi

*

0

isFenYuan

*

0

isWJKuFang

*

0

isYCXKuFang

*

0

isHCKuFang

*

0

isJieshuanKeshi

*

0

isDaixiaoYiYuan

*

0

isShousuKeshi

*

0

canHuiShouOrFaFang

*

0

memo

备注

name

供应商名称

nameJM

拼音简码,如:名称为手套,简码建议为ST

*字段直接填写常量。

 

 

 

返回内容

字段

必填

说明



会返回当前增加数据的json

 

 

示例:

{

    "pagekey":"267",

    "menukey":"pubgrid.add",

    "iconUrl":"",

    "isDel":"0",

    "viewUrl":"",

    "isStop":"0",

    "idInt":"331",

    "kehuID":"2",

    "name":"test",

    "parentId":"faa2e53b-9a28-440a-a7cf-8a1e5cebd66e",

    "parentIdName":"xxx",

    "fullName":"",

    "id":"608ac1b7-b051-4e3e-905c-40bd75a0e410",

    "keshiType":"00000000-0000-0000-0000-000000000000",

    "nameJM":"TEST",

    "keshiTypeName":"",

    "jieshuanKeshiName":"",

    "jieshuanKeshi":"00000000-0000-0000-0000-000000000000",

    "tel":"",

    "orderNum":"0",

    "isGongyinshang":"false",

    "isChangjia":"true",

    "isCSSD":"0",

    "isWailaibaoGongShi":"0",

    "isFenYuan":"0",

    "isWJKuFang":"0",

    "isYCXKuFang":"0",

    "isHCKuFang":"0",

    "isJieshuanKeshi":"0",

    "isDaixiaoYiYuan":"0",

    "isShousuKeshi":"0",

    "canHuiShouOrFaFang":"0",

    "memo":"",

    "gxtoken":"37f05265-22ba-40c8-aecb-0cfda5eff254"

}

 

 


【增加一次性物品模板】

传入参数

字段

必填

说明

id

一个GUID,全局唯一标识符

pagekey

*

265

menukey

*

pubgrid.add

gxtoken

登陆时获取的token

name

物品名称

nameJM

拼音简码,如:名称为手套,简码建议为ST

codeText

条码号

guige

规格

defChangjia

厂家ID

defChangjiaName

厂家名称

defGongyinshang

供应商ID

defGongyinshangName

供应商名称

minDanwei

最小单位,如 ,直接用中文名称即可

minDanweiName

minDanwei

inDanwei

入库默认单位,如 ,直接用中文名称即可

inDanweiBeilv

入库默认单位与最小单位的倍率,1--1000000

inGongzhuoliang

入库工作量,没有可以填写0

outDanwei

出库默认单位,如 ,直接用中文名称即可

outDanweiBeilv

出库默认单位与最小单位的倍率,1--1000000

outGongzhuoliang

出库工作量,没有可以填写0

inMoney

入库单价(按最小单位)

outMoney

出库单价(按最小单位)

jinjieOne

第一警介线,达到后会提醒补货(按最小单位)

jinjieTwo

第二警介线,达到后会强烈提醒补货(按最小单位)

kehuID

现场分配

keshiID

现场分配

keshiName

现场分配

maxKucun

最大库存警介,超过后会提醒

nowYue

*

0

sysTypeID

*

2

userTypeName

用户类型,未分类填写“默认”

youxiaoqiDay

有效期天数,如一年即:365

isStop

*

0

isDel

*

0

ImgSmallID

*

""

ImgIconID

*

""

ImgDefID

*

""

ImgMores

*

""

*字段直接填写常量。

 

返回内容

字段

必填

说明



会返回当前增加数据的json

 

示例:

{

    "pagekey":"265",

    "menukey":"pubgrid.add",

    "ImgMores":"",

    "id":"029a04ac-1d4a-4d34-afbe-7776a00c5166",

    "name":"test",

    "nameJM":"TEST",

    "codeText":"t",

    "guige":"1",

    "defChangjia":"608ac1b7-b051-4e3e-905c-40bd75a0e410",

    "defChangjiaName":"test",

    "defGongyinshang":"436dc24a-2c89-4882-8e15-42ad28e69679",

    "defGongyinshangName":"aa",

    "minDanwei":"",

    "minDanweiName":"",

    "inGongzhuoliang":"0",

    "inDanwei":"",

    "inDanweiName":"",

    "inDanweiBeilv":"10",

    "outDanwei":"",

    "outDanweiName":"",

    "outDanweiBeilv":"10",

    "outGongzhuoliang":"0",

    "inMoney":"1",

    "outMoney":"1",

    "jinjieOne":"0",

    "jinjieTwo":"0",

    "kehuID":"2",

    "keshiID":"1743043f-b1bc-4a75-be5d-a58fb2c328a8",

    "keshiName":"消毒供应中心",

    "maxKucun":"0",

    "nowYue":"0",

    "sysTypeID":"2",

    "userTypeName":"默认",

    "userTypeNameName":"默认",

    "youxiaoqiDay":"365",

    "isStop":"0",

    "isDel":"0",

    "ImgSmallID":"",

    "ImgIconID":"",

    "ImgDefID":"",

    "gxtoken":"37f05265-22ba-40c8-aecb-0cfda5eff254"

}

 


【入库】

单据信息,传入参数

字段

必填

备注

id

一个GUID,全局唯一标识符

pagekey

*

286

menukey

*

pubgrid.add

isDel

*

0

gxtoken

登陆时获取的token

OutAccept

常量""

OutType

常量""

addDatetime

当前时间

gongyinshang

供应商id

gongyinshangName

供应商名

keshi

开入库单的人员所在科室

keshiName

开入库单的人员所在科室

memo

备注,可为空字符

nodeName

站点名,可自定义生成

sumGongzhuoliang

合计工作量,默认0

sumMoney

合计金额,默认0

sysTypeID

*

常量,直接传2

typeName

*

常量,直接传  入库

userID

操作员id, 类型guid,登陆接口有返回

userIDNam

操作员姓名

ImgSmallID

*

常量""

ImgIconID

*

常量""

ImgDefID

*

常量""

ImgMores

*

常量""

*字段直接填写常量。

 

 

 

返回内容

字段

必填

说明

无必要字段



 

 

{

    "pagekey":"286",

    "menukey":"pubgrid.add",

    "ImgMores":"",

    "gongyinshang":"436dc24a-2c89-4882-8e15-42ad28e69679",

    "gongyinshangName":"aa",

    "sysTypeID":"2",

    "id":"6270a234-2dca-4871-846e-281d77472698",

    "isDel":"0",

    "kehuID":"2",

    "keshi":"1743043f-b1bc-4a75-be5d-a58fb2c328a8",

    "nodeName":"",

    "typeName":"入库",

    "userID":"f8818f13-007a-47ed-bbc0-503900783722",

    "addDatetime":"2022-07-20 10:56:36",

    "userIDName":"测试员",

    "keshiName":"消毒供应中心",

    "sumGongzhuoliang":"0",

    "sumMoney":"10",

    "memo":"",

    "ImgIconID":"",

    "ImgDefID":"",

    "ImgSmallID":"",

    "gxtoken":"37f05265-22ba-40c8-aecb-0cfda5eff254"

}

 

 

 

 单据明细,传入参数多条明细需多次调用接口

字段

必填

备注

id

一个GUID,全局唯一标识符

pagekey

*

286_ycxwp

menukey

*

pubgrid.add

isDel

*

0

gxtoken

登陆时获取的token

typeName

*

常量,直接传  入库

shixiaodate

失效日期 格式2022-07-11

shencandate

生产日期 格式2022-07-11

pics

*

常量""

pichihao

批次号

outGongzhuoliang

*

常量,直接填0

outDanjia

单价

oldNumber

入库数量

Number

当前余量,等于入库数量

Amount

金额

linkInId

*

常量00000000-0000-0000-0000-000000000000

isDel

*

常量 0

haocaiID

物品模板id

haocaiIDName

物品模板名

gongzhuoliang

工作量

gongyinshangName

供应商名

changjiaName

厂家名

danwei

单位

danjuID

单据id

danjia

单价

*字段直接填写常量。

 

 

 

返回内容

字段

必填

说明

无必要字段



 

 

示例:

{

    "pagekey":"286_ycxwp",

    "menukey":"pubgrid.add",

    "ImgMores":"",

    "isDel":"0",

    "pics":"",

    "outDanjia":"1",

    "haocaiID":"029a04ac-1d4a-4d34-afbe-7776a00c5166",

    "haocaiIDName":"test",

    "outGongzhuoliang":"0",

    "gongyinshangName":"aa",

    "changjiaName":"test",

    "linkInId":"00000000-0000-0000-0000-000000000000",

    "danwei":"",

    "danjia":"1",

    "oldNumber":"10",

    "gongzhuoliang":"0",

    "Number":"10",

    "pichihao":"12",

    "shencandate":"2022-07-20",

    "shixiaodate":"2023-07-20",

    "danjuID":"6270a234-2dca-4871-846e-281d77472698",

    "id":"3942dc18-713e-4c1e-b79d-0d00cdd47e09",

    "typeName":"入库",

    "gxtoken":"37f05265-22ba-40c8-aecb-0cfda5eff254"

}