diff --git a/src/main/java/com/syjiaer/clinic/server/common/api/input/IM2205.java b/src/main/java/com/syjiaer/clinic/server/common/api/input/IM2205.java new file mode 100644 index 0000000..18a4250 --- /dev/null +++ b/src/main/java/com/syjiaer/clinic/server/common/api/input/IM2205.java @@ -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; +} diff --git a/src/main/java/com/syjiaer/clinic/server/common/api/request/SocialRequest.java b/src/main/java/com/syjiaer/clinic/server/common/api/request/SocialRequest.java index c77c96c..98755ad 100644 --- a/src/main/java/com/syjiaer/clinic/server/common/api/request/SocialRequest.java +++ b/src/main/java/com/syjiaer/clinic/server/common/api/request/SocialRequest.java @@ -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()); } + + } diff --git a/src/main/java/com/syjiaer/clinic/server/controller/charge/ChargeController.java b/src/main/java/com/syjiaer/clinic/server/controller/charge/ChargeController.java index 826bbdb..1bca2eb 100644 --- a/src/main/java/com/syjiaer/clinic/server/controller/charge/ChargeController.java +++ b/src/main/java/com/syjiaer/clinic/server/controller/charge/ChargeController.java @@ -60,7 +60,7 @@ public class ChargeController extends BaseController { public Result 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 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)); } diff --git a/src/main/java/com/syjiaer/clinic/server/service/charge/ChargeService.java b/src/main/java/com/syjiaer/clinic/server/service/charge/ChargeService.java index 4237733..23f14c2 100644 --- a/src/main/java/com/syjiaer/clinic/server/service/charge/ChargeService.java +++ b/src/main/java/com/syjiaer/clinic/server/service/charge/ChargeService.java @@ -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 goodsLists = chargeGoodsListMapper.selectByCode(changeOrderCode); List 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 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; }