diff --git a/src/main/java/com/syjiaer/clinic/server/common/api/input/IM2204.java b/src/main/java/com/syjiaer/clinic/server/common/api/input/IM2204.java index 13d6653..4de1cc8 100644 --- a/src/main/java/com/syjiaer/clinic/server/common/api/input/IM2204.java +++ b/src/main/java/com/syjiaer/clinic/server/common/api/input/IM2204.java @@ -1,6 +1,7 @@ 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; @@ -17,6 +18,8 @@ import java.util.List; public class IM2204 extends BaseInputModel{ @IMField(key = "feedetail", name = "费用明细列表", required = true) private List feedetail; + + @Data public static class Feedetail { @IMField(key = "feedetl_sn", name = "费用明细流水号", required = true) private String feedetl_sn; 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 ff2bd01..c5e308a 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 @@ -169,4 +169,8 @@ public class SocialRequest { public void call2203A(IM2203A im2203A) { httpUtil.call("2203A", im2203A.buildToMap()); } + + public void call2204(IM2204 im2204) { + httpUtil.call("2204", im2204.buildToMap()); + } } 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 1f473df..8aeae30 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.request.SocialRequest; import com.syjiaer.clinic.server.common.constants.Constants; import com.syjiaer.clinic.server.common.enums.InventorySocialTypeEnum; import com.syjiaer.clinic.server.common.enums.InventoryTypeEnum; @@ -20,10 +21,12 @@ import com.syjiaer.clinic.server.entity.diagnosis.Diagnosis; import com.syjiaer.clinic.server.entity.diagnosis.DiagnosisMedicalItemList; import com.syjiaer.clinic.server.entity.goods.Goods; import com.syjiaer.clinic.server.entity.inventory.InventoryLog; +import com.syjiaer.clinic.server.entity.item.Item; import com.syjiaer.clinic.server.entity.manager.ManagerUser; import com.syjiaer.clinic.server.entity.organization.OrganizationMember; import com.syjiaer.clinic.server.entity.organization.OrganizationSection; import com.syjiaer.clinic.server.entity.patient.PatientRegistration; +import com.syjiaer.clinic.server.entity.social.SocialDirectory; import com.syjiaer.clinic.server.mapper.charge.ChargeGoodsListMapper; import com.syjiaer.clinic.server.mapper.charge.ChargeItemListMapper; import com.syjiaer.clinic.server.mapper.charge.ChargeOrderMapper; @@ -31,10 +34,12 @@ import com.syjiaer.clinic.server.mapper.diagnosis.DiagnosisMapper; import com.syjiaer.clinic.server.mapper.goods.GoodsMapper; import com.syjiaer.clinic.server.mapper.inventory.InventoryLogMapper; import com.syjiaer.clinic.server.mapper.diagnosis.DiagnosisMedicalRecordMapper; +import com.syjiaer.clinic.server.mapper.item.ItemMapper; import com.syjiaer.clinic.server.mapper.organization.OrganizationMemberMapper; import com.syjiaer.clinic.server.mapper.organization.OrganizationSectionMapper; import com.syjiaer.clinic.server.mapper.patient.PatientInfoMapper; import com.syjiaer.clinic.server.mapper.patient.PatientRegistrationMapper; +import com.syjiaer.clinic.server.mapper.social.SocialDirectoryMapper; import com.syjiaer.clinic.server.service.BaseService; import com.syjiaer.clinic.server.service.inventory.InventoryService; import com.syjiaer.clinic.server.service.patient.PatientRegistrationService; @@ -61,6 +66,8 @@ public class ChargeService extends BaseService { @Autowired private GoodsMapper goodsMapper; @Autowired + private ItemMapper itemMapper; + @Autowired private PatientInfoMapper patientInfoMapper; @Autowired private DiagnosisMapper diagnosisMapper; @@ -71,9 +78,13 @@ public class ChargeService extends BaseService { @Autowired private OrganizationSectionMapper organizationSectionMapper; @Autowired + private SocialDirectoryMapper socialDirectoryMapper; + @Autowired private InventoryService inventoryService; @Autowired private InventoryLogMapper inventoryLogMapper; + @Autowired + private SocialRequest socialRequest; @Transactional(rollbackFor = Exception.class) @@ -259,9 +270,55 @@ public class ChargeService extends BaseService { List itemLists = chargeItemListMapper.selectByCode(changeOrderCode); IM2204 im2204 = new IM2204(); + List feedetails = new ArrayList<>(); 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.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()); + 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.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.setChrg_bchno(order.getCode()); + feedetail.setRx_circ_flag("0"); + feedetail.setFee_ocur_time(LocalDateTime.now()); + Item item = itemMapper.selectById(itemList.getServiceId()); + SocialDirectory sdGoods = socialDirectoryMapper.getByCode(item.getItemSocialCode()); + feedetail.setMed_list_codg(sdGoods.getCode()); + feedetail.setMedins_list_codg(sdGoods.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.setHosp_appr_flag("1"); + feedetails.add(feedetail); + } + im2204.setFeedetail(feedetails); + socialRequest.call2204(im2204); } diff --git a/src/test/java/com/syjiaer/clinic/server/ServerApplicationTests.java b/src/test/java/com/syjiaer/clinic/server/ServerApplicationTests.java index bf05e5f..6233cca 100644 --- a/src/test/java/com/syjiaer/clinic/server/ServerApplicationTests.java +++ b/src/test/java/com/syjiaer/clinic/server/ServerApplicationTests.java @@ -1,6 +1,7 @@ package com.syjiaer.clinic.server; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.syjiaer.clinic.server.service.charge.ChargeService; import com.syjiaer.clinic.server.service.diagnosis.MedicalRecordService; import com.syjiaer.clinic.server.service.social.SocialDiagnoseService; import org.junit.jupiter.api.Test; @@ -14,12 +15,15 @@ class ServerApplicationTests { private MedicalRecordService medicalRecordService; @Autowired private SocialDiagnoseService socialDiagnoseService; + @Autowired + private ChargeService chargeService; @Test void contextLoads() { // medicalRecordService.uploadDiagnosis("ZD20250424105340459612"); - socialDiagnoseService.download("0"); +// socialDiagnoseService.download("0"); + chargeService.uploadCostDetails("CO20250424125949820609"); }