This commit is contained in:
佟明轩 2025-05-21 16:53:36 +08:00
parent babcd385a9
commit ac0d85d143
7 changed files with 217 additions and 0 deletions

View File

@ -49,6 +49,15 @@ public class ParmsUtil {
T t = JSON.parseObject(JSON.toJSONString(map.get(key)), clazz);
return t;
}
public <T> T getObject(String key, Class<T> clazz,String empty_message){
T t = getObject(key, clazz);
if(t==null){
throw new MessageException(empty_message);
}
return t;
}
public Map<String,Object> getMap(String key){
Map<String, Object> map = getMap();
if(isEmpty(key)){

View File

@ -6,6 +6,8 @@ import com.syjiaer.clinic.server.common.vo.Page;
import com.syjiaer.clinic.server.common.vo.Result;
import com.syjiaer.clinic.server.controller.BaseController;
import com.syjiaer.clinic.server.entity.item.Item;
import com.syjiaer.clinic.server.entity.item.ItemGroupList;
import com.syjiaer.clinic.server.entity.item.param.ItemParam;
import com.syjiaer.clinic.server.entity.item.vo.ItemSearchVo;
import com.syjiaer.clinic.server.service.item.ItemService;
import org.springframework.beans.factory.annotation.Autowired;
@ -76,5 +78,16 @@ public class ItemController extends BaseController {
return success(itemService.search(keyword));
}
@RequestMapping("/handleItemGroupList")
public Result<?> handleItemGroupList() {
List<ItemGroupList> itemGroupList = parmsUtil.getList("list", ItemGroupList.class,"请求参数list不能为空");
ItemParam itemParam = parmsUtil.getObject("info", ItemParam.class,"请求参数info不能为空");
itemService.saveGroup(itemGroupList,itemParam);
return success();
}
}

View File

@ -0,0 +1,62 @@
package com.syjiaer.clinic.server.entity.item;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
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;
/**
* <p>
* 诊疗项目子表
* </p>
*
* @author NiuZiYuan
* @since 2025-05-21
*/
@Getter
@Setter
@ToString
@Accessors(chain = true)
@TableName("item_group_list")
@ApiModel(value = "ItemGroupList对象", description = "诊疗项目子表")
public class ItemGroupList implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty("自增主键")
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@ApiModelProperty("项目名称")
private String name;
@ApiModelProperty("售价")
private BigDecimal unitPrice;
@ApiModelProperty("进货价")
private BigDecimal purchaseUnitPrice;
@ApiModelProperty("诊疗项目(小)")
private String itemJson;
@ApiModelProperty("商品表ids")
private String goodsIds;
@ApiModelProperty("逻辑删除")
private Boolean delFlag;
@ApiModelProperty("医保目录编码")
private String socialCode;
@ApiModelProperty("单位")
private String unit;
@ApiModelProperty("item表主键")
private Integer itemId;
}

View File

@ -0,0 +1,10 @@
package com.syjiaer.clinic.server.entity.item.param;
import lombok.Data;
@Data
public class ItemParam {
private Integer id;
private String name;
private String unit;
}

View File

@ -0,0 +1,18 @@
package com.syjiaer.clinic.server.mapper.item;
import com.syjiaer.clinic.server.entity.item.ItemGroupList;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* 诊疗项目子表 Mapper 接口
* </p>
*
* @author NiuZiYuan
* @since 2025-05-21
*/
public interface ItemGroupListMapper extends BaseMapper<ItemGroupList> {
}

View File

