update:对账消息推送,军保账单统计,退款数据统计
This commit is contained in:
@@ -75,6 +75,8 @@ public class HISGetDataMethodByJH {
|
||||
operatorsCodeStr=operatorsCodeStr.substring(0,operatorsCodeStr.length()-1);
|
||||
}
|
||||
|
||||
log.info("HIS获取数据定时任务【"+name+"】开始执行,操作员号:【"+operatorsCodeStr+"】,获取日期:【"+trade_date+"】");
|
||||
|
||||
//全部支付方式
|
||||
List<Dicinfo> pay_type = dicinfoService.findDicinfoTreeNodeList("PAY_TYPE");
|
||||
HashMap<String, String> payTypeMap = new HashMap<>();
|
||||
@@ -145,11 +147,29 @@ public class HISGetDataMethodByJH {
|
||||
for (int i = 0; i < hisBillList.size(); i++) {
|
||||
HashMap<Object, Object> hisBillHashMap = hisBillList.get(i);
|
||||
|
||||
//先判断关键id是否为空 ,为空的这条记录就作废了,可能之后会有现金记录进入,此id仍为空,到时需要另加判断
|
||||
//获取PowerTranID和ReceiptNO作为唯一标识
|
||||
String powerTranID = StringDUtil.changeNullToEmpty(hisBillHashMap.get("powerTranID"));
|
||||
if ("".equals(powerTranID)){
|
||||
String receiptNO = StringDUtil.changeNullToEmpty(hisBillHashMap.get("receiptNO"));
|
||||
String hisTransId = StringDUtil.changeNullToEmpty(hisBillHashMap.get("hisTransId"));
|
||||
|
||||
// 修改跳过逻辑:只有当关键业务信息都缺失时才跳过
|
||||
// 检查是否有足够的业务信息来处理这条记录
|
||||
String patientId = StringDUtil.changeNullToEmpty(hisBillHashMap.get("patientID"));
|
||||
String amount = StringDUtil.changeNullToEmpty(hisBillHashMap.get("amount"));
|
||||
String tradeTime = StringDUtil.changeNullToEmpty(hisBillHashMap.get("tradeTime"));
|
||||
|
||||
// 只有当缺少关键业务信息时才跳过(患者ID、金额、交易时间都为空)
|
||||
if ("".equals(patientId) && "".equals(amount) && "".equals(tradeTime)){
|
||||
log.warn("跳过缺少关键业务信息的记录: powerTranID={}, receiptNO={}, hisTransId={}",
|
||||
powerTranID, receiptNO, hisTransId);
|
||||
continue;
|
||||
}
|
||||
|
||||
// 对于没有唯一标识的记录,记录警告但继续处理
|
||||
if ("".equals(powerTranID) && "".equals(receiptNO) && "".equals(hisTransId)){
|
||||
log.warn("处理无唯一标识的记录: patientID={}, amount={}, tradeTime={}",
|
||||
patientId, amount, tradeTime);
|
||||
}
|
||||
|
||||
//数据类型 1-门诊 2-住院 无需修改
|
||||
String payMethod = StringDUtil.changeNullToEmpty(hisBillHashMap.get("visitzOrg"));
|
||||
@@ -168,23 +188,17 @@ public class HISGetDataMethodByJH {
|
||||
String originalPayType = StringDUtil.changeNullToEmpty(hisBillHashMap.get("payType"));
|
||||
String payType = convertPayTypeByDictionary(originalPayType, payTypeMap);
|
||||
|
||||
//交易时间
|
||||
String tradeTime = StringDUtil.changeNullToEmpty(hisBillHashMap.get("tradeTime"));
|
||||
|
||||
//操作员
|
||||
String hisOperCode = StringDUtil.changeNullToEmpty(hisBillHashMap.get("hisOperCode"));
|
||||
|
||||
//交易金额
|
||||
String amount = StringDUtil.changeNullToEmpty(hisBillHashMap.get("amount"));
|
||||
|
||||
//说明
|
||||
String remarks = "";
|
||||
|
||||
//银商订单号
|
||||
String platformTransId = StringDUtil.changeNullToEmpty(hisBillHashMap.get("powerTranID"));
|
||||
|
||||
//患者 ID
|
||||
String patientId = StringDUtil.changeNullToEmpty(hisBillHashMap.get("patientID"));
|
||||
//银商订单号:优先使用PowerTranID,如果为空则使用ReceiptNO或HisTransId
|
||||
String platformTransId = powerTranID;
|
||||
if ("".equals(platformTransId)) {
|
||||
platformTransId = "".equals(receiptNO) ? hisTransId : receiptNO;
|
||||
}
|
||||
|
||||
//患者姓名
|
||||
String patientName = StringDUtil.changeNullToEmpty(hisBillHashMap.get("patientName"));
|
||||
|
||||
Reference in New Issue
Block a user