diff --git a/src/main/java/com/syjiaer/clinic/server/common/api/input/BaseInputModel.java b/src/main/java/com/syjiaer/clinic/server/common/api/input/BaseInputModel.java index 2c9a63f..b1cc274 100644 --- a/src/main/java/com/syjiaer/clinic/server/common/api/input/BaseInputModel.java +++ b/src/main/java/com/syjiaer/clinic/server/common/api/input/BaseInputModel.java @@ -14,45 +14,53 @@ public abstract class BaseInputModel { public Map buildToMap() { Map map = new HashMap<>(); + // 遍历所有字段(包含父类) Class clazz = this.getClass(); while (clazz != null) { for (Field field : clazz.getDeclaredFields()) { field.setAccessible(true); try { - Object value = field.get(this); + Object value = field.get(this); // 检查RequiredField注解 String mapKey = null; if (field.isAnnotationPresent(IMField.class)) { + IMField annotation = field.getAnnotation(IMField.class); mapKey = annotation.key(); - - if (annotation.required() && (value == null || (value instanceof String && ((String) value).isEmpty()))) { - throw new MessageException("[" + annotation.key() + ":" + annotation.name() + "] 不能为空"); - } - } - - if (mapKey != null) { - // 处理 BaseInputModel 子类 - if (value instanceof BaseInputModel) { - map.put(mapKey, ((BaseInputModel) value).buildToMap()); - } - // 处理 List - else if (value instanceof List) { - List list = (List) value; - List> mappedList = new ArrayList<>(); - for (Object item : list) { - if (item instanceof BaseInputModel) { - mappedList.add(((BaseInputModel) item).buildToMap()); - } else { - mappedList.add((Map) item); // 假设基本类型已为 Map - } + if (annotation.required()) { + if (value == null || value.toString().isEmpty()) { + throw new MessageException("[" + annotation.key() + ":"+annotation.name()+"]不能为空"); } - map.put(mapKey, mappedList); - } - // 其他非空值直接放入 - else if (value != null && !(value instanceof String || value.toString().isEmpty())) { - map.put(mapKey, value); } + } + if(mapKey == null){ + continue; + } + + if (value instanceof BaseInputModel) { + map.put(mapKey, ((BaseInputModel) value).buildToMap()); + } + // 处理 List + else if (value instanceof List) { + List list = (List) value; + List> mappedList = new ArrayList<>(); + for (Object item : list) { + if (item instanceof BaseInputModel) { + mappedList.add(((BaseInputModel) item).buildToMap()); + } else { + mappedList.add((Map) item); // 假设基本类型已为 Map + } + } + map.put(mapKey, mappedList); + } + else if (value == null || !value.toString().isEmpty()){ + map.put(mapKey, value); + }else{ + map.put(mapKey, value); + } + + + } catch (IllegalAccessException e) { throw new RuntimeException(e); } @@ -61,5 +69,4 @@ public abstract class BaseInputModel { } return map; } - } diff --git a/src/main/java/com/syjiaer/clinic/server/controller/patient/RegistrationController.java b/src/main/java/com/syjiaer/clinic/server/controller/patient/RegistrationController.java index f02a126..8030d31 100644 --- a/src/main/java/com/syjiaer/clinic/server/controller/patient/RegistrationController.java +++ b/src/main/java/com/syjiaer/clinic/server/controller/patient/RegistrationController.java @@ -49,7 +49,7 @@ public class RegistrationController extends BaseController { public Result> list() { int page = parmsUtil.getInteger("page", "页码不能为空"); int size = parmsUtil.getInteger("size", "页容量不能为空"); - Integer dockerId = parmsUtil.getInteger("dockerId"); + Integer dockerId = parmsUtil.getInteger("doctorId"); String startDate = parmsUtil.getString("startDate"); String endDate = parmsUtil.getString("endDate"); Page pageResult = patientRegistrationService.listPage(page, size, startDate,endDate,dockerId); 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 7f5d452..90260c9 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 @@ -236,7 +236,7 @@ public class ChargeService extends BaseService { itemList.setPreUnitPrice(itemGroup.getUnitPrice()); itemList.setUnitPrice(itemGroup.getUnitPrice()); - itemList.setNumber(itemGroup.getNumber()); + itemList.setNumber(itemGroup.getNumber()*service.getSelectedNum()); itemList.setSocialCode(itemGroup.getSocialCode()); itemList.setUnit(itemGroup.getUnit()); @@ -245,9 +245,9 @@ public class ChargeService extends BaseService { itemList.setCreateDate(nowLocalDate); itemList.setCreateTime(nowLocalDateTime); itemList.setIsGroup(true); - BigDecimal subCost = itemGroup.getPurchaseUnitPrice().multiply(BigDecimal.valueOf(itemGroup.getNumber())); + BigDecimal subCost = itemGroup.getPurchaseUnitPrice().multiply(BigDecimal.valueOf(itemList.getNumber())); itemList.setCost(subCost); - BigDecimal subPrice = itemList.getUnitPrice().multiply(BigDecimal.valueOf(itemGroup.getNumber())); + BigDecimal subPrice = itemList.getUnitPrice().multiply(BigDecimal.valueOf(itemList.getNumber())); itemList.setSubTotalPrice(subPrice); chargeServiceLists.add(itemList); preTotalPrice = preTotalPrice.add(subPrice);