当前的原型客户是一家医院,财务系统使用的是金蝶云星空,需要与医院专用的HIS系统进行集成。本文档主要是介绍其中的凭证模板的配置功能。
凭证模板组件旨在生成凭证前,通过内部整理整合原始单据数据,将其转化为可生成一张凭证的数据格式。
一、实操讲解--凭证模板组件
重要说明:
1、本培训提供的数据已做处理,仅供方便演示操作使用!
2、凭证模板组件在不断的版本迭代中,不同的版本可能会有一些界面上的差异;
凭证模板内置规则如下:
1.凭证模板会过滤掉金额不存在或金额为0的凭证分录。
2.凭证模板会过滤掉科目不存在的凭证分录。
3.凭证模板的金额支持设置保留小数位,默认保留两位。
以演示数据生成收入凭证为例:
1.新建流程
2.准备原始数据(本次直接通过Groovy组件来演示,也可以是其它的组件来源)
2.1拖入groovy组件,写入测试数据
组件内部代码及演示数据如下(可以直接复制过去)
return { $$ ->
// TODO 在这里编写业务逻辑
return com.alibaba.fastjson.JSON.parse("""{
"Aid": 370203015006,
"Patid": 202401000848,
"Sn": 2024033008940002,
"Dt": "2024-03-30T08:02:46.363",
"Mny": 468.6000,
"Pn": "3599501",
"Op": "战**",
"Goback": 0,
"Note": null,
"PatType": "1",
"Auid": 4971032,
"Fees": [
{
"Aid": 370203015006,
"Patid": 202401000848,
"Sn": 2024033008940002,
"Mid": 12000395,
"Bn": "9B240108",
"Vdate": 20261231,
"Dep": 4,
"Dr": 5002,
"Quan": 1.0000,
"Pr0": 126.9000,
"Prr": 126.9000,
"Pri": 76.0000,
"Mny": 126.9000,
"Cs": 1,
"Mrn": 1,
"Dt": "2024-03-30T08:02:46.363",
"Pn": 3599501,
"Op": "战**",
"Totalmny": 468.6000,
"Payer": "石**",
"Typ": "西药费",
"Typid": 1,
"Adept": 0,
"Auid": 4125881,
"AccTypeCode": 0,
"AccTypeName": "",
"AccTypeNote": "",
"Goback": 0,
"Snauid": 4971032,
"Micuscode": "",
"MedName": "药房",
"Accmode": "",
"Snpattype": 1,
"Qty": 1.0000,
"DictInfo": {
"Dicttype": 1,
"Aid": 370203015006,
"Mid": 12000395,
"Gn": "达**片",
"Wn": "芙泽",
"Spr": "10mg*30片",
"Utr": "瓶",
"Utfac": 30.0000,
"Prr": 0.0000,
"Made": "山东******有限公司",
"Bus": "山东******有限公司",
"Sty": "片剂",
"Acode": 16
}
},
{
"Aid": 370203015006,
"Patid": 202401000848,
"Sn": 2024033008940002,
"Mid": 12000398,
"Bn": "Y08446",
"Vdate": 20280514,
"Dep": 4,
"Dr": 5002,
"Quan": 2.0000,
"Pr0": 48.8500,
"Prr": 48.8500,
"Pri": 41.2000,
"Mny": 97.7000,
"Cs": 1,
"Mrn": 1,
"Dt": "2024-03-30T08:02:46.363",
"Pn": 3599501,
"Op": "战**",
"Totalmny": 468.6000,
"Payer": "石**",
"Typ": "西药费",
"Typid": 1,
"Adept": 0,
"Auid": 4125880,
"AccTypeCode": 0,
"AccTypeName": "",
"AccTypeNote": "",
"Goback": 0,
"Snauid": 4971032,
"Micuscode": "",
"MedName": "药房",
"Accmode": "",
"Snpattype": 1,
"Qty": 2.0000,
"DictInfo": {
"Dicttype": 1,
"Aid": 370203015006,
"Mid": 12000398,
"Gn": "盐***片",
"Wn": "格**",
"Spr": "0.85g*30片",
"Utr": "盒",
"Utfac": 30.0000,
"Prr": 0.0000,
"Made": "MERCKSANTEs.a.s.",
"Bus": "MERCKSANTEs.a.s.",
"Sty": "片剂",
"Acode": 16
}
},
{
"Aid": 370203015006,
"Patid": 202401000848,
"Sn": 2024033008940002,
"Mid": 15000121,
"Bn": "231001",
"Vdate": 20251016,
"Dep": 4,
"Dr": 5002,
"Quan": 2.0000,
"Pr0": 24.5000,
"Prr": 24.5000,
"Pri": 5.5000,
"Mny": 49.0000,
"Cs": 1,
"Mrn": 1,
"Dt": "2024-03-30T08:02:46.363",
"Pn": 3599501,
"Op": "战**",
"Totalmny": 468.6000,
"Payer": "石**",
"Typ": "西药费",
"Typid": 1,
"Adept": 0,
"Auid": 4125882,
"AccTypeCode": 0,
"AccTypeName": "",
"AccTypeNote": "",
"Goback": 0,
"Snauid": 4971032,
"Micuscode": "",
"MedName": "药房",
"Accmode": "",
"Snpattype": 1,
"Qty": 2.0000,
"DictInfo": {
"Dicttype": 1,
"Aid": 370203015006,
"Mid": 15000121,
"Gn": "****胶囊",
"Wn": "****胶囊",
"Spr": "0.1g*6粒",
"Utr": "盒",
"Utfac": 6.0000,
"Prr": 0.0000,
"Made": "四川*****公司",
"Bus": "四川******公司",
"Sty": "胶囊剂",
"Acode": 16
}
},
{
"Aid": 370203015006,
"Patid": 202401000848,
"Sn": 2024033008940002,
"Mid": 15000128,
"Bn": "20240102",
"Vdate": 20270106,
"Dep": 4,
"Dr": 5002,
"Quan": 1.0000,
"Pr0": 78.6000,
"Prr": 78.6000,
"Pri": 28.3000,
"Mny": 78.6000,
"Cs": 1,
"Mrn": 1,
"Dt": "2024-03-30T08:02:46.363",
"Pn": 3599501,
"Op": "战**",
"Totalmny": 468.6000,
"Payer": "石**",
"Typ": "西药费",
"Typid": 1,
"Adept": 0,
"Auid": 4125883,
"AccTypeCode": 0,
"AccTypeName": "",
"AccTypeNote": "",
"Goback": 0,
"Snauid": 4971032,
"Micuscode": "",
"MedName": "药房",
"Accmode": "",
"Snpattype": 1,
"Qty": 1.0000,
"DictInfo": {
"Dicttype": 1,
"Aid": 370203015006,
"Mid": 15000128,
"Gn": "磷***胶囊",
"Wn": "立生舒",
"Spr": "75mg*10粒",
"Utr": "盒",
"Utfac": 10.0000,
"Prr": 0.0000,
"Made": "北京*****公司",
"Bus": "北京******公司",
"Sty": "胶囊剂",
"Acode": 16
}
},
{
"Aid": 370203015006,
"Patid": 202401000848,
"Sn": 2024033008940002,
"Mid": 19000161,
"Bn": "24010651",
"Vdate": 20251231,
"Dep": 4,
"Dr": 5002,
"Quan": 2.0000,
"Pr0": 9.6000,
"Prr": 9.6000,
"Pri": 4.9000,
"Mny": 19.2000,
"Cs": 1,
"Mrn": 1,
"Dt": "2024-03-30T08:02:46.363",
"Pn": 3599501,
"Op": "战**",
"Totalmny": 468.6000,
"Payer": "石**",
"Typ": "西药费",
"Typid": 1,
"Adept": 0,
"Auid": 4125886,
"AccTypeCode": 0,
"AccTypeName": "",
"AccTypeNote": "",
"Goback": 0,
"Snauid": 4971032,
"Micuscode": "",
"MedName": "药房",
"Accmode": "",
"Snpattype": 1,
"Qty": 2.0000,
"DictInfo": {
"Dicttype": 1,
"Aid": 370203015006,
"Mid": 19000161,
"Gn": "盐*****溶液",
"Wn": "盐*****溶液",
"Spr": "100ml:0.3g*1瓶",
"Utr": "瓶",
"Utfac": 1.0000,
"Prr": 0.0000,
"Made": "江苏******公司",
"Bus": "江苏******公司",
"Sty": "口服溶液剂",
"Acode": 16
}
},
{
"Aid": 370203015006,
"Patid": 202401000848,
"Sn": 2024033008940002,
"Mid": 21000226,
"Bn": "231110",
"Vdate": 20251031,
"Dep": 4,
"Dr": 5002,
"Quan": 2.0000,
"Pr0": 16.6000,
"Prr": 16.6000,
"Pri": 7.2500,
"Mny": 33.2000,
"Cs": 1,
"Mrn": 1,
"Dt": "2024-03-30T08:02:46.363",
"Pn": 3599501,
"Op": "战**",
"Totalmny": 468.6000,
"Payer": "石**",
"Typ": "中成药",
"Typid": 2,
"Adept": 0,
"Auid": 4125884,
"AccTypeCode": 0,
"AccTypeName": "",
"AccTypeNote": "",
"Goback": 0,
"Snauid": 4971032,
"Micuscode": "",
"MedName": "药房",
"Accmode": "",
"Snpattype": 1,
"Qty": 2.0000,
"DictInfo": {
"Dicttype": 1,
"Aid": 370203015006,
"Mid": 21000226,
"Gn": "*****口服液",
"Wn": "东盛",
"Spr": "10ml*10支",
"Utr": "盒",
"Utfac": 10.0000,
"Prr": 0.0000,
"Made": "安徽******公司",
"Bus": "安徽******公司",
"Sty": "合剂",
"Acode": 20
}
},
{
"Aid": 370203015006,
"Patid": 202401000848,
"Sn": 2024033008940002,
"Mid": 21000254,
"Bn": "2312017",
"Vdate": 20271130,
"Dep": 4,
"Dr": 5002,
"Quan": 2.0000,
"Pr0": 32.0000,
"Prr": 32.0000,
"Pri": 10.6000,
"Mny": 64.0000,
"Cs": 1,
"Mrn": 1,
"Dt": "2024-03-30T08:02:46.363",
"Pn": 3599501,
"Op": "战**",
"Totalmny": 468.6000,
"Payer": "石**",
"Typ": "中成药",
"Typid": 2,
"Adept": 0,
"Auid": 4125885,
"AccTypeCode": 0,
"AccTypeName": "",
"AccTypeNote": "",
"Goback": 0,
"Snauid": 4971032,
"Micuscode": "",
"MedName": "药房",
"Accmode": "",
"Snpattype": 1,
"Qty": 2.0000,
"DictInfo": {
"Dicttype": 1,
"Aid": 370203015006,
"Mid": 21000254,
"Gn": "通***丸",
"Wn": "通***丸",
"Spr": "7g*9袋",
"Utr": "盒",
"Utfac": 9.0000,
"Prr": 0.0000,
"Made": "太******公司",
"Bus": "太******公司",
"Sty": "水蜜丸",
"Acode": 20
}
}
],
"MoneyClass": {
"Aid": 370203015006,
"Patid": 202401000848,
"Sn": 2024033008940002,
"Af": 0,
"Cash": 0.0000,
"Bc": 0.0000,
"Chk": 123.2600,
"Govex": 0.0000,
"Mic": 345.3400,
"Retir": 0.0000,
"Acc": 0.0000,
"Oth": 0.0000,
"App": 0.0000,
"Total": 0.0000,
"Cmny": 0.0000,
"Rop": "",
"Accdate": "1900-01-01T00:00:00",
"Prf": 0,
"NR_Acc_ID": "370200QD000090426510",
"Up": 0,
"Inhome": 0,
"Auid": 5038943,
"Store": 0.0000,
"Pay00": 0.0000,
"Pay01": 0.0000,
"Pay02": 0.0000,
"Pay03": 0.0000,
"Pay04": 0.0000,
"Pay05": 0.0000,
"Pay06": 0.0000,
"Pay07": 0.0000,
"Pay08": 0.0000,
"Pay09": 0.0000,
"Pay10": 0.0000,
"Note": ""
},
"MiBill": {
"Aid": 370203015006,
"Hispid": 202401000848,
"Hissn": 2024033008940002,
"Diagid": "370200QD000098814048",
"Pn": "37020090000000000002551364",
"Msgid": "H37020300143202403300802413417",
"Acctyp": 2,
"Accsn": "370200QD000090420000",
"Certtype": "01",
"Certtypename": "身份证",
"Certno": "370202196809280000",
"Medtype": "11",
"Medtypename": "普通门诊",
"Amt": 468.6000,
"Selfway": "01",
"Selfwayname": "按项目结算",
"Chargesn": "2024033008940002",
"Actuse": "0",
"Actusename": "不使用",
"Instyp": "310",
"Instypname": "职工基本医疗保险",
"Invoice": "",
"Ext": "",
"Pubhosp": "",
"Accdt": "2024-03-30T08:02:40",
"Ownpay": 0.0000,
"Overlmt": 0.0000,
"Preselfpay": 36.9200,
"Inamt": 431.6800,
"Start": 0.0000,
"Planpay": 345.3400,
"Planratio": 0.8000,
"Cvpay": 0.0000,
"Corpay": 0.0000,
"Rdtsepay": 0.0000,
"Jobpay": 0.0000,
"Mafpay": 0.0000,
"Othpay": 0.0000,
"Planamt": 345.3400,
"Selfamt": 123.2600,
"Accpay": 0.0000,
"Cashpay": 123.2600,
"Hosamt": 0.0000,
"Balance": 439.9500,
"Actmulpay": 0.0000,
"Clrcorp": "370203",
"Clrway": "1",
"Clrwayname": "按项目",
"Clrtyp": "11",
"Clrtypname": "门诊",
"St": 1,
"Dtback": "1900-01-01T00:00:00",
"BackOp": null,
"Inscode": "370212"
}
}""")
}
2.2 groovy组件配置出参
点击出参-逆向解析,将演示json数据复制粘贴解析生成出参
3.凭证模板组件配置
将财务总账分类下,凭证模板组件拖入流程。
3.1 凭证抬头字段及规则配置
3.1.1 填写凭证号、凭证字、凭证日期、制单人、来源单号等
3.2.2 规则配置
1.排序规则:
默认排序为不按照借贷方向另外排序,按照凭证分录默认顺序;可以根据业务需要,设置借方凭证分录在前或贷方凭证分录在前。
2.合并规则:
当凭证存在多条分录且多条分录需要合并的情况下,可以选择借方合并贷方合并。选择后,当分录的科目,自定义字段1,自定子字段2,辅助核算,辅助核算项1-5完全一样的情况下,一样的多条分录会合并为一条。
比如存在分录:
[{"loan":126.90,"subject":"6001.01","type":"贷方","costProject":"001","borrow2":0,"borrow3":0,"department":"4","loan3":0,"loan2":0,"abstract":"主营业务收入","borrow":0,"money3":126.90000000},
{"loan":97.70,"subject":"6001.01","type":"贷方","costProject":"001","borrow2":0,"borrow3":0,"department":"4","loan3":0,"loan2":0,"abstract":"主营业务收入","borrow":0,"money3":97.70000000},
{"loan":49.00,"subject":"6001.01","type":"贷方","costProject":"001","borrow2":0,"borrow3":0,"department":"4","loan3":0,"loan2":0,"abstract":"主营业务收入","borrow":0,"money3":49.00000000},
{"loan":78.60,"subject":"6001.01","type":"贷方","costProject":"001","borrow2":0,"borrow3":0,"department":"4","loan3":0,"loan2":0,"abstract":"主营业务收入","borrow":0,"money3":78.60000000},
{"loan":19.20,"subject":"6001.01","type":"贷方","costProject":"001","borrow2":0,"borrow3":0,"department":"4","loan3":0,"loan2":0,"abstract":"主营业务收入","borrow":0,"money3":19.20000000},
{"loan":33.20,"subject":"6001.01","type":"贷方","costProject":"003","borrow2":0,"borrow3":0,"department":"4","loan3":0,"loan2":0,"abstract":"主营业务收入","borrow":0,"money3":33.20000000},
{"loan":64.00,"subject":"6001.01","type":"贷方","costProject":"003","borrow2":0,"borrow3":0,"department":"4","loan3":0,"loan2":0,"abstract":"主营业务收入","borrow":0,"money3":64.00000000}]
以上七条贷方凭证分录,选择贷方合并后,科目(subject)+自定义字段(未设置)+辅助核算(费用costProject)(部门department)+辅助核算项1-5,都相同的分录会合并为一条,并将数量和金额累计。合并后的结果如下:
[{"loan":371.40,"subject":"6001.01","type":"贷方","costProject":"001","borrow2":0,"borrow3":0,"price":0.00,"department":"4","loan3":0,"loan2":0,"abstract":"主营业务收入","qty":0.00,"borrow":0,"money3":126.90000000},
{"loan":97.20,"subject":"6001.01","type":"贷方","costProject":"003","borrow2":0,"borrow3":0,"price":0.00,"department":"4","loan3":0,"loan2":0,"abstract":"主营业务收入","qty":0.00,"borrow":0,"money3":33.20000000}]
3.平衡规则
默认检查借贷平衡。可根据业务需要,选择是否检查借贷金额平衡。选择检查后,如果借方金额和贷方金额不相等,组件执行后会提醒借贷不平衡。
3.2.配置凭证分录
3.2.1 摘要:
摘要可以填写固定字段,也可以选择源单字段进行处理,例如文本拼接,由不同的源单数据动态生成摘要。
3.2.2 借/贷:
借贷方向配置方式有两种:1.固定选择借方、贷方;2.点击配置:当源数据字段值满足条件的情况下,对应借方/贷方。
点击符号选择字段
以图中为例,在Groovy.Aid取值等于0001时,该分录借贷方向为借方;Groovy.Aid取值等于0002时,该分录借贷方向为贷方。
3.2.3 科目
科目编码,配置方式有三种:
1.固定值科目编码如 1001 ;
2.直接取值源单固定字段或源单字段进行文本拼接;
3.点击配置,选择所取数据的对应字段后,在下方填写输入字段对应的值、科目编码,如果这条凭证分录存在辅助核算,需要在辅助核算取值列选择对应的辅助核算项;
当所取字段如Groovy.Sn值等于2024033008940002的情况下,该分录科目编码为1002,辅助核算项为费用项目;当所取字段如Groovy.Sn值等于2024033008940003的情况下,该分录科目编码为1003;
4.主数据映射。
当源数据或源单系统与生产凭证的系统,科目相同但两个系统间编码不一致时,可以通过添加数据映射,使用源系统字段编码映射目标系统如凭证系统科目编码。
例如 源系统HIS ,源字段 pattype 人员类型,映射目标系统金蝶系统的凭证科目,具体操作如下:
1)新建两个应用系统:HIS和金蝶
2)新建数据对象如凭证科目
3)新建数据映射
建立好数据映射后,就可以在科目配置中选择使用函数-主数据-主数据映射,来配置凭证科目了。
3.2.4 辅助核算配置
点击配置,在对应辅助核算项选择数据
以费用核算项为例
(其他字段如金额、汇率、币种等也可在此页面配置)
3.2.5 金额
设置金额取值字段
1.直接选择对应金额字段如现金
2.使用函数计算 数量乘以单价