解决合并冲突

This commit is contained in:
2025-12-10 14:20:24 +08:00
parent e1385cb3e6
commit 18f6a845e6
804 changed files with 61881 additions and 13577 deletions

View File

@@ -0,0 +1,58 @@
package com.openhis.nenu.domain;
import java.math.BigDecimal;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.core.common.core.domain.HisBaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* 公费医疗自付比例管理表Entity实体
*
* @author system
* @date 2025-02-20
*/
@Data
@TableName("nenu_gf_ratio")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class GfRatio extends HisBaseEntity {
/** ID */
@TableId(type = IdType.ASSIGN_ID)
private Long id;
/** 比例类型1大项比例2单项比例 */
private Integer ratioType;
/** 公费项目分类1药品2诊疗 */
private Integer itemType;
/** 医保分项 */
private String ybClass;
/** 医保等级 */
private String ybLv;
/** 自付比例 */
private BigDecimal selfRatio;
/** 二次报销的自付比例 */
private BigDecimal twiceRatio;
/** 开始时间 */
private Date startDate;
/** 结束时间 */
private Date endDate;
/** 表id */
private Long definitionId;
}

View File

@@ -0,0 +1,106 @@
package com.openhis.nenu.domain;
import java.math.BigDecimal;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.core.common.core.domain.HisBaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* 公费医疗自付比例调整申请表Entity实体
*
* @author system
* @date 2025-02-20
*/
@Data
@TableName("nenu_gf_ratio_application")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class GfRatioApplication extends HisBaseEntity {
/** ID */
@TableId(type = IdType.ASSIGN_ID)
private Long id;
/** 申请编号 */
private String busNo;
/** 公费项目分类1药品2诊疗 */
private Integer itemType;
/** 医保分项 */
private String ybClass;
/** 医保等级 */
private String ybLv;
/** 申请比例 */
private BigDecimal applicationRatio;
/** 二次报销的自付比例 */
private BigDecimal twiceRatio;
/** 开始时间 */
private Date startDate;
/** 结束时间 */
private Date endDate;
/** 申请状态0处理中1通过2驳回3取消 */
private Integer applicationStatus;
/** 申请人 */
private String applicant;
/** 申请时间 */
private Date applicationTime;
/** 申请原因 */
private String applicationReason;
/** 测算盈亏负责人 */
private String initialApprover;
/** 测算通过or驳回0处理中1通过2驳回 */
private Integer initialApprovalResult;
/** 测算时间 */
private Date initialApprovalTime;
/** 测算意见 */
private String initialApprovalOpinion;
/** 财务科负责人 */
private String financeApprover;
/** 财务科通过or驳回0处理中1通过2驳回 */
private Integer financeApprovalResult;
/** 报批时间 */
private Date financeApprovalTime;
/** 报批意见 */
private String financeApprovalOpinion;
/** 会议结果录入人 */
private String finalRecorder;
/** 会议通过or驳回0处理中1通过2驳回 */
private Integer finalApprovalResult;
/** 录入时间 */
private Date finalRecordTime;
/** 录入意见 */
private String finalApprovalOpinion;
/** 表id */
private Long definitionId;
}

View File

