This commit is contained in:
LiJianZhao 2025-04-28 16:59:17 +08:00
parent 9415e90e3c
commit bbb70e9847
4 changed files with 65 additions and 13 deletions

View File

@ -0,0 +1,27 @@
package com.syjiaer.clinic.server.common.api.input;
import com.syjiaer.clinic.server.common.api.annotations.IMField;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import lombok.experimental.Accessors;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
@Getter
@Setter
@ToString
@Accessors(chain = true)
public class IM2205 extends BaseInputModel{
@IMField(key = "mdtrt_id", name = "就诊ID", required = true)
private String mdtrtId;
@IMField(key = "chrg_bchno", name = "收费批次号", required = true)
private String chrgBchno;
@IMField(key = "psn_no", name = "人员编号", required = true)
private String psnNo;
@IMField(key = "exp_content", name = "字段扩展")
private String expContent;
}

View File

@ -173,7 +173,9 @@ public class SocialRequest {
public void call2204(IM2204 im2204) {
httpUtil.call("2204", im2204.buildToMap());
}
public void call2205(IM2205 im2205) {
httpUtil.call("2205","data", im2205.buildToMap());
}
public OM2206A call2206A(IM2206A im2206A) {
JSONObject data = httpUtil.call("2206A",im2206A.buildToMap());
OM2206A om2206A=new OM2206A();
@ -197,4 +199,6 @@ public class SocialRequest {
public JSONObject call9002(IM9002 im9002) {
return httpUtil.call("9002", "signOut", im9002.buildToMap());
}
}

View File

@ -60,7 +60,7 @@ public class ChargeController extends BaseController {
public Result<OM2206A> socialPrePay(){
String changeOrderCode = parmsUtil.getString("changeOrderCode");
String mdtrtCertType = parmsUtil.getString("mdtrtCertType");
String mdtrtCertNO = parmsUtil.getString("mdtrtCertNO");
String mdtrtCertNO = parmsUtil.getString("mdtrtCertNo");
String insutype = parmsUtil.getString("insutype");
return success(chargeService.socialPrePay(changeOrderCode,mdtrtCertType,mdtrtCertNO,insutype));
}
@ -70,7 +70,7 @@ public class ChargeController extends BaseController {
public Result<OM2207A> socialRealPay(){
String changeOrderCode = parmsUtil.getString("changeOrderCode");
String mdtrtCertType = parmsUtil.getString("mdtrtCertType");
String mdtrtCertNO = parmsUtil.getString("mdtrtCertNO");
String mdtrtCertNO = parmsUtil.getString("mdtrtCertNo");
String insutype = parmsUtil.getString("insutype");
return success( chargeService.socialRealPay(changeOrderCode,mdtrtCertType,mdtrtCertNO,insutype));
}

View File

@ -2,6 +2,7 @@ package com.syjiaer.clinic.server.service.charge;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.syjiaer.clinic.server.common.api.input.IM2204;
import com.syjiaer.clinic.server.common.api.input.IM2205;
import com.syjiaer.clinic.server.common.api.input.IM2206A;
import com.syjiaer.clinic.server.common.api.input.IM2207A;
import com.syjiaer.clinic.server.common.api.output.OM2206A;
@ -11,6 +12,7 @@ import com.syjiaer.clinic.server.common.config.Config;
import com.syjiaer.clinic.server.common.constants.Constants;
import com.syjiaer.clinic.server.common.enums.InventorySocialTypeEnum;
import com.syjiaer.clinic.server.common.enums.InventoryTypeEnum;
import com.syjiaer.clinic.server.common.enums.RetailOrderPayTypeEnum;
import com.syjiaer.clinic.server.common.enums.RetailOrderStatusEnum;
import com.syjiaer.clinic.server.common.exception.MessageException;
import com.syjiaer.clinic.server.common.util.StringUtil;
@ -111,6 +113,9 @@ public class ChargeService extends BaseService {
@Autowired
private DiagnosisMedicalItemListMapper diagnosisMedicalItemListMapper;
@Autowired
@Lazy
private ChargeService chargeService;
@Autowired
private Config config;
@ -190,7 +195,6 @@ public class ChargeService extends BaseService {
itemList.setPreUnitPrice(service.getUnitPrice());
itemList.setUnitPrice(service.getSelectedPrice());
itemList.setNumber(service.getSelectedNum());
BigDecimal subTotalPrice = service.getUnitPrice();
itemList.setSubTotalPrice(service.getUnitPrice());
itemList.setUnit(service.getSelectedUnit());
itemList.setName(service.getItemName());
@ -198,8 +202,9 @@ public class ChargeService extends BaseService {
itemList.setCreateDate(nowLocalDate);
itemList.setCreateTime(nowLocalDateTime);
chargeServiceLists.add(itemList);
preTotalPrice = preTotalPrice.add(service.getUnitPrice());
totalPrice = totalPrice.add(service.getUnitPrice());
BigDecimal subPrice =service.getSelectedPrice().multiply(BigDecimal.valueOf(service.getSelectedNum()));
preTotalPrice = preTotalPrice.add(subPrice);
totalPrice = totalPrice.add(subPrice);
}
chargeItemListMapper.insert(chargeServiceLists);
@ -358,6 +363,18 @@ public class ChargeService extends BaseService {
List<ChargeGoodsList> goodsLists = chargeGoodsListMapper.selectByCode(changeOrderCode);
List<ChargeItemList> itemLists = chargeItemListMapper.selectByCode(changeOrderCode);
//撤销之前上传的费用明细信息
try {
IM2205 im2205 = new IM2205();
im2205.setMdtrtId(registration.getMdtrtId());
im2205.setChrgBchno(order.getCode());
im2205.setPsnNo(registration.getPsnNo());
im2205.setExpContent("");
socialRequest.call2205(im2205);
}catch (Exception e){
e.printStackTrace();
}
IM2204 im2204 = new IM2204();
List<IM2204.Feedetail> feedetails = new ArrayList<>();
@ -416,17 +433,18 @@ public class ChargeService extends BaseService {
/**
* 医保预支付
*/
public OM2206A socialPrePay(String changeOrderCode, String mdtrtCertType, String mdtrtCertNO, String insutype) {
public OM2206A socialPrePay(String changeOrderCode, String mdtrtCertType, String mdtrtCertNo, String insutype) {
ChargeOrder order = chargeOrderMapper.selectByCode(changeOrderCode);
Diagnosis diagnosis = diagnosisMapper.selectByCode(order.getDiagnosisCode());
//预支付只需要卡号
String cardNumber = mdtrtCertNo.substring(0,mdtrtCertNo.indexOf("|"));
PatientRegistration registration = patientRegistrationMapper.selectById(diagnosis.getRegistrationId());
IM2206A im2206A = new IM2206A();
IM2206A.Data data = new IM2206A.Data();
data.setPsn_no(registration.getPsnNo());
data.setMdtrt_cert_type(mdtrtCertType);
data.setMdtrt_cert_no(mdtrtCertNO);
data.setMdtrt_cert_no(cardNumber);
data.setMed_type("12");
data.setMedfee_sumamt(order.getTotalPrice());
data.setPsn_setlway("01");
@ -441,8 +459,8 @@ public class ChargeService extends BaseService {
}
public OM2207A socialRealPay(String changeOrderCode, String mdtrtCertType, String mdtrtCertNO, String insutype) {
ChargeOrder order = chargeOrderMapper.selectByCode(changeOrderCode);
public OM2207A socialRealPay(String chargeOrderCode, String mdtrtCertType, String mdtrtCertNo, String insutype) {
ChargeOrder order = chargeOrderMapper.selectByCode(chargeOrderCode);
Diagnosis diagnosis = diagnosisMapper.selectByCode(order.getDiagnosisCode());
PatientRegistration registration = patientRegistrationMapper.selectById(diagnosis.getRegistrationId());
@ -451,7 +469,7 @@ public class ChargeService extends BaseService {
IM2207A.Data data = new IM2207A.Data();
data.setPsn_no(registration.getPsnNo());
data.setMdtrt_cert_type(mdtrtCertType);
data.setMdtrt_cert_no(mdtrtCertNO);
data.setMdtrt_cert_no(mdtrtCertNo);
data.setMed_type("12");
data.setMedfee_sumamt(order.getTotalPrice());
data.setPsn_setlway("01");
@ -462,7 +480,10 @@ public class ChargeService extends BaseService {
IM2207A.ExpContent expContent = new IM2207A.ExpContent();
data.setExp_content(expContent);
im2207A.setData(data);
return socialRequest.call2207A(im2207A);
OM2207A om2207A = socialRequest.call2207A(im2207A);
//完成订单
chargeService.completeOrder(order.getId(), RetailOrderPayTypeEnum.MEDICARE.getCode());
return om2207A;
}