@ -4,15 +4,22 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.syjiaer.clinic.server.common.enums.ChrgitmLvEnum;
import com.syjiaer.clinic.server.common.exception.MessageException;
import com.syjiaer.clinic.server.common.util.DebugUtil;
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.item.ItemGroupList;
import com.syjiaer.clinic.server.entity.item.param.ItemParam;
import com.syjiaer.clinic.server.entity.item.vo.ItemSearchVo;
import com.syjiaer.clinic.server.entity.manager.ManagerUser;
import com.syjiaer.clinic.server.entity.social.SocialDirectoryUpinfo;
import com.syjiaer.clinic.server.entity.social.SocialItem;
import com.syjiaer.clinic.server.mapper.item.ItemGroupListMapper;
import com.syjiaer.clinic.server.mapper.item.ItemMapper;
import com.syjiaer.clinic.server.mapper.social.SocialDirectoryUpinfoMapper;
import com.syjiaer.clinic.server.mapper.social.SocialItemMapper;
import com.syjiaer.clinic.server.service.BaseService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -22,7 +29,10 @@ import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
@Slf4j
@Service
public class ItemService extends BaseService {
@Autowired
@ -30,6 +40,11 @@ public class ItemService extends BaseService {
@Autowired
private SocialDirectoryUpinfoMapper socialDirectoryUpinfoMapper;
@Autowired
private ItemGroupListMapper itemGroupListMapper;
@Autowired
private SocialItemMapper socialItemMapper;
/*
* 获取项目列表
* @param pageNum 页码
@ -182,4 +197,89 @@ public class ItemService extends BaseService {
itemMapper.update(null, updateWrapper);
}
}
@Transactional(rollbackFor = Exception.class)
public void saveGroup(List<ItemGroupList> list, ItemParam itemParam) {
ManagerUser managerUser = getManagerUser();
QueryWrapper<Item> itemQueryWrapper = new QueryWrapper<>();
itemQueryWrapper.ne("del_flag", 1);
QueryWrapper<ItemGroupList> itemGroupListqueryWrapper = new QueryWrapper<>();
itemGroupListqueryWrapper.ne("del_flag",1);
Item itemInfo = itemMapper.selectOne(itemQueryWrapper);
if(itemInfo==null){
itemInfo=new Item();
}
itemInfo.setItemName(itemParam.getName());
itemInfo.setUnit(itemParam.getUnit());
itemInfo.setIsGroup(true);
itemInfo.setPurchaseUnitPrice(new BigDecimal(0));
itemInfo.setUnitPrice(new BigDecimal(0));
itemInfo.setCreateDatetime(LocalDateTime.now());
itemInfo.setCreateBy(managerUser.getName());
String pinyinFull = PinYinUtil.getPinyinFull(itemInfo.getItemName());
pinyinFull = pinyinFull.toUpperCase();
itemInfo.setPinyinFull(pinyinFull);
itemInfo.setPinyinFirst(PinYinUtil.getPinyinFirstLetters(itemInfo.getItemName()).toUpperCase());
itemInfo.setIsGroup(true);
if(itemInfo.getId()!= null && itemInfo.getId()>0){
UpdateWrapper<ItemGroupList> updateWrapper = new UpdateWrapper<>();
updateWrapper.eq("item_id",itemParam.getId());
updateWrapper.set("del_flag",true);
itemGroupListMapper.update(updateWrapper);
}
itemMapper.insertOrUpdate(itemInfo);
BigDecimal unitPrice = new BigDecimal(0);
BigDecimal purchaseUnitPrice = new BigDecimal(0);
for (ItemGroupList itemGroup : list){
if (Objects.equals(itemGroup.getName(), "")) {
throw new MessageException("list中name为空");
}
if (Objects.equals(itemGroup.getUnit(), "")) {
throw new MessageException("list中unit为空");
}
if (Objects.equals(itemGroup.getSocialCode(), "")) {
throw new MessageException("list中SocialCode为空");
}
if (itemGroup.getUnitPrice()==null) {
throw new MessageException("list中unitPrice为空");
}
if (itemGroup.getPurchaseUnitPrice()==null) {
throw new MessageException("list中purchaseUnitPrice为空");
}
QueryWrapper<SocialItem> socialItemQueryWrapper = new QueryWrapper<>();
socialItemQueryWrapper.eq("code",itemGroup.getSocialCode());
socialItemQueryWrapper.last("limit 1");
if (socialItemMapper.selectOne(socialItemQueryWrapper)==null) {
throw new MessageException("医保编码不存在");
}
//组织item金额字段
unitPrice = unitPrice.add(itemGroup.getUnitPrice());
purchaseUnitPrice = purchaseUnitPrice.add(itemGroup.getPurchaseUnitPrice());
itemGroup.setItemId(itemInfo.getId());
itemGroup.setDelFlag(false);
itemGroupListMapper.insertOrUpdate(itemGroup);
}
itemInfo.setUpdateDatetime(LocalDateTime.now());
itemInfo.setUnitPrice(unitPrice);
itemInfo.setPurchaseUnitPrice(purchaseUnitPrice);
itemMapper.updateById(itemInfo);
}
}

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.syjiaer.clinic.server.mapper.item.ItemGroupListMapper">
</mapper>