@@ -0,0 +1,189 @@
/*
* Copyright ©2023 CJB-CNIT Team. All rights reserved
*/
package com.openhis.nenu.domain;
import java.math.BigDecimal;
import org.hibernate.validator.constraints.Length;
import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.core.common.core.domain.HisBaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* BPC返回对象
*
* @author SunJQ
* @date 2025-08-15
*/
@Data
@TableName("nenu_transaction_response")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class TransactionResponse extends HisBaseEntity {
@TableId(type = IdType.ASSIGN_ID)
private BigDecimal id;
/**
* 响应码枚举RespCode00 表示成功,其它表示失败
*/
@Length(max = 2)
@JSONField(name = "respCode")
private String respCode;
/**
* 响应码解释信息需要Base64解密
*/
@Length(max = 64)
@JSONField(name = "respMsg")
private String respMsg;
/**
* 交易类型枚举TranType
*/
@Length(max = 1)
@JSONField(name = "tranType")
private String tranType;
/**
* 交易金额:以分为单位的交易金额(订单总金额,同请求金额一致)
*/
@Length(max = 12)
@JSONField(name = "txnAmt")
private String txnAmt;
/**
* 支付方式枚举PayType
*/
@Length(max = 4)
@JSONField(name = "payType")
private String payType;
/**
* 终端流水号终端号系统跟踪号同请求报文原值返回客户端收到应答报文需要验证traceNo字段值需与请求报文值一致如果不一致则丢包交易失败
*/
@Length(max = 6)
@JSONField(name = "traceNo")
private String traceNo;
/**
* 交易时间yyyyMMddHHmmss
*/
@Length(max = 14)
@JSONField(name = "txnTime")
private String txnTime;
/**
* 支付订单号:银行返回系统订单号,需要保存该支付交易订单号
*/
@Length(max = 64)
@JSONField(name = "tradeNo")
private String tradeNo;
/**
* 第三方支付订单号
*/
@Length(max = 64)
@JSONField(name = "transNo")
private String transNo;
/**
* 商户号
*/
@Length(max = 15)
@JSONField(name = "mid")
private String mid;
/**
* 商户名称
*/
@Length(max = 64)
@JSONField(name = "merName")
private String merName;
/**
* 终端号
*/
@Length(max = 8)
@JSONField(name = "tid")
private String tid;
/**
* 商户系统订单号:同请求一致
*/
@Length(max = 64)
@JSONField(name = "merTradeNo")
private String merTradeNo;
/**
* 商户系统退款授权单号:同请求一致
*/
@Length(max = 64)
@JSONField(name = "vfTradeNo")
private String vfTradeNo;
/**
* 优惠金额
*/
@Length(max = 12)
@JSONField(name = "discountAmt")
private String discountAmt;
/**
* 有效时间:二维码本身的有效时间,是相对时间,单位为秒,以接收方收到报文时间为起始点计时。不同类型的订单以及不同的订单状况会对应不同的默认有效时间和最大有效时间(可以为空)
*/
@Length(max = 8)
@JSONField(name = "qrValidTime")
private String qrValidTime;
/**
* 二维码信息主扫支付二维码以二维码形式显示手机APP扫二维码码消费
*/
@Length(max = 128)
@JSONField(name = "scanCode")
private String scanCode;
/**
* 原交易类型1、订单查询类交易填写原交易类型被扫交易必填2、非订单查询填写交易类型与tranType一致可以为空
*/
@Length(max = 1)
@JSONField(name = "orgTranType")
private String orgTranType;
/**
* 原交易名称:订单查询类交易填写原交易名称,非订单查询填写交易名称(被扫交易必填)
*/
@Length(max = 30)
@JSONField(name = "orgTxnName")
private String orgTxnName;
/**
* 订单数据当tranType为F时payType 值为ZFBA或WEIX时支付宝返回的tradeNo 或者微信返回的prepayId
*/
@Length(max = 64)
@JSONField(name = "payData")
private String payData;
/**
* 付款主键ID
*/
private Long paymentId;
/**
* 前台UI序号
*/
private Long index;
/**
* 时间戳(中银建议)
*/
private Long time;
}

View File

@@ -0,0 +1,34 @@
package com.openhis.nenu.dto;
import java.math.BigDecimal;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* 公费医疗-大项比例Dto
*
* @author Thanking
* @date 2025-10-24
*/
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class GfTypeRatioDto {
/** 医保分项 */
private String ybClass;
/** 医保分项名称 */
private String ybClassName;
/** 医保等级 */
private String ybLv;
/** 医保等级名称 */
private String ybLvName;
/** 自付比例 */
private BigDecimal selfRatio;
}

View File

@@ -0,0 +1,17 @@
package com.openhis.nenu.mapper;
import org.springframework.stereotype.Repository;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.openhis.nenu.domain.GfRatioApplication;
/**
* 公费医疗自付比例调整申请表Mapper接口
*
* @author system
* @date 2025-02-20
*/
@Repository
public interface GfRatioApplicationMapper extends BaseMapper<GfRatioApplication> {
}

View File

@@ -0,0 +1,17 @@
package com.openhis.nenu.mapper;
import org.springframework.stereotype.Repository;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.openhis.nenu.domain.GfRatio;
/**
* 公费医疗自付比例管理表Mapper接口
*
* @author system
* @date 2025-02-20
*/
@Repository
public interface GfRatioMapper extends BaseMapper<GfRatio> {
}

