This commit is contained in:
LiJianZhao 2025-05-07 16:19:19 +08:00
parent eada28f256
commit 761ac0920c
5 changed files with 53 additions and 20 deletions

View File

@ -104,9 +104,6 @@ public class GoodsController extends BaseController {
public Result<Object> search() {
Map<String, Object> parms = getParms();
String keyword = (String) parms.get("keyword");
if (keyword == null || keyword.isEmpty()) {
return success(new ArrayList<>());
}
List<Goods> searchResult = goodsService.search(keyword);;
return success(searchResult);
}

View File

@ -22,8 +22,8 @@ public class ItemController extends BaseController {
@RequestMapping("/list")
public Result<Page<Item>> 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");

View File

@ -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;
/**
* <p>
* 商品主表
* </p>
*
* @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;
}

View File

@ -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<DiagnosisMedicalGoodsList> goodsLists = new ArrayList<>();
List<Integer> 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<SocialDiagnose> diagnoseList = JSONArray.parseArray(saveDto.getDiagnosisMedicalRecord().getDiagnosisDetail(),SocialDiagnose.class);
socialDiagnoseService.updateNumAddOne(diagnoseList);
itemService.updateNumAddOne(itemIds);
goodsService.updateNumAddOne(goodsIds);
}
/**

View File

@ -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,6 +264,9 @@ public class GoodsService {
*/
public List<Goods> search(String keyword) {
QueryWrapper<Goods> queryWrapper = new QueryWrapper<>();
if (keyword != null && !keyword.isEmpty()){
keyword = keyword.toUpperCase();
queryWrapper.like("name", keyword);
queryWrapper.or();
queryWrapper.like("common_name", keyword);
@ -268,7 +276,12 @@ public class GoodsService {
queryWrapper.like("hilist_code", keyword);
queryWrapper.or();
queryWrapper.like("producer", keyword);
queryWrapper.last("limit 1000");
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<Integer> ids) {
for (Integer goodsId : ids){
UpdateWrapper<Goods> updateWrapper = new UpdateWrapper<>();
updateWrapper.setSql("use_num = use_num+1");
updateWrapper.eq("id",goodsId);
goodsMapper.update(null,updateWrapper);
}
}
}