This commit is contained in:
parent
babcd385a9
commit
ac0d85d143
|
|
@ -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)){
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -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;
|
||||
}
|
||||
|
|
@ -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;
|
||||
}
|
||||
|
|
@ -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> {
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
Loading…
Reference in New Issue