View File

@@ -0,0 +1,18 @@
/*
* Copyright ©2023 CJB-CNIT Team. All rights reserved
*/
package com.openhis.nenu.mapper;
import org.springframework.stereotype.Repository;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.openhis.nenu.domain.TransactionResponse;
/**
* 中银交易记录Mapper
*
* @author SunJQ
* @date 2025-10-28
*/
@Repository
public interface TransactionResponseMapper extends BaseMapper<TransactionResponse> {}

View File

@@ -0,0 +1,14 @@
package com.openhis.nenu.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.openhis.nenu.domain.GfRatioApplication;
/**
* 公费医疗自付比例调整申请表Service接口
*
* @author system
* @date 2025-02-20
*/
public interface IGfRatioApplicationService extends IService<GfRatioApplication> {
}

View File

@@ -0,0 +1,23 @@
package com.openhis.nenu.service;
import java.util.List;
import com.baomidou.mybatisplus.extension.service.IService;
import com.openhis.nenu.domain.GfRatio;
import com.openhis.nenu.dto.GfTypeRatioDto;
/**
* 公费医疗自付比例管理表Service接口
*
* @author system
* @date 2025-02-20
*/
public interface IGfRatioService extends IService<GfRatio> {
/**
* 查询大项比例列表
*
* @return 大项比例列表
*/
List<GfTypeRatioDto> getTypeRatioList();
}

View File

@@ -0,0 +1,16 @@
/*
* Copyright ©2023 CJB-CNIT Team. All rights reserved
*/
package com.openhis.nenu.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.openhis.nenu.domain.TransactionResponse;
/**
* 中银交易记录Service
*
* @author SunJQ
* @date 2025-10-28
*/
public interface ITransactionResponseService extends IService<TransactionResponse> {}

View File

@@ -0,0 +1,20 @@
package com.openhis.nenu.service.impl;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.openhis.nenu.domain.GfRatioApplication;
import com.openhis.nenu.mapper.GfRatioApplicationMapper;
import com.openhis.nenu.service.IGfRatioApplicationService;
/**
* 公费医疗自付比例调整申请表Service业务层处理
*
* @author system
* @date 2025-02-20
*/
@Service
public class GfRatioApplicationServiceImpl extends ServiceImpl<GfRatioApplicationMapper, GfRatioApplication>
implements IGfRatioApplicationService {
}

View File

