Merge branch 'master' of ssh://git.jizhiweb.cn:2222/clinic-v2/server
This commit is contained in:
commit
48bc1c13fb
|
|
@ -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);
|
||||
}
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue