diff --git a/src/main/java/com/glxp/api/controller/basic/BasicProductCategoryController.java b/src/main/java/com/glxp/api/controller/basic/BasicProductCategoryController.java new file mode 100644 index 000000000..36cb2eccd --- /dev/null +++ b/src/main/java/com/glxp/api/controller/basic/BasicProductCategoryController.java @@ -0,0 +1,338 @@ +package com.glxp.api.controller.basic; + + +import cn.hutool.core.util.StrUtil; +import com.github.pagehelper.PageInfo; +import com.glxp.api.annotation.Log; +import com.glxp.api.common.enums.ResultEnum; +import com.glxp.api.common.res.BaseResponse; +import com.glxp.api.common.util.ResultVOUtils; +import com.glxp.api.constant.BusinessType; +import com.glxp.api.entity.basic.BasicHospTypeEntity; +import com.glxp.api.entity.basic.BasicProductCategory; +import com.glxp.api.entity.basic.UdiEntity; +import com.glxp.api.req.basic.*; +import com.glxp.api.res.PageSimpleResponse; +import com.glxp.api.res.basic.BasicProductCategoryTypeResponse; +import com.glxp.api.res.basic.UdiRelevanceResponse; +import com.glxp.api.service.basic.BasicHospTypeService; +import com.glxp.api.service.basic.UdiRelevanceService; +import com.glxp.api.service.basic.impl.BasicProductCategoryService; +import com.glxp.api.util.StringUtils; +import com.glxp.api.util.udi.FilterUdiUtils; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; + +@RestController +public class BasicProductCategoryController { + + @Resource + BasicHospTypeService basicHospTypeService; + @Resource + BasicProductCategoryService basicProductCategoryService; + + + @GetMapping("/udiwms/basic/product/category/filter") + public BaseResponse filterBasicUnitMaintain(BasicHospTypeFilterRequest basicHospTypeFilterRequest, BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + List basicHospTypeEntities = basicHospTypeService.filterHospTypeList(basicHospTypeFilterRequest); + PageInfo pageInfo = new PageInfo<>(basicHospTypeEntities); + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + pageSimpleResponse.setTotal(pageInfo.getTotal()); + pageSimpleResponse.setList(basicHospTypeEntities); + + return ResultVOUtils.success(pageSimpleResponse); + } + + @PostMapping("/udiwms/basic/product/category/selectList") + public BaseResponse menuList(@RequestBody BasicProductTypeFilterRequest basicProductTypeFilterRequest, BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + + List menuList = basicProductCategoryService.getMenuList(basicProductTypeFilterRequest); + return ResultVOUtils.success(menuList); + } + + @PostMapping("/udiwms/basic/product/category/menuAllList") + public BaseResponse menuAllList(@RequestBody BasicHospTypeFilterRequest basicHospTypeFilterRequest, BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + List basicHospTypeEntities = basicHospTypeService.getAllMenuList(basicHospTypeFilterRequest); + return ResultVOUtils.success(basicHospTypeEntities); + } + + @GetMapping("/udiwms/basic/product/category/getOneName") + public BaseResponse getOneName() { + + BasicProductCategory basicProductCategory = basicProductCategoryService.selectBasicHospTypeEntity(); + return ResultVOUtils.success(basicProductCategory); + } + + @PostMapping("/udiwms/basic/product/category/save") + public BaseResponse save(@RequestBody BasicProductTypeRequest basicProductTypeRequest, BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + + if(StrUtil.isEmpty(basicProductTypeRequest.getName())){ + return ResultVOUtils.error(999, "名字不能为空!"); + } + Boolean falg = basicProductCategoryService.checkName(basicProductTypeRequest, 1); + if(falg==false){ + return ResultVOUtils.error(999, "院内分类名字已存在!"); + } + falg = basicProductCategoryService.saveBasicHospType(basicProductTypeRequest); + if (!falg) { + return ResultVOUtils.error(999, "插入失败!"); + } + return ResultVOUtils.success(); + } + + + @PostMapping("/udiwms/basic/product/category/update") + @Log(title = "单据管理", businessType = BusinessType.UPDATE) + public BaseResponse update(@RequestBody BasicProductTypeRequest basicProductTypeRequest, BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + if(StrUtil.isEmpty(basicProductTypeRequest.getName())){ + return ResultVOUtils.error(999, "名字不能为空!"); + } + + if(basicProductTypeRequest.getCode().equals(basicProductTypeRequest.getParentCode())){ + return ResultVOUtils.error(999, "上级菜单不能选择自己!"); + } + + Boolean falg = basicProductCategoryService.checkName(basicProductTypeRequest, 2); + if(falg==false){ + return ResultVOUtils.error(999, "院内分类名字已存在!"); + } + falg = basicProductCategoryService.updateBasicHospType(basicProductTypeRequest); + + if (!falg) { + return ResultVOUtils.error(999, "更新失败!"); + } + return ResultVOUtils.success(); + } + + @GetMapping("/udiwms/basic/product/category/delect") + @Log(title = "单据管理", businessType = BusinessType.DELETE) + public BaseResponse delect(BasicProductTypeRequest basicProductTypeRequest, BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + + String msg = basicProductCategoryService.delectBasicHospType(basicProductTypeRequest); + + if (StringUtils.isNotBlank(msg)) { + return ResultVOUtils.error(999, msg); + } + return ResultVOUtils.success(); + } + + @GetMapping("/udiwms/basic/product/category/getTree") + public BaseResponse getTree() { + List treeList = basicProductCategoryService.getTreeList(); + return ResultVOUtils.success(treeList); + } + + @PostMapping("/udiwms/basic/product/category/bindRel") + public BaseResponse saveRel(@RequestBody BasicProductTypeRequest basicProductTypeRequest, BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + + basicProductCategoryService.insertCateRel(basicProductTypeRequest); + return ResultVOUtils.success(); + } + + @Resource + UdiRelevanceService udiRelevanceService; + + @GetMapping("/udiwms/basic/product/category/bindList") + public BaseResponse bindList(FilterUdiProductRequest filterUdiProductRequest) { + + if (StrUtil.isNotEmpty(filterUdiProductRequest.getUdiCode()) && StrUtil.isEmpty(filterUdiProductRequest.getUnionCode())) { + if (StrUtil.isNotEmpty(filterUdiProductRequest.getUdiCode())) { + UdiEntity udi = FilterUdiUtils.getUdi(filterUdiProductRequest.getUdiCode()); + filterUdiProductRequest.setNameCode(udi.getUdi()); + } + List udiRelevanceResponses = basicProductCategoryService.selectAll(filterUdiProductRequest); + if(udiRelevanceResponses != null && udiRelevanceResponses.size()>0){ + filterUdiProductRequest.setOriginUuid(udiRelevanceResponses.get(0).getOriginUuid()); + filterUdiProductRequest.setNameCode(null); + } + + }else{ + filterUdiProductRequest.setDiType(1); + } + + List list= basicProductCategoryService.selectAll(filterUdiProductRequest); + PageInfo pageInfo = new PageInfo<>(list); + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + pageSimpleResponse.setTotal(pageInfo.getTotal()); + pageSimpleResponse.setList(list); + return ResultVOUtils.success(pageSimpleResponse); + } + + @GetMapping("/udiwms/basic/product/category/productList") + public BaseResponse productList(FilterUdiRelRequest filterUdiRelRequest) { + + //是否是一级分类 + BasicProductCategory category = basicProductCategoryService.checkCode(filterUdiRelRequest.getParentCode()); + + List udiRelevanceResponses=null; + + + if (StrUtil.isNotEmpty(filterUdiRelRequest.getUdiCode())) { + UdiEntity udiEntity = FilterUdiUtils.getUdi(filterUdiRelRequest.getUdiCode()); + if (udiEntity != null) { + filterUdiRelRequest.setNameCode(udiEntity.getUdi()); + filterUdiRelRequest.setUnionCode(udiEntity.getUdi()); + } + } + //如果输入DI标识,精确找到不同层级对应的产品信息 + if (StrUtil.isNotEmpty(filterUdiRelRequest.getUnionCode())) { + FilterUdiRelRequest filterUdiInfoRequest = new FilterUdiRelRequest(); + filterUdiInfoRequest.setNameCode(filterUdiRelRequest.getUnionCode()); + List temps = udiRelevanceService.filterUdiGp(filterUdiInfoRequest); + if (temps != null && temps.size() > 0) { + filterUdiRelRequest.setOriginUuid(temps.get(0).getOriginUuid()); + filterUdiRelRequest.setNameCode(filterUdiInfoRequest.getNameCode()); + filterUdiRelRequest.setUnionCode(null); + } + } else { + //只查找主标识产品信息 + filterUdiRelRequest.setDiType(1); + } + if("10000".equals(category.getParentCode())) { + //查全部 + udiRelevanceResponses= basicHospTypeService.filterUdiGp(filterUdiRelRequest); + }else{ + // 查上级 + FilterUdiProductRequest filterUdiProductRequest = new FilterUdiProductRequest(); + filterUdiProductRequest.setCode(category.getParentCode()); + filterUdiProductRequest.setCpmctymc(filterUdiRelRequest.getCpmctymc()); + filterUdiProductRequest.setGgxh(filterUdiRelRequest.getGgxh()); + filterUdiProductRequest.setYlqxzcrbarmc(filterUdiRelRequest.getYlqxzcrbarmc()); + filterUdiProductRequest.setUnionCode(filterUdiRelRequest.getUnionCode()); + filterUdiProductRequest.setThrPiId(filterUdiRelRequest.getThrPiId()); + + udiRelevanceResponses= basicProductCategoryService.selectAll(filterUdiProductRequest); + + } + PageInfo pageInfo = new PageInfo<>(udiRelevanceResponses); + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + pageSimpleResponse.setTotal(pageInfo.getTotal()); + pageSimpleResponse.setList(udiRelevanceResponses); + return ResultVOUtils.success(pageSimpleResponse); + } + + + + @GetMapping("/udiwms/basic/product/category/SelcetproductList") + public BaseResponse SelectproductList(FilterUdiRelRequest filterUdiRelRequest) { + + //是否是一级分类 + BasicProductCategory category = basicProductCategoryService.checkCode(filterUdiRelRequest.getParentCode()); + + List udiRelevanceResponses=null; + + + if (StrUtil.isNotEmpty(filterUdiRelRequest.getUdiCode())) { + UdiEntity udiEntity = FilterUdiUtils.getUdi(filterUdiRelRequest.getUdiCode()); + if (udiEntity != null) { + filterUdiRelRequest.setNameCode(udiEntity.getUdi()); + filterUdiRelRequest.setUnionCode(udiEntity.getUdi()); + } + } + //如果输入DI标识,精确找到不同层级对应的产品信息 + if (StrUtil.isNotEmpty(filterUdiRelRequest.getUnionCode())) { + FilterUdiRelRequest filterUdiInfoRequest = new FilterUdiRelRequest(); + filterUdiInfoRequest.setNameCode(filterUdiRelRequest.getUnionCode()); + List temps = udiRelevanceService.filterUdiGp(filterUdiInfoRequest); + if (temps != null && temps.size() > 0) { + filterUdiRelRequest.setOriginUuid(temps.get(0).getOriginUuid()); + filterUdiRelRequest.setNameCode(filterUdiInfoRequest.getNameCode()); + filterUdiRelRequest.setUnionCode(null); + } + } else { + //只查找主标识产品信息 + filterUdiRelRequest.setDiType(1); + } + if("10000".equals(category.getParentCode())) { + //查全部 + udiRelevanceResponses= basicHospTypeService.filterUdiGp(filterUdiRelRequest); + }else{ + // 查上级 + FilterUdiProductRequest filterUdiProductRequest = new FilterUdiProductRequest(); + filterUdiProductRequest.setCode(category.getParentCode()); + filterUdiProductRequest.setCpmctymc(filterUdiRelRequest.getCpmctymc()); + filterUdiProductRequest.setGgxh(filterUdiRelRequest.getGgxh()); + filterUdiProductRequest.setYlqxzcrbarmc(filterUdiRelRequest.getYlqxzcrbarmc()); + filterUdiProductRequest.setUnionCode(filterUdiRelRequest.getUnionCode()); + filterUdiProductRequest.setThrPiId(filterUdiRelRequest.getThrPiId()); + + udiRelevanceResponses= basicProductCategoryService.selectAll(filterUdiProductRequest); + + } + //循环插入 + BasicProductTypeRequest basicProductTypeRequest = new BasicProductTypeRequest(); + basicProductTypeRequest.setCode(filterUdiRelRequest.getParentCode()); + List list = new ArrayList<>(); + + for (UdiRelevanceResponse udiRelevanceRespons : udiRelevanceResponses) { + list.add(udiRelevanceRespons.getId()+""); + } + basicProductTypeRequest.setIds(list); + basicProductCategoryService.insertCateRel(basicProductTypeRequest); + + return ResultVOUtils.success(); + } + + + + @GetMapping("/udiwms/basic/product/category/deleterel") + public BaseResponse deleterel(Integer id){ + basicProductCategoryService.deleterelByid(id); + return ResultVOUtils.success(); + } + + + + + + + + + @PostMapping("/udiwms/basic/product/category/unbindRel") + @Log(title = "单据管理", businessType = BusinessType.UPDATE) + public BaseResponse unbindRel(@RequestBody BasicHospTypeRequest basicHospTypeRequest, BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + + Boolean falg = basicHospTypeService.unbindHospProduct(basicHospTypeRequest); + return ResultVOUtils.success(); + } + +} diff --git a/src/main/java/com/glxp/api/dao/basic/BasicProductCategoryMapper.java b/src/main/java/com/glxp/api/dao/basic/BasicProductCategoryMapper.java new file mode 100644 index 000000000..ed4240be8 --- /dev/null +++ b/src/main/java/com/glxp/api/dao/basic/BasicProductCategoryMapper.java @@ -0,0 +1,17 @@ +package com.glxp.api.dao.basic; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.glxp.api.entity.basic.BasicProductCategory; +import com.glxp.api.res.basic.BasicProductCategoryTypeResponse; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +@Mapper +public interface BasicProductCategoryMapper extends BaseMapper { + List getTreeList(); + List selectLowTypeAll(@Param("code") String code); + + Long selectProductByRelCode(@Param("relCode") String relCode); +} diff --git a/src/main/java/com/glxp/api/dao/basic/BasicProductCategoryRelMapper.java b/src/main/java/com/glxp/api/dao/basic/BasicProductCategoryRelMapper.java new file mode 100644 index 000000000..81d2a72ef --- /dev/null +++ b/src/main/java/com/glxp/api/dao/basic/BasicProductCategoryRelMapper.java @@ -0,0 +1,15 @@ +package com.glxp.api.dao.basic; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.glxp.api.entity.basic.BasicProductCategoryRel; +import com.glxp.api.req.basic.FilterUdiProductRequest; +import com.glxp.api.res.basic.UdiRelevanceResponse; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface BasicProductCategoryRelMapper extends BaseMapper { + + List selectAll(FilterUdiProductRequest filterUdiProductRequest); +} diff --git a/src/main/java/com/glxp/api/entity/basic/BasicProductCategory.java b/src/main/java/com/glxp/api/entity/basic/BasicProductCategory.java new file mode 100644 index 000000000..43d6c85af --- /dev/null +++ b/src/main/java/com/glxp/api/entity/basic/BasicProductCategory.java @@ -0,0 +1,66 @@ +package com.glxp.api.entity.basic; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import java.util.Date; +import lombok.Data; + +/** + * 物资类别表 + */ +@Data +@TableName(value = "basic_product_category") +public class BasicProductCategory { + @TableId(value = "id", type = IdType.INPUT) + private Long id; + + /** + * 物资类别编码 + */ + @TableField(value = "code") + private String code; + + /** + * 父级编码 + */ + @TableField(value = "parentCode") + private String parentCode; + + /** + * 物资类别名称 + */ + @TableField(value = "`name`") + private String name; + + /** + * 备注 + */ + @TableField(value = "remark") + private String remark; + + /** + * 创建时间 + */ + @TableField(value = "createTime") + private Date createTime; + + /** + * 更新时间 + */ + @TableField(value = "updateTime") + private Date updateTime; + + /** + * 创建人 + */ + @TableField(value = "`createUser`") + private String createUser; + + /** + * 更新人 + */ + @TableField(value = "updateUser") + private String updateUser; +} \ No newline at end of file diff --git a/src/main/java/com/glxp/api/entity/basic/BasicProductCategoryRel.java b/src/main/java/com/glxp/api/entity/basic/BasicProductCategoryRel.java new file mode 100644 index 000000000..a2419405d --- /dev/null +++ b/src/main/java/com/glxp/api/entity/basic/BasicProductCategoryRel.java @@ -0,0 +1,26 @@ +package com.glxp.api.entity.basic; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +@Data +@TableName(value = "basic_product_category_rel") +public class BasicProductCategoryRel { + @TableId(value = "id", type = IdType.INPUT) + private Integer id; + + /** + * 院内编码 + */ + @TableField(value = "code") + private String code; + + /** + * 耗材字典ID主键 + */ + @TableField(value = "relId") + private String relId; +} \ No newline at end of file diff --git a/src/main/java/com/glxp/api/req/basic/BasicProductTypeFilterRequest.java b/src/main/java/com/glxp/api/req/basic/BasicProductTypeFilterRequest.java new file mode 100644 index 000000000..4a0312316 --- /dev/null +++ b/src/main/java/com/glxp/api/req/basic/BasicProductTypeFilterRequest.java @@ -0,0 +1,12 @@ +package com.glxp.api.req.basic; + +import com.glxp.api.util.page.ListPageRequest; +import lombok.Data; + +@Data +public class BasicProductTypeFilterRequest extends ListPageRequest { + + private String name; + private Integer type; + private String code; +} diff --git a/src/main/java/com/glxp/api/req/basic/BasicProductTypeRequest.java b/src/main/java/com/glxp/api/req/basic/BasicProductTypeRequest.java new file mode 100644 index 000000000..7f262a46b --- /dev/null +++ b/src/main/java/com/glxp/api/req/basic/BasicProductTypeRequest.java @@ -0,0 +1,16 @@ +package com.glxp.api.req.basic; + +import lombok.Data; + +import java.util.List; + +@Data +public class BasicProductTypeRequest { + + private Long id; + private String code; + private String parentCode; + private String name; + private String remark; + List ids; +} diff --git a/src/main/java/com/glxp/api/req/basic/FilterUdiProductRequest.java b/src/main/java/com/glxp/api/req/basic/FilterUdiProductRequest.java new file mode 100644 index 000000000..a639efbc1 --- /dev/null +++ b/src/main/java/com/glxp/api/req/basic/FilterUdiProductRequest.java @@ -0,0 +1,25 @@ +package com.glxp.api.req.basic; + +import com.glxp.api.util.page.ListPageRequest; +import lombok.Data; + +@Data +public class FilterUdiProductRequest extends ListPageRequest { + + private String ylqxzcrbarmc; + private String cpmctymc; + private String ggxh; + private String udiCode; + private String unionCode; + private String zczbhhzbapzbh; + private String manufactory; + private String code; + private String parentCode; + private String nameCode; + private String thrPiId; + private String originUuid; + private Integer diType; + + + +} diff --git a/src/main/java/com/glxp/api/req/basic/FilterUdiRelRequest.java b/src/main/java/com/glxp/api/req/basic/FilterUdiRelRequest.java index 02dcd5293..b7840c826 100644 --- a/src/main/java/com/glxp/api/req/basic/FilterUdiRelRequest.java +++ b/src/main/java/com/glxp/api/req/basic/FilterUdiRelRequest.java @@ -76,5 +76,6 @@ public class FilterUdiRelRequest extends ListPageRequest { private List uuids; private List ids; private String flbm; + private String parentCode; } diff --git a/src/main/java/com/glxp/api/res/basic/BasicProductCategoryTypeResponse.java b/src/main/java/com/glxp/api/res/basic/BasicProductCategoryTypeResponse.java new file mode 100644 index 000000000..d777c6ee1 --- /dev/null +++ b/src/main/java/com/glxp/api/res/basic/BasicProductCategoryTypeResponse.java @@ -0,0 +1,22 @@ +package com.glxp.api.res.basic; + +import lombok.Data; + +import java.util.Date; + +@Data +public class BasicProductCategoryTypeResponse { + + private Long id; + private String code; + private String parentCode; + private String name; + private String remark; + private Date createTime; + private Date updateTime; + private String createUser; + private String updateUser; + private String label; + + +} diff --git a/src/main/java/com/glxp/api/res/basic/UdiRelevanceResponse.java b/src/main/java/com/glxp/api/res/basic/UdiRelevanceResponse.java index a3b076167..9e7ca9632 100644 --- a/src/main/java/com/glxp/api/res/basic/UdiRelevanceResponse.java +++ b/src/main/java/com/glxp/api/res/basic/UdiRelevanceResponse.java @@ -114,6 +114,8 @@ public class UdiRelevanceResponse { private String customerId; + private Integer bpcrid; + public int getBhzxxsbzsl() { if (bhzxxsbzsl == null || bhzxxsbzsl == 0) { return 1; diff --git a/src/main/java/com/glxp/api/service/basic/BasicProductCategoryRelService.java b/src/main/java/com/glxp/api/service/basic/BasicProductCategoryRelService.java new file mode 100644 index 000000000..16c4f88b0 --- /dev/null +++ b/src/main/java/com/glxp/api/service/basic/BasicProductCategoryRelService.java @@ -0,0 +1,12 @@ +package com.glxp.api.service.basic; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.glxp.api.dao.basic.BasicProductCategoryRelMapper; +import com.glxp.api.entity.basic.BasicProductCategoryRel; +import org.springframework.stereotype.Service; + +@Service +public class BasicProductCategoryRelService extends ServiceImpl { + + +} diff --git a/src/main/java/com/glxp/api/service/basic/BasicProductCategoryServiceImpl.java b/src/main/java/com/glxp/api/service/basic/BasicProductCategoryServiceImpl.java new file mode 100644 index 000000000..85755c75b --- /dev/null +++ b/src/main/java/com/glxp/api/service/basic/BasicProductCategoryServiceImpl.java @@ -0,0 +1,191 @@ +package com.glxp.api.service.basic; + +import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.github.pagehelper.PageHelper; +import com.glxp.api.dao.basic.BasicProductCategoryMapper; +import com.glxp.api.dao.basic.BasicProductCategoryRelMapper; +import com.glxp.api.entity.basic.BasicProductCategory; +import com.glxp.api.entity.basic.BasicProductCategoryRel; +import com.glxp.api.req.basic.BasicProductTypeFilterRequest; +import com.glxp.api.req.basic.BasicProductTypeRequest; +import com.glxp.api.req.basic.FilterUdiProductRequest; +import com.glxp.api.res.basic.BasicProductCategoryTypeResponse; +import com.glxp.api.res.basic.UdiRelevanceResponse; +import com.glxp.api.service.auth.CustomerService; +import com.glxp.api.service.basic.impl.BasicProductCategoryService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Collections; +import java.util.Date; +import java.util.List; +import java.util.stream.Collectors; + +@Service +public class BasicProductCategoryServiceImpl implements BasicProductCategoryService { + + @Resource + private BasicProductCategoryMapper basicProductCategoryMapper; + + @Resource + CustomerService customerService; + + @Resource + BasicProductCategoryRelMapper basicProductCategoryRelMapper; + + + + @Override + public List getTreeList() { + + return basicProductCategoryMapper.getTreeList(); + } + + @Override + public BasicProductCategory selectBasicHospTypeEntity() { + QueryWrapper Wrapper = new QueryWrapper<>(); + Wrapper.eq("code",10000); + return basicProductCategoryMapper.selectOne(Wrapper); + } + + @Override + public List getMenuList(BasicProductTypeFilterRequest basicProductTypeFilterRequest) { + QueryWrapper ew=new QueryWrapper<>(); + ew.ne("code",10000); + if(basicProductTypeFilterRequest.getType()!=null && basicProductTypeFilterRequest.getType()==1 && StrUtil.isNotEmpty(basicProductTypeFilterRequest.getCode())){ + List basicProductCategories = basicProductCategoryMapper.selectLowTypeAll(basicProductTypeFilterRequest.getCode()); + List ids = basicProductCategories.stream().map(BasicProductCategory::getId).collect(Collectors.toList()); + ew.notIn("id",ids); + } + List list = basicProductCategoryMapper.selectList(ew); + return list; + } + + @Override + public Boolean checkName(BasicProductTypeRequest basicProductTypeRequest, Integer type) { + Long sum=null; + //1添加 + if(type==1){ + //查看名字是不是重复 + QueryWrapper ew=new QueryWrapper<>(); + ew.eq("name",basicProductTypeRequest.getName()); + sum=basicProductCategoryMapper.selectCount(ew); + }else{ + QueryWrapper ew=new QueryWrapper<>(); + ew.eq("name",basicProductTypeRequest.getName()); + ew.ne("id",basicProductTypeRequest.getId()); + sum=basicProductCategoryMapper.selectCount(ew); + } + if(sum>0){ + return false; + }else{ + return true; + } + } + + @Override + public boolean updateBasicHospType(BasicProductTypeRequest basicProductTypeRequest) { + boolean falg=true; + BasicProductCategory basicProductCategory = new BasicProductCategory(); + basicProductCategory.setId(basicProductTypeRequest.getId()); + basicProductCategory.setCreateTime(new Date()); + basicProductCategory.setUpdateTime(new Date()); + basicProductCategory.setName(basicProductTypeRequest.getName()); + basicProductCategory.setParentCode(basicProductTypeRequest.getParentCode()); + basicProductCategory.setRemark(basicProductTypeRequest.getRemark()); + Long userId=customerService.getUserId(); + basicProductCategory.setCreateUser(userId+""); + basicProductCategory.setUpdateUser(userId+""); + int i = basicProductCategoryMapper.updateById(basicProductCategory); + if(i == 0){ + falg=false; + } + return falg; + } + + @Override + public Boolean saveBasicHospType(BasicProductTypeRequest basicProductTypeRequest) { + boolean falg=true; + BasicProductCategory basicProductCategory = new BasicProductCategory(); + basicProductCategory.setId(basicProductTypeRequest.getId()); + basicProductCategory.setCreateTime(new Date()); + basicProductCategory.setUpdateTime(new Date()); + basicProductCategory.setName(basicProductTypeRequest.getName()); + basicProductCategory.setParentCode(basicProductTypeRequest.getParentCode()); + basicProductCategory.setRemark(basicProductTypeRequest.getRemark()); + Long userId=customerService.getUserId(); + basicProductCategory.setCreateUser(userId+""); + basicProductCategory.setUpdateUser(userId+""); + //获取数据库最大的code + QueryWrapper ew=new QueryWrapper<>(); + ew.select("max(code) as code"); + BasicProductCategory basicProductCategory1 = basicProductCategoryMapper.selectOne(ew); + basicProductCategory.setCode(Integer.valueOf(basicProductCategory1.getCode())+1+""); + basicProductCategory.setId(IdUtil.getSnowflakeNextId()); + int insert = basicProductCategoryMapper.insert(basicProductCategory); + if(insert == 0){ + falg=false; + } + return falg; + } + + @Override + public String delectBasicHospType(BasicProductTypeRequest basicProductTypeRequest) { + //查询是否有自己的子集 + QueryWrapper ew=new QueryWrapper<>(); + ew.eq("parentCode",basicProductTypeRequest.getCode()); + Long count=basicProductCategoryMapper.selectCount(ew); + if(count>0){ + return "请先删除该节点底下的数据!"; + } + //查询是否有绑定产品 + count = basicProductCategoryMapper.selectProductByRelCode(basicProductTypeRequest.getCode()); + if(count >0){ + return "该节点还存在产品,请先删除!"; + } + basicProductCategoryMapper.deleteById(basicProductTypeRequest.getId()); + + return ""; + } + + @Override + public List selectAll(FilterUdiProductRequest filterUdiProductRequest) { + if (filterUdiProductRequest == null) { + return Collections.emptyList(); + } + if (filterUdiProductRequest.getPage() != null) { + int offset = (filterUdiProductRequest.getPage() - 1) * filterUdiProductRequest.getLimit(); + PageHelper.offsetPage(offset, filterUdiProductRequest.getLimit()); + } + + return basicProductCategoryRelMapper.selectAll(filterUdiProductRequest); + } + + @Override + public boolean insertCateRel(BasicProductTypeRequest basicProductTypeRequest) { + BasicProductCategoryRel basicProductCategoryRel = new BasicProductCategoryRel(); + int insert =0; + for (String id : basicProductTypeRequest.getIds()) { + basicProductCategoryRel.setRelId(id); + basicProductCategoryRel.setCode(basicProductTypeRequest.getCode()); + insert = basicProductCategoryRelMapper.insert(basicProductCategoryRel); + } + + return insert>0; + + } + + @Override + public BasicProductCategory checkCode(String parentCode) { + return basicProductCategoryMapper.selectOne(new QueryWrapper().eq("code",parentCode)); + } + + @Override + public boolean deleterelByid(Integer id) { + + return basicProductCategoryRelMapper.deleteById(id)>0; + } +} + diff --git a/src/main/java/com/glxp/api/service/basic/impl/BasicProductCategoryService.java b/src/main/java/com/glxp/api/service/basic/impl/BasicProductCategoryService.java new file mode 100644 index 000000000..1790a78de --- /dev/null +++ b/src/main/java/com/glxp/api/service/basic/impl/BasicProductCategoryService.java @@ -0,0 +1,40 @@ +package com.glxp.api.service.basic.impl; + +import com.glxp.api.entity.basic.BasicProductCategory; +import com.glxp.api.req.basic.BasicProductTypeFilterRequest; +import com.glxp.api.req.basic.BasicProductTypeRequest; +import com.glxp.api.req.basic.FilterUdiProductRequest; +import com.glxp.api.res.basic.BasicProductCategoryTypeResponse; +import com.glxp.api.res.basic.UdiRelevanceResponse; + +import java.util.List; + +public interface BasicProductCategoryService { + + List getTreeList(); + + BasicProductCategory selectBasicHospTypeEntity(); + + List getMenuList(BasicProductTypeFilterRequest basicProductTypeFilterRequest); + + Boolean checkName(BasicProductTypeRequest basicProductTypeRequest, Integer type); + + boolean updateBasicHospType(BasicProductTypeRequest basicProductTypeRequest); + + Boolean saveBasicHospType(BasicProductTypeRequest basicProductTypeRequest); + + String delectBasicHospType(BasicProductTypeRequest basicProductTypeRequest); + + + List selectAll(FilterUdiProductRequest filterUdiProductRequest); + + boolean insertCateRel(BasicProductTypeRequest basicProductTypeRequest); + + BasicProductCategory checkCode(String parentCode); + + boolean deleterelByid(Integer id); + + + +} + diff --git a/src/main/resources/mybatis/mapper/basic/BasicProductCategoryMapper.xml b/src/main/resources/mybatis/mapper/basic/BasicProductCategoryMapper.xml new file mode 100644 index 000000000..b9cb6e927 --- /dev/null +++ b/src/main/resources/mybatis/mapper/basic/BasicProductCategoryMapper.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + id, code, parentCode, `name`, remark, createTime, updateTime, `createUser`, updateUser + + + + + + + + + diff --git a/src/main/resources/mybatis/mapper/basic/BasicProductCategoryRelMapper.xml b/src/main/resources/mybatis/mapper/basic/BasicProductCategoryRelMapper.xml new file mode 100644 index 000000000..5a6b4057c --- /dev/null +++ b/src/main/resources/mybatis/mapper/basic/BasicProductCategoryRelMapper.xml @@ -0,0 +1,78 @@ + + + + + + + + + + + + + id, code, relId + + + + + + +