| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160 |
- /// 事前事中分析违规日志服务类
- /// 提供宽表 BS_PreInProcess_ViolationLog 的插入/更新方法
- /// 对应 C# 端 serviceCode: 09010100(插入) / 09010101(更新)
- Class User.BSPreInProcessViolLogService Extends %RegisteredObject
- {
- /// Creator: CodeBuddy
- /// CreatDate: 2026-04-26
- /// Description: 新增/修改违规记录(09010100)
- /// 通过 JrID 判断:不存在则插入,存在则更新
- /// Input: param.LogData=宽表字段对象, param.InterfaceDr=接口Dr, param.UpdateUserID=操作员ID
- /// Output: {errorCode, errorMessage}
- ClassMethod InsertLog(param) As %Library.DynamicAbstractObject
- {
- new (param)
- set resultObj = {}
- set resultObj.errorCode = 0
- set resultObj.errorMessage = ""
- set PreMsg = ""
-
- try {
- set logData = param.LogData
- set updateUserID = param.UpdateUserID
- set HospitalDr = param.HospitalDr
- set InterfaceDr = param.InterfaceDr
-
- ; 必填校验
- if (logData.JrID = "")
- {
- set resultObj.errorCode = "-1"
- set resultObj.errorMessage = "JrID不能为空"
- quit resultObj
- }
-
- ; 合并 InterfaceDr(C#端单独传入,需合并到数据对象)
- if (logData.InterfaceDr = "")
- {
- set logData.InterfaceDr = InterfaceDr
- }
-
- set PreMsg = "违规标识("_logData.JrID_")的记录提示:"
-
- ; 根据 JrID 判断是否存在
- set count = 0
- set rowID = ""
- &sql(select count(*),ID into :count,:rowID from BS_PreInProcess_ViolationLog where JrID = :logData.JrID and Deleted = 0)
- set logData.ID = rowID
-
- ; 构建操作对象
- set insObj = {}
- set data = []
- set insObj.className = "User.BSPreInProcessViolLog"
- set insObj.updateUserID = updateUserID
- do data.%Push(logData)
- set insObj.data = data
-
- if (count = 1)
- {
- ; 已存在则更新
- set rtn = ##class(src.util.operatetable).Update(.insObj)
- set errorCode = rtn.errorCode
- set errorMessage = PreMsg_"更新结果为"_rtn.errorMessage_";"
-
- if (errorCode '= 0)
- {
- set resultObj.errorCode = errorCode
- set resultObj.errorMessage = errorMessage
- }
- }
- elseif (count = 0)
- {
- ; 不存在则插入
- set rtn = ##class(src.util.operatetable).Insert(.insObj)
- set errorCode = rtn.errorCode
- set errorMessage = PreMsg_"插入结果为"_rtn.errorMessage_";"
-
- if (errorCode '= 0)
- {
- set resultObj.errorCode = errorCode
- set resultObj.errorMessage = errorMessage
- }
- }
- else
- {
- ; 同一 JrID 存在多条记录,数据异常
- set resultObj.errorCode = "-100"
- set resultObj.errorMessage = PreMsg_"数据存在"_count_"条记录,请检查!"
- }
- }
- catch(e)
- {
- set status = e.AsStatus()
- set resultObj.errorCode = $piece(##class(%SYSTEM.Status).GetErrorCodes(status),",")
- set resultObj.errorMessage = ##class(%SYSTEM.Status).GetErrorText(status,"cn")
- }
-
- quit resultObj
- }
- /// Creator: CodeBuddy
- /// CreatDate: 2026-04-26
- /// Description: 更新反馈记录(09010101)
- /// Input: param.FeedbackLog=反馈字段对象(WarnRsltID/DspoWay/DspoWayRea等), param.UpdateUserID=操作员ID
- /// Output: {errorCode, errorMessage}
- /// Note: WarnRsltID 与宽表 JrID 为同一值
- ClassMethod UpdateFeedback(param) As %Library.DynamicAbstractObject
- {
- new (param)
- set resultObj = {}
- set resultObj.errorCode = 0
- set resultObj.errorMessage = ""
-
- try {
- set feedbackLog = param.FeedbackLog
- set updateUserID = param.UpdateUserID
-
- set warnRsltID = feedbackLog.WarnRsltID
- if (warnRsltID = "")
- {
- set resultObj.errorCode = "-1"
- set resultObj.errorMessage = "WarnRsltID不能为空"
- quit resultObj
- }
-
- ; 根据 WarnRsltID(JrID) 定位记录
- set rowID = ""
- &sql(select ID into :rowID from BS_PreInProcess_ViolationLog where JrID = :warnRsltID and Deleted = 0)
-
- if (rowID = "")
- {
- set resultObj.errorCode = "-1"
- set resultObj.errorMessage = "未找到对应违规记录,JrID="_warnRsltID
- quit resultObj
- }
-
- ; 构建更新对象
- set insObj = {}
- set data = []
- set insObj.className = "User.BSPreInProcessViolLog"
- set insObj.updateUserID = updateUserID
-
- set feedbackLog.ID = rowID
- do data.%Push(feedbackLog)
- set insObj.data = data
-
- set rtn = ##class(src.util.operatetable).Update(.insObj)
- set resultObj.errorCode = rtn.errorCode
- set resultObj.errorMessage = rtn.errorMessage
- }
- catch(e)
- {
- set status = e.AsStatus()
- set resultObj.errorCode = $piece(##class(%SYSTEM.Status).GetErrorCodes(status),",")
- set resultObj.errorMessage = ##class(%SYSTEM.Status).GetErrorText(status,"cn")
- }
-
- quit resultObj
- }
- }
|