This commit is contained in:
LiJianZhao 2025-05-22 12:44:02 +08:00
parent 38711ec497
commit 6b024183a4
6 changed files with 104 additions and 49 deletions

View File

@ -49,9 +49,10 @@ public class RegistrationController extends BaseController {
public Result<Page<PatientRegistration>> list() {
int page = parmsUtil.getInteger("page", "页码不能为空");
int size = parmsUtil.getInteger("size", "页容量不能为空");
Integer dockerId = parmsUtil.getInteger("dockerId");
String startDate = parmsUtil.getString("startDate");
String endDate = parmsUtil.getString("endDate");
Page<PatientRegistration> pageResult = patientRegistrationService.listPage(page, size, startDate,endDate);
Page<PatientRegistration> pageResult = patientRegistrationService.listPage(page, size, startDate,endDate,dockerId);
return success(pageResult);
}
/**

View File

@ -5,22 +5,21 @@ import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import lombok.experimental.Accessors;
/**
* <p>
* 收费商品详情
* </p>
*
* @author NiuZiYuan
* @since 2025-05-12
* @since 2025-05-22
*/
@Getter
@Setter
@ -80,4 +79,7 @@ public class ChargeGoodsList implements Serializable {
@ApiModelProperty("日期")
private LocalDate createDate;
@ApiModelProperty("医保码")
private String socialCode;
}

View File

@ -19,7 +19,7 @@ import lombok.experimental.Accessors;
* </p>
*
* @author NiuZiYuan
* @since 2025-05-21
* @since 2025-05-22
*/
@Getter
@Setter
@ -39,7 +39,7 @@ public class ChargeItemList implements Serializable {
private String chargeOrderCode;
@ApiModelProperty("服务ID ")
private Integer serviceId;
private Integer itemId;
@ApiModelProperty("原始单价")
private BigDecimal preUnitPrice;
@ -73,4 +73,7 @@ public class ChargeItemList implements Serializable {
@ApiModelProperty("是否为组套 0为false 1为true")
private Boolean isGroup;
@ApiModelProperty("医保码")
private String socialCode;
}

View File

@ -5,22 +5,21 @@ import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import lombok.experimental.Accessors;
/**
* <p>
* 收费主表
* </p>
*
* @author NiuZiYuan
* @since 2025-04-29
* @since 2025-05-22
*/
@Getter
@Setter
@ -77,4 +76,22 @@ public class ChargeOrder implements Serializable {
@ApiModelProperty("销售人id")
private Integer salePersonId;
@ApiModelProperty("就诊id")
private String mdtrtId;
@ApiModelProperty("人员编号")
private String psnNo;
@ApiModelProperty("科室编码")
private String sectionCode;
@ApiModelProperty("科室名称")
private String sectionName;
@ApiModelProperty("医生编码")
private String dockerCode;
@ApiModelProperty("医生名称")
private String dockerName;
}

View File

@ -136,6 +136,10 @@ public class ChargeService extends BaseService {
if (diagnosis == null) {
throw new RuntimeException("该诊断不存在");
}
PatientRegistration registration = patientRegistrationMapper.selectById(dto.getRegistrationId());
if (registration == null) {
throw new RuntimeException("挂号单不存在");
}
QueryWrapper<ChargeOrder> orderWrapper = new QueryWrapper<>();
orderWrapper.eq("diagnosis_code", diagnosis.getCode());
orderWrapper.last("limit 1");
@ -210,6 +214,7 @@ public class ChargeService extends BaseService {
LocalDateTime nowLocalDateTime = LocalDateTime.now();
BigDecimal preTotalPrice = BigDecimal.ZERO;
BigDecimal totalPrice = BigDecimal.ZERO;
BigDecimal totalCost = BigDecimal.ZERO;
List<ChargeItemList> chargeServiceLists = new ArrayList<>();
for (
ChargeItemListVo service : dto.getItemDetail()) {
@ -227,11 +232,12 @@ public class ChargeService extends BaseService {
String fsn = StringUtil.getCode("FSN");
ChargeItemList itemList = new ChargeItemList();
itemList.setChargeOrderCode(code);
itemList.setServiceId(itemGroup.getId());
itemList.setItemId(itemGroup.getId());
itemList.setPreUnitPrice(itemGroup.getUnitPrice());
itemList.setUnitPrice(itemGroup.getUnitPrice());
itemList.setNumber(itemGroup.getNumber());
itemList.setSocialCode(itemGroup.getSocialCode());
itemList.setUnit(itemGroup.getUnit());
itemList.setName(itemGroup.getName());
@ -239,12 +245,14 @@ public class ChargeService extends BaseService {
itemList.setCreateDate(nowLocalDate);
itemList.setCreateTime(nowLocalDateTime);
itemList.setIsGroup(true);
BigDecimal subCost = itemGroup.getPurchaseUnitPrice().multiply(BigDecimal.valueOf(itemGroup.getNumber()));
itemList.setCost(subCost);
BigDecimal subPrice = itemList.getUnitPrice().multiply(BigDecimal.valueOf(itemGroup.getNumber()));
itemList.setSubTotalPrice(subPrice);
chargeServiceLists.add(itemList);
preTotalPrice = preTotalPrice.add(subPrice);
totalPrice = totalPrice.add(subPrice);
totalCost = totalCost.add(subCost);
}
@ -254,7 +262,7 @@ public class ChargeService extends BaseService {
String fsn = StringUtil.getCode("FSN");
itemList.setChargeOrderCode(code);
itemList.setServiceId(service.getId());
itemList.setItemId(service.getId());
itemList.setPreUnitPrice(service.getUnitPrice());
itemList.setUnitPrice(service.getSelectedPrice());
@ -262,14 +270,18 @@ public class ChargeService extends BaseService {
itemList.setSubTotalPrice(service.getUnitPrice());
itemList.setUnit(service.getSelectedUnit());
itemList.setName(service.getItemName());
itemList.setSocialCode(service.getItemSocialCode());
itemList.setFeedetlSn(fsn);
itemList.setCreateDate(nowLocalDate);
itemList.setCreateTime(nowLocalDateTime);
itemList.setIsGroup(false);
BigDecimal subCost = service.getPurchaseUnitPrice().multiply(BigDecimal.valueOf(service.getSelectedNum()));
itemList.setCost(subCost);
chargeServiceLists.add(itemList);
BigDecimal subPrice = service.getSelectedPrice().multiply(BigDecimal.valueOf(service.getSelectedNum()));
preTotalPrice = preTotalPrice.add(subPrice);
totalPrice = totalPrice.add(subPrice);
totalCost = totalCost.add(subCost);
}
}
chargeItemListMapper.insert(chargeServiceLists);
@ -296,6 +308,7 @@ public class ChargeService extends BaseService {
itemList.setUnit(goods.getSelectedUnit());
itemList.setName(dbGoods.getName());
itemList.setFeedetlSn(fsn);
itemList.setSocialCode(dbGoods.getHilistCode());
itemList.setCreateDate(nowLocalDate);
itemList.setCreateTime(nowLocalDateTime);
itemList.setType(dbGoods.getType());
@ -305,10 +318,12 @@ public class ChargeService extends BaseService {
traceabilityCode = String.join(",", goods.getTraceAbilityCodeList());
}
itemList.setTraceabilityCode(traceabilityCode);
BigDecimal subCost = goods.getPurchaseUnitPrice().multiply(BigDecimal.valueOf(goods.getSelectedNum()));
itemList.setCost(subCost);
chargeGoodsLists.add(itemList);
preTotalPrice = preTotalPrice.add(subTotalPrice);
totalPrice = totalPrice.add(subTotalPrice);
totalCost = totalCost.add(subCost);
}
chargeGoodsListMapper.insert(chargeGoodsLists);
ChargeOrder chargeOrder = new ChargeOrder();
@ -321,7 +336,23 @@ public class ChargeService extends BaseService {
chargeOrder.setStatus(RetailOrderStatusEnum.UNFINISHED.getCode());
chargeOrder.setPatientId(dto.getPatientInfo().getId());
chargeOrder.setDiagnosisCode(dto.getDiagnosisMedicalRecord().getDiagnosisCode());
chargeOrder.setSalePersonId(dto.getPatientRegistration().getOrganizationDoctorId());
chargeOrder.setSalePersonId(registration.getOrganizationDoctorId());
chargeOrder.setMdtrtId(registration.getMdtrtId());
chargeOrder.setPsnNo(registration.getPsnNo());
chargeOrder.setTotalCost(totalCost);
OrganizationSection section = organizationSectionMapper.selectById(registration.getOrganizationSectionId());
if (section == null){
throw new MessageException("科室不存在");
}
OrganizationMember member = organizationMemberMapper.selectById(registration.getOrganizationDoctorId());
if (member == null){
throw new MessageException("医生不存在");
}
chargeOrder.setSectionCode(section.getCode());
chargeOrder.setSectionName(section.getName());
chargeOrder.setDockerCode(member.getSocialMemberCode());
chargeOrder.setDockerName(member.getName());
chargeOrderMapper.insert(chargeOrder);
return chargeOrder;
@ -462,22 +493,16 @@ public class ChargeService extends BaseService {
public void uploadCostDetails(String changeOrderCode) {
ChargeOrder order = chargeOrderMapper.selectByCode(changeOrderCode);
Diagnosis diagnosis = diagnosisMapper.selectByCode(order.getDiagnosisCode());
PatientRegistration registration = patientRegistrationMapper.selectById(diagnosis.getRegistrationId());
OrganizationMember docker = organizationMemberMapper.selectById(registration.getOrganizationDoctorId());
OrganizationSection section = organizationSectionMapper.selectById(registration.getOrganizationSectionId());
List<ChargeGoodsList> goodsLists = chargeGoodsListMapper.selectByCode(changeOrderCode);
List<ChargeItemList> itemLists = chargeItemListMapper.selectByCode(changeOrderCode);
//撤销之前上传的费用明细信息
try {
IM2205 im2205 = new IM2205();
im2205.setMdtrtId(registration.getMdtrtId());
im2205.setMdtrtId(order.getMdtrtId());
im2205.setChrgBchno(order.getCode());
im2205.setPsnNo(registration.getPsnNo());
im2205.setPsnNo(order.getPsnNo());
im2205.setExpContent("");
socialRequest.call2205(im2205);
} catch (Exception e) {
@ -490,46 +515,50 @@ public class ChargeService extends BaseService {
for (ChargeGoodsList goodsList : goodsLists) {
IM2204.Feedetail feedetail = new IM2204.Feedetail();
feedetail.setFeedetl_sn(goodsList.getFeedetlSn());
feedetail.setMdtrt_id(registration.getMdtrtId());
feedetail.setPsn_no(registration.getPsnNo());
feedetail.setMdtrt_id(order.getMdtrtId());
feedetail.setPsn_no(order.getPsnNo());
feedetail.setChrg_bchno(order.getCode());
feedetail.setRx_circ_flag("0");
feedetail.setFee_ocur_time(LocalDateTime.now());
Goods goods = goodsMapper.selectById(goodsList.getGoodsId());
SocialDirectory sdGoods = socialDirectoryMapper.getByCode(goods.getHilistCode());
feedetail.setMed_list_codg(sdGoods.getCode());
feedetail.setMedins_list_codg(sdGoods.getId());
SocialDirectory sdGoods = socialDirectoryMapper.getByCode(goodsList.getSocialCode());
if (sdGoods == null){
throw new MessageException("本地医保目录中未查询到医保码为"+goodsList.getSocialCode()+"的商品信息");
}
feedetail.setMed_list_codg(goodsList.getSocialCode());
feedetail.setMedins_list_codg(String.valueOf(sdGoods.getId()));
BigDecimal totalPrice = goodsList.getUnitPrice().multiply(new BigDecimal(goodsList.getNumber()));
feedetail.setDet_item_fee_sumamt(totalPrice);
feedetail.setCnt(new BigDecimal(goodsList.getNumber()));
feedetail.setPric(goodsList.getUnitPrice());
feedetail.setBilg_dept_codg(section.getCode());
feedetail.setBilg_dept_name(section.getName());
feedetail.setBilg_dr_codg(docker.getSocialMemberCode());
feedetail.setBilg_dr_name(docker.getName());
feedetail.setBilg_dept_codg(order.getSectionCode());
feedetail.setBilg_dept_name(order.getSectionName());
feedetail.setBilg_dr_codg(order.getDockerCode());
feedetail.setBilg_dr_name(order.getDockerName());
feedetail.setHosp_appr_flag("1");
feedetails.add(feedetail);
}
for (ChargeItemList itemList : itemLists) {
IM2204.Feedetail feedetail = new IM2204.Feedetail();
feedetail.setFeedetl_sn(itemList.getFeedetlSn());
feedetail.setMdtrt_id(registration.getMdtrtId());
feedetail.setPsn_no(registration.getPsnNo());
feedetail.setMdtrt_id(order.getMdtrtId());
feedetail.setPsn_no(order.getPsnNo());
feedetail.setChrg_bchno(order.getCode());
feedetail.setRx_circ_flag("0");
feedetail.setFee_ocur_time(LocalDateTime.now());
Item item = itemMapper.selectById(itemList.getServiceId());
SocialItem sdGoods = socialItemMapper.getByCode(item.getItemSocialCode());
feedetail.setMed_list_codg(sdGoods.getCode());
feedetail.setMedins_list_codg(String.valueOf(sdGoods.getId()));
SocialItem sdItem = socialItemMapper.getByCode(itemList.getSocialCode());
if (sdItem == null){
throw new MessageException("本地医保目录中未查询到医保码为"+itemList.getSocialCode()+"的医保服务项目");
}
feedetail.setMed_list_codg(itemList.getSocialCode());
feedetail.setMedins_list_codg(String.valueOf(sdItem.getId()));
BigDecimal totalPrice = itemList.getUnitPrice().multiply(new BigDecimal(itemList.getNumber()));
feedetail.setDet_item_fee_sumamt(totalPrice);
feedetail.setCnt(new BigDecimal(itemList.getNumber()));
feedetail.setPric(itemList.getUnitPrice());
feedetail.setBilg_dept_codg(section.getCode());
feedetail.setBilg_dept_name(section.getName());
feedetail.setBilg_dr_codg(docker.getSocialMemberCode());
feedetail.setBilg_dr_name(docker.getName());
feedetail.setBilg_dept_codg(order.getSectionCode());
feedetail.setBilg_dept_name(order.getSectionName());
feedetail.setBilg_dr_codg(order.getDockerCode());
feedetail.setBilg_dr_name(order.getDockerName());
feedetail.setHosp_appr_flag("1");
feedetails.add(feedetail);
}

View File

@ -260,12 +260,15 @@ public class PatientRegistrationService extends BaseService {
* @return
*/
public Page<PatientRegistration> listPage(int page, int size, String startDate, String endDate) {
public Page<PatientRegistration> listPage(int page, int size, String startDate, String endDate,Integer docker) {
QueryWrapper<PatientRegistration> queryWrapper = new QueryWrapper<>();
//查询条件
queryWrapper.between("create_datetime", DateUtil.getDateTime(startDate), DateUtil.getDateTime(endDate));
queryWrapper.eq("del_flag", 0);
if (docker != null){
queryWrapper.eq("organization_doctor_id", docker);
}
return pageHelper(page, size, queryWrapper, patientRegistrationMapper, "create_datetime", false);
}