diff --git a/src/main/java/com/syjiaer/clinic/server/common/api/input/IM2203A.java b/src/main/java/com/syjiaer/clinic/server/common/api/input/IM2203A.java index f11f7ed..079537a 100644 --- a/src/main/java/com/syjiaer/clinic/server/common/api/input/IM2203A.java +++ b/src/main/java/com/syjiaer/clinic/server/common/api/input/IM2203A.java @@ -22,8 +22,7 @@ public class IM2203A extends BaseInputModel{ @IMField(key = "diseinfo", name = "诊断信息", required = true) private List diseinfo; - @Getter - @Setter + @Data public static class Mdtrtinfo{ @IMField(key = "mdtrt_id", name = "就诊ID", required = true) private String mdtrt_id; @@ -50,8 +49,7 @@ public class IM2203A extends BaseInputModel{ @IMField(key = "exp_content", name = "字段扩展") private ExpContent exp_content; } - @Getter - @Setter + @Data public static class Diseinfo{ @IMField(key = "diag_type", name = "诊断类别", required = true) private String diag_type; diff --git a/src/main/java/com/syjiaer/clinic/server/controller/item/ItemController.java b/src/main/java/com/syjiaer/clinic/server/controller/item/ItemController.java index ddeecb0..71ae8f8 100644 --- a/src/main/java/com/syjiaer/clinic/server/controller/item/ItemController.java +++ b/src/main/java/com/syjiaer/clinic/server/controller/item/ItemController.java @@ -62,9 +62,7 @@ public class ItemController extends BaseController { @RequestMapping("/search") public Result> search() { String keyword = parmsUtil.getString("keyword"); - if (keyword == null || keyword.isEmpty()) { - return success(new ArrayList<>()); - } + return success(itemService.search(keyword)); } } diff --git a/src/main/java/com/syjiaer/clinic/server/entity/item/Item.java b/src/main/java/com/syjiaer/clinic/server/entity/item/Item.java index 88a9032..76fad08 100644 --- a/src/main/java/com/syjiaer/clinic/server/entity/item/Item.java +++ b/src/main/java/com/syjiaer/clinic/server/entity/item/Item.java @@ -4,21 +4,20 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDateTime; import lombok.Getter; import lombok.Setter; import lombok.ToString; import lombok.experimental.Accessors; - -import java.io.Serializable; -import java.math.BigDecimal; -import java.time.LocalDateTime; /** *

* 诊疗项目 *

* * @author NiuZiYuan - * @since 2025-04-17 + * @since 2025-05-07 */ @Getter @Setter @@ -62,4 +61,13 @@ public class Item implements Serializable { @ApiModelProperty("逻辑删除") private Integer delFlag; + + @ApiModelProperty("使用次数") + private Integer useNum; + + @ApiModelProperty("全拼") + private String pinyinFull; + + @ApiModelProperty("拼音首字母") + private String pinyinFirst; } diff --git a/src/main/java/com/syjiaer/clinic/server/entity/social/vo/SocialDirectoryView.java b/src/main/java/com/syjiaer/clinic/server/entity/social/vo/SocialDirectoryView.java index 400fb88..1544192 100644 --- a/src/main/java/com/syjiaer/clinic/server/entity/social/vo/SocialDirectoryView.java +++ b/src/main/java/com/syjiaer/clinic/server/entity/social/vo/SocialDirectoryView.java @@ -67,6 +67,7 @@ public class SocialDirectoryView implements Serializable { private String wubi; private String pinyin; + private String lmtUsedFlag; private JSONObject json; diff --git a/src/main/java/com/syjiaer/clinic/server/mapper/item/ItemMapper.java b/src/main/java/com/syjiaer/clinic/server/mapper/item/ItemMapper.java index 8a0360c..5c01f9a 100644 --- a/src/main/java/com/syjiaer/clinic/server/mapper/item/ItemMapper.java +++ b/src/main/java/com/syjiaer/clinic/server/mapper/item/ItemMapper.java @@ -1,7 +1,12 @@ package com.syjiaer.clinic.server.mapper.item; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.syjiaer.clinic.server.entity.item.Item; +import com.syjiaer.clinic.server.entity.social.SocialDiagnose; +import org.apache.ibatis.annotations.Update; + +import java.util.List; /** @@ -13,6 +18,5 @@ import com.syjiaer.clinic.server.entity.item.Item; * @since 2025-04-17 */ public interface ItemMapper extends BaseMapper { - } diff --git a/src/main/java/com/syjiaer/clinic/server/service/diagnosis/MedicalRecordService.java b/src/main/java/com/syjiaer/clinic/server/service/diagnosis/MedicalRecordService.java index 2c8ae17..7d412d3 100644 --- a/src/main/java/com/syjiaer/clinic/server/service/diagnosis/MedicalRecordService.java +++ b/src/main/java/com/syjiaer/clinic/server/service/diagnosis/MedicalRecordService.java @@ -45,6 +45,7 @@ import com.syjiaer.clinic.server.mapper.patient.PatientInfoMapper; import com.syjiaer.clinic.server.mapper.patient.PatientRegistrationMapper; import com.syjiaer.clinic.server.service.BaseService; import com.syjiaer.clinic.server.service.charge.ChargeService; +import com.syjiaer.clinic.server.service.item.ItemService; import com.syjiaer.clinic.server.service.social.SocialDiagnoseService; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -71,6 +72,8 @@ public class MedicalRecordService extends BaseService { @Autowired private PatientRegistrationMapper patientRegistrationMapper; @Autowired + private ItemService itemService; + @Autowired private ItemMapper itemMapper; @Autowired private GoodsMapper goodsMapper; @@ -140,8 +143,9 @@ public class MedicalRecordService extends BaseService { //服务项目表 Integer medicalRecordId = diagnosisMedicalRecord.getId(); List itemLists = new ArrayList<>(); - + List itemIds = new ArrayList<>(); for (ItemRetailDto item : saveDto.getItemList()) { + itemIds.add(item.getId()); Item dbItem = itemMapper.selectById(item.getId()); DiagnosisMedicalItemList itemDetail = new DiagnosisMedicalItemList(); itemDetail.setDiagnosisCode(code); @@ -158,7 +162,6 @@ public class MedicalRecordService extends BaseService { } diagnosisMedicalItemListMapper.insert(itemLists); - List goodsLists = new ArrayList<>(); for (GoodsRetailDto goodsRetailDto : saveDto.getGoodsList()) { Goods dbGoods = goodsMapper.selectById(goodsRetailDto.getId()); @@ -181,6 +184,8 @@ public class MedicalRecordService extends BaseService { System.out.println(saveDto.getDiagnosisMedicalRecord().getDiagnosisDetail()); List diagnoseList = JSONArray.parseArray(saveDto.getDiagnosisMedicalRecord().getDiagnosisDetail(),SocialDiagnose.class); socialDiagnoseService.updateNumAddOne(diagnoseList); + itemService.updateNumAddOne(itemIds); + } /** diff --git a/src/main/java/com/syjiaer/clinic/server/service/item/ItemService.java b/src/main/java/com/syjiaer/clinic/server/service/item/ItemService.java index 3609301..8807615 100644 --- a/src/main/java/com/syjiaer/clinic/server/service/item/ItemService.java +++ b/src/main/java/com/syjiaer/clinic/server/service/item/ItemService.java @@ -1,16 +1,20 @@ package com.syjiaer.clinic.server.service.item; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.syjiaer.clinic.server.common.exception.MessageException; +import com.syjiaer.clinic.server.common.util.PinYinUtil; import com.syjiaer.clinic.server.common.vo.Page; import com.syjiaer.clinic.server.entity.item.Item; import com.syjiaer.clinic.server.entity.manager.ManagerUser; +import com.syjiaer.clinic.server.entity.social.SocialDiagnose; import com.syjiaer.clinic.server.mapper.item.ItemMapper; import com.syjiaer.clinic.server.service.BaseService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.List; @@ -51,9 +55,25 @@ public class ItemService extends BaseService { if (item == null) { throw new MessageException("item参数为空"); } + if (item.getItemName() == null || item.getItemName().isEmpty()){ + throw new MessageException("项目名称不能为空"); + } + if (item.getItemSocialCode() == null || item.getItemSocialCode().isEmpty()){ + throw new MessageException("项目医保目录编码不能为空"); + } + if (item.getUnit() == null || item.getUnit().isEmpty()){ + throw new MessageException("单位不能为空"); + } + if (item.getUnitPrice() == null || item.getUnitPrice().compareTo(BigDecimal.ZERO) <= 0){ + throw new MessageException("售价不能小于0"); + } ManagerUser managerUser = getManagerUser(); item.setCreateDatetime(LocalDateTime.now()); item.setCreateBy(managerUser.getName()); + String pinyin_full= PinYinUtil.getPinyinFull(item.getItemName()); + pinyin_full = pinyin_full.toUpperCase(); + item.setPinyinFull(pinyin_full); + item.setPinyinFirst(PinYinUtil.getPinyinFirstLetters(item.getItemName()).toUpperCase()); itemMapper.insertOrUpdate(item); } @@ -63,10 +83,12 @@ public class ItemService extends BaseService { if (id == null) { throw new MessageException("id参数为空"); } + Item item = itemMapper.selectById(id); if (item == null || item.getDelFlag() == 1) { throw new MessageException("该服务项目已被删除或不存在"); } + Item updateItem = new Item(); updateItem.setId(id); updateItem.setDelFlag(1); @@ -74,7 +96,10 @@ public class ItemService extends BaseService { } public List search(String keyword){ QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.like("item_name", keyword); + if (keyword != null && !keyword.isEmpty()){ + queryWrapper.like("item_name", keyword.toUpperCase()); + } + queryWrapper.orderByDesc("use_num","update_datetime"); queryWrapper.last("limit 20"); return itemMapper.selectList(queryWrapper); } @@ -87,8 +112,34 @@ public class ItemService extends BaseService { if (item == null) { throw new MessageException("item参数为空"); } + if (item.getItemName() == null || item.getItemName().isEmpty()){ + throw new MessageException("项目名称不能为空"); + } + if (item.getItemSocialCode() == null || item.getItemSocialCode().isEmpty()){ + throw new MessageException("项目医保目录编码不能为空"); + } + if (item.getUnit() == null || item.getUnit().isEmpty()){ + throw new MessageException("单位不能为空"); + } + if (item.getUnitPrice() == null || item.getUnitPrice().compareTo(BigDecimal.ZERO) <= 0){ + throw new MessageException("售价不能小于0"); + } item.setUpdateBy(getManagerUser().getName()); item.setUpdateDatetime(LocalDateTime.now()); + String pinyin_full= PinYinUtil.getPinyinFull(item.getItemName()); + pinyin_full = pinyin_full.toUpperCase(); + item.setPinyinFull(pinyin_full); + item.setPinyinFirst(PinYinUtil.getPinyinFirstLetters(item.getItemName()).toUpperCase()); itemMapper.updateById(item); } + + + public void updateNumAddOne(List ids) { + for (Integer itemId : ids){ + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.setSql("use_num = use_num+1"); + updateWrapper.eq("id",itemId); + itemMapper.update(null,updateWrapper); + } + } } diff --git a/src/main/java/com/syjiaer/clinic/server/service/social/SocialDirectoryService.java b/src/main/java/com/syjiaer/clinic/server/service/social/SocialDirectoryService.java index aa0b1f7..82f6150 100644 --- a/src/main/java/com/syjiaer/clinic/server/service/social/SocialDirectoryService.java +++ b/src/main/java/com/syjiaer/clinic/server/service/social/SocialDirectoryService.java @@ -346,6 +346,7 @@ public class SocialDirectoryService extends BaseService { socialDirectoryView.setEnddate(socialDirectoryUpinfo.getEnddate()); socialDirectoryView.setWubi(socialDirectoryUpinfo.getWubi()); socialDirectoryView.setPinyin(socialDirectoryUpinfo.getPinyin()); + socialDirectoryView.setLmtUsedFlag(socialDirectoryUpinfo.getLmtUsedFlag()); } SocialDirectoryLimit socialDirectoryLimit = socialDirectoryLimitMapper.selectByCode(code); if (socialDirectoryLimit != null) {