@@ -0,0 +1,121 @@
package com.openhis.nenu.service.impl;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.core.common.enums.DeleteFlag;
import com.openhis.common.enums.DelFlag;
import com.openhis.common.enums.GfRatioType;
import com.openhis.common.enums.ItemType;
import com.openhis.common.enums.ybenums.YbChrgitmLv;
import com.openhis.common.enums.ybenums.YbMedChrgItmType;
import com.openhis.financial.model.PaymentedItemModel;
import com.openhis.financial.model.StudentPaymentItemModel;
import com.openhis.nenu.domain.GfRatio;
import com.openhis.nenu.dto.GfTypeRatioDto;
import com.openhis.nenu.mapper.GfRatioMapper;
import com.openhis.nenu.service.IGfRatioService;
/**
* 公费医疗自付比例管理表Service业务层处理
*
* @author system
* @date 2025-02-20
*/
@Service
public class GfRatioServiceImpl extends ServiceImpl<GfRatioMapper, GfRatio> implements IGfRatioService {
/**
* 查询自付比例(按照小项查询自付比例,如果没有的话,返回值不一定会有自付比例,还要查大项)
*
* @param itemType
* @param paymentItemList
* @return
*/
public List<StudentPaymentItemModel> getGfRatioList(ItemType itemType, List<PaymentedItemModel> paymentItemList) {
ArrayList<StudentPaymentItemModel> list = new ArrayList<>();
List<Long> serviceIdList =
paymentItemList.stream().map(PaymentedItemModel::getServiceId).collect(Collectors.toList());
Date date = new Date();
// 查询自付比例
List<GfRatio> gfRatios =
baseMapper.selectList(new LambdaQueryWrapper<GfRatio>().in(GfRatio::getDefinitionId, serviceIdList)
.eq(GfRatio::getDeleteFlag, DelFlag.NO.getCode()).eq(GfRatio::getItemType, itemType.getValue())
.ge(GfRatio::getStartDate, date).le(GfRatio::getEndDate, date));
Map<Long, List<GfRatio>> gfRatiosMap =
gfRatios.stream().collect(Collectors.groupingBy(GfRatio::getDefinitionId));
StudentPaymentItemModel studentPaymentItemModel;
for (PaymentedItemModel paymentedItemModel : paymentItemList) {
// copy字段
studentPaymentItemModel = new StudentPaymentItemModel();
BeanUtils.copyProperties(paymentedItemModel, studentPaymentItemModel);
List<GfRatio> gfRatiosList = gfRatiosMap.get(paymentedItemModel.getServiceId());
if (gfRatiosList != null && !gfRatiosList.isEmpty()) {
// 赋值
studentPaymentItemModel.setSelfRatio(gfRatiosList.get(0).getSelfRatio());
studentPaymentItemModel.setTwiceRatio(gfRatiosList.get(0).getTwiceRatio());
}
list.add(studentPaymentItemModel);
}
return list;
}
/**
* 查询大项比例列表
*
* @return 大项比例列表
*/
@Override
public List<GfTypeRatioDto> getTypeRatioList() {
// 查询DB中的所有大项比例
List<GfRatio> gfRatioList =
this.list(new LambdaQueryWrapper<GfRatio>().eq(GfRatio::getRatioType, GfRatioType.TYPE_RATIO.getValue())
.eq(GfRatio::getDeleteFlag, DeleteFlag.NOT_DELETED.getCode()));
// 做成医保分项+医保等级拼接的Map
Map<String, GfRatio> gfRatioMap =
gfRatioList.stream().collect(Collectors.toMap(e -> e.getYbClass() + e.getYbLv(), Function.identity()));
List<GfTypeRatioDto> gfTypeRatioDtoList = new ArrayList<>();
// 遍历所有医疗收费项目类别
for (YbMedChrgItmType ybMedChrgItmType : YbMedChrgItmType.values()) {
// 甲类
GfTypeRatioDto gfTypeRatioDtoA =
new GfTypeRatioDto().setYbClass(ybMedChrgItmType.getValue()).setYbClassName(ybMedChrgItmType.getInfo())
.setYbLv(YbChrgitmLv.CATEGORY_A.getCode()).setYbLvName(YbChrgitmLv.CATEGORY_A.getInfo());
GfRatio gfRatioA = gfRatioMap.get(ybMedChrgItmType.getValue() + YbChrgitmLv.CATEGORY_A.getCode());
if (gfRatioA != null) {
// DB存在则取DB的值
gfTypeRatioDtoA.setSelfRatio(gfRatioA.getSelfRatio());
}
gfTypeRatioDtoList.add(gfTypeRatioDtoA);
// 乙类
GfTypeRatioDto gfTypeRatioDtoB =
new GfTypeRatioDto().setYbClass(ybMedChrgItmType.getValue()).setYbClassName(ybMedChrgItmType.getInfo())
.setYbLv(YbChrgitmLv.CATEGORY_B.getCode()).setYbLvName(YbChrgitmLv.CATEGORY_B.getInfo());
GfRatio gfRatioB = gfRatioMap.get(ybMedChrgItmType.getValue() + YbChrgitmLv.CATEGORY_B.getCode());
if (gfRatioB != null) {
// DB存在则取DB的值
gfTypeRatioDtoB.setSelfRatio(gfRatioB.getSelfRatio());
}
gfTypeRatioDtoList.add(gfTypeRatioDtoB);
}
// 返回列表
return gfTypeRatioDtoList;
}
}

View File

@@ -0,0 +1,21 @@
/*
* Copyright ©2023 CJB-CNIT Team. All rights reserved
*/
package com.openhis.nenu.service.impl;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.openhis.nenu.domain.TransactionResponse;
import com.openhis.nenu.mapper.TransactionResponseMapper;
import com.openhis.nenu.service.ITransactionResponseService;
/**
* 中银交易记录Service
*
* @author SunJQ
* @date 2025-10-28
*/
@Service
public class TransactionResponseServiceImpl extends ServiceImpl<TransactionResponseMapper, TransactionResponse>
implements ITransactionResponseService {}