From 761ac0920c1e9baccb50a30b865313abf88d42bb Mon Sep 17 00:00:00 2001 From: LiJianZhao Date: Wed, 7 May 2025 16:19:19 +0800 Subject: [PATCH] deb --- .../controller/goods/GoodsController.java | 3 -- .../controller/item/ItemController.java | 4 +- .../clinic/server/entity/goods/Goods.java | 16 +++++-- .../diagnosis/MedicalRecordService.java | 8 +++- .../server/service/goods/GoodsService.java | 42 ++++++++++++++----- 5 files changed, 53 insertions(+), 20 deletions(-) diff --git a/src/main/java/com/syjiaer/clinic/server/controller/goods/GoodsController.java b/src/main/java/com/syjiaer/clinic/server/controller/goods/GoodsController.java index ce624b3..146257f 100644 --- a/src/main/java/com/syjiaer/clinic/server/controller/goods/GoodsController.java +++ b/src/main/java/com/syjiaer/clinic/server/controller/goods/GoodsController.java @@ -104,9 +104,6 @@ public class GoodsController extends BaseController { public Result search() { Map parms = getParms(); String keyword = (String) parms.get("keyword"); - if (keyword == null || keyword.isEmpty()) { - return success(new ArrayList<>()); - } List searchResult = goodsService.search(keyword);; return success(searchResult); } 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 71ae8f8..14ff3e2 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 @@ -22,8 +22,8 @@ public class ItemController extends BaseController { @RequestMapping("/list") public Result> getAllItems() { - int page = parmsUtil.getInteger("page", "页码不能为空"); - int size = parmsUtil.getInteger("size", "页容量不能为空"); + int page = parmsUtil.getInteger("pageNum", "页码不能为空"); + int size = parmsUtil.getInteger("pageSize", "页容量不能为空"); String name = parmsUtil.getString("name"); String tel = parmsUtil.getString("tel"); diff --git a/src/main/java/com/syjiaer/clinic/server/entity/goods/Goods.java b/src/main/java/com/syjiaer/clinic/server/entity/goods/Goods.java index d8898a6..cdaaaef 100644 --- a/src/main/java/com/syjiaer/clinic/server/entity/goods/Goods.java +++ b/src/main/java/com/syjiaer/clinic/server/entity/goods/Goods.java @@ -4,20 +4,19 @@ 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 lombok.Getter; import lombok.Setter; import lombok.ToString; import lombok.experimental.Accessors; - -import java.io.Serializable; -import java.math.BigDecimal; /** *

* 商品主表 *

* * @author NiuZiYuan - * @since 2025-04-11 + * @since 2025-05-07 */ @Getter @Setter @@ -127,4 +126,13 @@ public class Goods implements Serializable { @ApiModelProperty("到期预警天数") private Integer expiryWarnDays; + + @ApiModelProperty("使用次数") + private Integer useNum; + + @ApiModelProperty("全拼") + private String pinyinFull; + + @ApiModelProperty("拼音首字母") + private String pinyinFirst; } 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 609aa43..461ce27 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 @@ -46,6 +46,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.goods.GoodsService; import com.syjiaer.clinic.server.service.item.ItemService; import com.syjiaer.clinic.server.service.social.SocialDiagnoseService; import org.springframework.beans.BeanUtils; @@ -79,6 +80,8 @@ public class MedicalRecordService extends BaseService { @Autowired private GoodsMapper goodsMapper; @Autowired + private GoodsService goodsService; + @Autowired private ChargeService chargeService; @Autowired private Config config; @@ -164,6 +167,7 @@ public class MedicalRecordService extends BaseService { } diagnosisMedicalItemListMapper.insert(itemLists); List goodsLists = new ArrayList<>(); + List goodsIds = new ArrayList<>(); for (GoodsRetailDto goodsRetailDto : saveDto.getGoodsList()) { Goods dbGoods = goodsMapper.selectById(goodsRetailDto.getId()); DiagnosisMedicalGoodsList goodsDetail = new DiagnosisMedicalGoodsList(); @@ -174,10 +178,12 @@ public class MedicalRecordService extends BaseService { goodsDetail.setUnit(goodsRetailDto.getSelectedUnit()); goodsDetail.setUnitPrice(goodsRetailDto.getSelectedPrice()); goodsDetail.setNumber(goodsRetailDto.getSelectedNum()); + if (goodsRetailDto.getSelectedNum() == null || goodsRetailDto.getSelectedNum() <= 0) { throw new MessageException("[" + goodsRetailDto.getName() + "]数量为0"); } goodsLists.add(goodsDetail); + goodsIds.add(goodsRetailDto.getId()); } diagnosisMedicalGoodsListMapper.insert(goodsLists); @@ -194,7 +200,7 @@ public class MedicalRecordService extends BaseService { List diagnoseList = JSONArray.parseArray(saveDto.getDiagnosisMedicalRecord().getDiagnosisDetail(),SocialDiagnose.class); socialDiagnoseService.updateNumAddOne(diagnoseList); itemService.updateNumAddOne(itemIds); - + goodsService.updateNumAddOne(goodsIds); } /** diff --git a/src/main/java/com/syjiaer/clinic/server/service/goods/GoodsService.java b/src/main/java/com/syjiaer/clinic/server/service/goods/GoodsService.java index 5c8e106..b8ea6e9 100644 --- a/src/main/java/com/syjiaer/clinic/server/service/goods/GoodsService.java +++ b/src/main/java/com/syjiaer/clinic/server/service/goods/GoodsService.java @@ -2,6 +2,7 @@ package com.syjiaer.clinic.server.service.goods; import com.alibaba.fastjson2.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.syjiaer.clinic.server.common.api.input.IM3501; import com.syjiaer.clinic.server.common.api.input.IM3502; import com.syjiaer.clinic.server.common.api.request.SocialRequest; @@ -10,11 +11,13 @@ import com.syjiaer.clinic.server.common.enums.GoodsPricingModelEnum; import com.syjiaer.clinic.server.common.enums.GoodsTypeEnum; import com.syjiaer.clinic.server.common.enums.InventorySocialTypeEnum; 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.goods.Goods; import com.syjiaer.clinic.server.entity.goods.dto.GoodsQuery; import com.syjiaer.clinic.server.entity.goods.vo.GoodsDetailVo; import com.syjiaer.clinic.server.entity.inventory.Inventory; +import com.syjiaer.clinic.server.entity.item.Item; import com.syjiaer.clinic.server.entity.social.vo.SocialDirectoryView; import com.syjiaer.clinic.server.mapper.goods.GoodsMapper; import com.syjiaer.clinic.server.mapper.inventory.InventoryMapper; @@ -72,6 +75,8 @@ public class GoodsService { Double goodsInterestRate = goods.getUnitPrice().subtract(goods.getPurchaseUnitPrice() ).divide(goods.getUnitPrice(), 4, RoundingMode.HALF_DOWN).doubleValue(); goods.setInterestRate(goodsInterestRate); + goods.setPinyinFull(PinYinUtil.getPinyinFull(goods.getName()).toUpperCase()); + goods.setPinyinFirst(PinYinUtil.getPinyinFirstLetters(goods.getName()).toUpperCase()); //初始化库存 if (goods.getId() == null) { //新建档 @@ -259,16 +264,24 @@ public class GoodsService { */ public List search(String keyword) { QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.like("name", keyword); - queryWrapper.or(); - queryWrapper.like("common_name", keyword); - queryWrapper.or(); - queryWrapper.like("barcode", keyword); - queryWrapper.or(); - queryWrapper.like("hilist_code", keyword); - queryWrapper.or(); - queryWrapper.like("producer", keyword); - queryWrapper.last("limit 1000"); + + if (keyword != null && !keyword.isEmpty()){ + keyword = keyword.toUpperCase(); + queryWrapper.like("name", keyword); + queryWrapper.or(); + queryWrapper.like("common_name", keyword); + queryWrapper.or(); + queryWrapper.like("barcode", keyword); + queryWrapper.or(); + queryWrapper.like("hilist_code", keyword); + queryWrapper.or(); + queryWrapper.like("producer", keyword); + queryWrapper.or().like("pinyin_full", keyword); + queryWrapper.or().like("pinyin_first", keyword); + } + queryWrapper.orderByDesc("use_num"); + + queryWrapper.last("limit 20"); return goodsMapper.selectList(queryWrapper); } /* @@ -373,4 +386,13 @@ public class GoodsService { } + public void updateNumAddOne(List ids) { + for (Integer goodsId : ids){ + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.setSql("use_num = use_num+1"); + updateWrapper.eq("id",goodsId); + goodsMapper.update(null,updateWrapper); + } + } + }