From 1cdec29e7327f3e38b6f58044cfcb79e4841d3d9 Mon Sep 17 00:00:00 2001 From: tangw Date: Tue, 11 Nov 2025 14:17:28 +0800 Subject: [PATCH] reg_itemclass --- sql/lis8.0/updatedb_lis8.0.sql | 39 ++++- .../controller/dict/ItemclassController.java | 107 ++++++++++++ .../transitPF/mapper/RegItemclassMapper.java | 84 ++++++++++ .../czlis/transitPF/pojo/RegItemclass.java | 50 ++++++ .../service/RegItemclassService.java | 94 +++++++++++ .../service/impl/RegItemclassServiceImpl.java | 156 ++++++++++++++++++ .../resources/mapper/RegDiagnosisMapper.xml | 28 ++-- .../resources/mapper/RegItemclassMapper.xml | 133 +++++++++++++++ 8 files changed, 675 insertions(+), 16 deletions(-) create mode 100644 transitPF/src/main/java/com/czlis/transitPF/controller/dict/ItemclassController.java create mode 100644 transitPF/src/main/java/com/czlis/transitPF/mapper/RegItemclassMapper.java create mode 100644 transitPF/src/main/java/com/czlis/transitPF/pojo/RegItemclass.java create mode 100644 transitPF/src/main/java/com/czlis/transitPF/service/RegItemclassService.java create mode 100644 transitPF/src/main/java/com/czlis/transitPF/service/impl/RegItemclassServiceImpl.java create mode 100644 transitPF/src/main/resources/mapper/RegItemclassMapper.xml diff --git a/sql/lis8.0/updatedb_lis8.0.sql b/sql/lis8.0/updatedb_lis8.0.sql index ac2e963..5e7e922 100644 --- a/sql/lis8.0/updatedb_lis8.0.sql +++ b/sql/lis8.0/updatedb_lis8.0.sql @@ -222,7 +222,7 @@ begin CREATE TABLE [dbo].[reg_hospital]( [hospital_id] [bigint] IDENTITY(1,1) NOT NULL, [hospital_code] [varchar](64) NOT NULL, - [hospital_name] [varchar](50) NOT NULL, + [hospital_name] [varchar](250) NOT NULL, [hospital_userinfo] [varchar](200) NULL, [status] [char](1) NOT NULL, [create_by] [varchar](64) NULL, @@ -246,7 +246,7 @@ begin CREATE TABLE [dbo].[reg_diagnosis]( [diag_id] [bigint] IDENTITY(1,1) NOT NULL, [diag_code] [varchar](64) NOT NULL, - [diag_name] [varchar](50) NOT NULL, + [diag_name] [varchar](250) NOT NULL, [diag_sort] [int] NOT NULL, [status] [char](1) NOT NULL, [create_by] [varchar](64) NULL, @@ -262,4 +262,37 @@ CREATE TABLE [dbo].[reg_diagnosis]( ALTER TABLE [dbo].[reg_diagnosis] ADD DEFAULT ('') FOR [create_by] ALTER TABLE [dbo].[reg_diagnosis] ADD DEFAULT ('') FOR [update_by] ALTER TABLE [dbo].[reg_diagnosis] ADD DEFAULT (NULL) FOR [remark] -end \ No newline at end of file +end + + + +if not exists(SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'reg_itemclass') +begin +CREATE TABLE [dbo].[reg_itemclass]( + [itemclass_id] [bigint] IDENTITY(1,1) NOT NULL, + [itemclass_code] [varchar](64) NOT NULL, + [itemclass_name] [varchar](250) NOT NULL, + [itemclass_sort] [int] NOT NULL, + [itemclass_tips][varchar](250) NULL, + [itemclass_bkcolor] [int] NULL, + [itemclass_yblx] [varchar](50) NULL, + [itemclass_printcnt][int] NULL, + [itemclass_kn] [int] NULL, + [status] [char](1) NOT NULL, + [create_by] [varchar](64) NULL, + [create_time] [datetime] NULL, + [update_by] [varchar](64) NULL, + [update_time] [datetime] NULL, + [remark] [varchar](500) NULL, + PRIMARY KEY CLUSTERED +( +[itemclass_id] ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] + ) ON [PRIMARY] +ALTER TABLE [dbo].[reg_itemclass] ADD DEFAULT ('') FOR [create_by] +ALTER TABLE [dbo].[reg_itemclass] ADD DEFAULT (0) FOR [itemclass_kn] +ALTER TABLE [dbo].[reg_itemclass] ADD DEFAULT (0) FOR [itemclass_bkcolor] +ALTER TABLE [dbo].[reg_itemclass] ADD DEFAULT (1) FOR [itemclass_printcnt] +ALTER TABLE [dbo].[reg_itemclass] ADD DEFAULT ('') FOR [update_by] +ALTER TABLE [dbo].[reg_itemclass] ADD DEFAULT (NULL) FOR [remark] +end diff --git a/transitPF/src/main/java/com/czlis/transitPF/controller/dict/ItemclassController.java b/transitPF/src/main/java/com/czlis/transitPF/controller/dict/ItemclassController.java new file mode 100644 index 0000000..de96654 --- /dev/null +++ b/transitPF/src/main/java/com/czlis/transitPF/controller/dict/ItemclassController.java @@ -0,0 +1,107 @@ +package com.czlis.transitPF.controller.dict; + +import com.czlis.common.annotation.Log; +import com.czlis.common.core.controller.BaseController; +import com.czlis.common.core.domain.AjaxResult; +import com.czlis.common.core.page.TableDataInfo; +import com.czlis.common.enums.BusinessType; +import com.czlis.common.utils.poi.ExcelUtil; +import com.czlis.transitPF.pojo.RegItemclass; +import com.czlis.transitPF.service.RegItemclassService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +@Api(tags = "区域检验中心-项目容器类别字典管理") +@RestController +@RequestMapping("/transitdict/itemclass") +@Slf4j +public class ItemclassController extends BaseController { + @Autowired + private RegItemclassService regItemclassService; + /** + * 获取容器类别列表 + */ + @ApiOperation("获取容器类别列表") + @GetMapping("/list") + public TableDataInfo list(RegItemclass post) { + startPage(); + List list = regItemclassService.selectItemclassList(post); + return getDataTable(list); + } + @ApiOperation("容器类别导出") + @Log(title = "容器类别导出", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, RegItemclass post) { + List list = regItemclassService.selectItemclassList(post); + ExcelUtil util = new ExcelUtil<>(RegItemclass.class); + util.exportExcel(response, list, "容器类别数据"); + } + + /** + * 根据容器类别编号获取详细信息 + */ + @ApiOperation("获取详细信息") + @GetMapping(value = "/{itemclassId}") + public AjaxResult getInfo(@PathVariable Long itemclassId) { + return success(regItemclassService.selectItemclassById(itemclassId)); + } + + /** + * 新增容器类别 + */ + @ApiOperation("新增容器类别") + @Log(title = "容器类别管理", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@Validated @RequestBody RegItemclass post) { + if (!regItemclassService.checkItemclassNameUnique(post)) { + return error("新增容器类别'" + post.getItemclassName() + "'失败,容器类别名称已存在"); + } else if (!regItemclassService.checkItemclassCodeUnique(post)) { + return error("新增容器类别'" + post.getItemclassName() + "'失败,容器类别编码已存在"); + } + post.setCreateBy(getUsername()); + return toAjax(regItemclassService.insertItemclass(post)); + } + + /** + * 修改容器类别 + */ + @ApiOperation("修改容器类别") + @Log(title = "容器类别管理", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@Validated @RequestBody RegItemclass post) { + if (!regItemclassService.checkItemclassNameUnique(post)) { + return error("修改容器类别'" + post.getItemclassName() + "'失败,容器类别名称已存在"); + } else if (!regItemclassService.checkItemclassCodeUnique(post)) { + return error("修改容器类别'" + post.getItemclassName() + "'失败,容器类别编码已存在"); + } + post.setUpdateBy(getUsername()); + return toAjax(regItemclassService.updateItemclass(post)); + } + + /** + * 删除容器类别 + */ + @ApiOperation("删除容器类别") + @Log(title = "容器类别管理", businessType = BusinessType.DELETE) + @DeleteMapping("/{itemclassIds}") + public AjaxResult remove(@PathVariable Long[] itemclassIds) { + return toAjax(regItemclassService.deleteItemclassByIds(itemclassIds)); + } + + /** + * 获取容器类别选择框列表 + */ + @ApiOperation("获取容器类别选择框列表") + @GetMapping("/optionselect") + public AjaxResult optionselect() { + List posts = regItemclassService.selectItemclassAll(); + return success(posts); + } +} diff --git a/transitPF/src/main/java/com/czlis/transitPF/mapper/RegItemclassMapper.java b/transitPF/src/main/java/com/czlis/transitPF/mapper/RegItemclassMapper.java new file mode 100644 index 0000000..d07926a --- /dev/null +++ b/transitPF/src/main/java/com/czlis/transitPF/mapper/RegItemclassMapper.java @@ -0,0 +1,84 @@ +package com.czlis.transitPF.mapper; + +import com.czlis.transitPF.pojo.RegItemclass; + +import java.util.List; + +public interface RegItemclassMapper { + /** + * 查询容器类别数据集合 + * + * @param Itemclass 容器类别信息 + * @return 容器类别数据集合 + */ + List selectItemclassList(RegItemclass Itemclass); + + /** + * 查询所有容器类别 + * + * @return 容器类别列表 + */ + List selectItemclassAll(); + + /** + * 通过容器类别ID查询容器类别信息 + * + * @param ItemclassId 容器类别ID + * @return 角色对象信息 + */ + RegItemclass selectItemclassById(Long ItemclassId); + + + // public List selectItemclassListByUserId(Long userId); + + + // public List selectItemclasssByUserName(String userName); + + /** + * 删除容器类别信息 + * + * @param ItemclassId 容器类别ID + * @return 结果 + */ + int deleteItemclassById(Long ItemclassId); + + /** + * 批量删除容器类别信息 + * + * @param ItemclassIds 需要删除的容器类别ID + * @return 结果 + */ + int deleteItemclassByIds(Long[] ItemclassIds); + + /** + * 修改容器类别信息 + * + * @param Itemclass 容器类别信息 + * @return 结果 + */ + int updateItemclass(RegItemclass Itemclass); + + /** + * 新增容器类别信息 + * + * @param Itemclass 容器类别信息 + * @return 结果 + */ + int insertItemclass(RegItemclass Itemclass); + + /** + * 校验容器类别名称 + * + * @param ItemclassName 容器类别名称 + * @return 结果 + */ + RegItemclass checkItemclassNameUnique(String ItemclassName); + + /** + * 校验容器类别编码 + * + * @param ItemclassCode 容器类别编码 + * @return 结果 + */ + RegItemclass checkItemclassCodeUnique(String ItemclassCode); +} diff --git a/transitPF/src/main/java/com/czlis/transitPF/pojo/RegItemclass.java b/transitPF/src/main/java/com/czlis/transitPF/pojo/RegItemclass.java new file mode 100644 index 0000000..9cd98bf --- /dev/null +++ b/transitPF/src/main/java/com/czlis/transitPF/pojo/RegItemclass.java @@ -0,0 +1,50 @@ +package com.czlis.transitPF.pojo; + +import com.czlis.common.annotation.Excel; +import com.czlis.common.core.domain.BaseEntity; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class RegItemclass extends BaseEntity { + private static final long serialVersionUID = 1L; + /** + * 容器类别序号 + */ + @Excel(name = "容器类别序号", cellType = Excel.ColumnType.NUMERIC) + private Long itemclassId; + /** + * 容器类别编码 + */ + @Excel(name = "容器类别编码") + private String itemclassCode; + + /** + * 容器类别名称 + */ + @Excel(name = "容器类别名称") + private String itemclassName; + /** + * 容器类别排序 + */ + @Excel(name = "排序") + private Long itemclassSort; + /** + * 状态(0正常 1停用) + */ + @Excel(name = "状态", readConverterExp = "0=正常,1=停用") + private String status; + @Excel(name = "试管名称") + private String itemclassTips; + @Excel(name = "试管颜色") + private String itemclassBkcolor; + @Excel(name = "默认样本类型") + private String itemclassYblx; + @Excel(name = "打印次数") + private String itemclassPrintcnt; + @Excel(name = "抗凝样本", readConverterExp = "0=否,1=是") + private String itemclassKn; +} diff --git a/transitPF/src/main/java/com/czlis/transitPF/service/RegItemclassService.java b/transitPF/src/main/java/com/czlis/transitPF/service/RegItemclassService.java new file mode 100644 index 0000000..67f9550 --- /dev/null +++ b/transitPF/src/main/java/com/czlis/transitPF/service/RegItemclassService.java @@ -0,0 +1,94 @@ +package com.czlis.transitPF.service; + +import com.czlis.transitPF.pojo.RegItemclass; + +import java.util.List; + +public interface RegItemclassService { + /** + * 查询容器类别信息集合 + * + * @param Itemclass 容器类别信息 + * @return 容器类别列表 + */ + List selectItemclassList(RegItemclass Itemclass); + + /** + * 查询所有容器类别 + * + * @return 容器类别列表 + */ + List selectItemclassAll(); + + /** + * 通过容器类别ID查询容器类别信息 + * + * @param ItemclassId 容器类别ID + * @return 角色对象信息 + */ + RegItemclass selectItemclassById(Long ItemclassId); + + /** + * 根据用户ID获取容器类别选择框列表 + * + * @param userId 用户ID + * @return 选中容器类别ID列表 + */ + List selectItemclassListByUserId(Long userId); + + /** + * 校验容器类别名称 + * + * @param Itemclass 容器类别信息 + * @return 结果 + */ + boolean checkItemclassNameUnique(RegItemclass Itemclass); + + /** + * 校验容器类别编码 + * + * @param Itemclass 容器类别信息 + * @return 结果 + */ + boolean checkItemclassCodeUnique(RegItemclass Itemclass); + + /** + * 通过容器类别ID查询容器类别使用数量 + * + * @param ItemclassId 容器类别ID + * @return 结果 + */ + int countUserItemclassById(Long ItemclassId); + + /** + * 删除容器类别信息 + * + * @param ItemclassId 容器类别ID + * @return 结果 + */ + int deleteItemclassById(Long ItemclassId); + + /** + * 批量删除容器类别信息 + * + * @param ItemclassIds 需要删除的容器类别ID + * @return 结果 + */ + int deleteItemclassByIds(Long[] ItemclassIds); + + /** + * 新增保存容器类别信息 + * + * @param Itemclass 容器类别信息 + * @return 结果 + */ + int insertItemclass(RegItemclass Itemclass); + + /** + * 修改保存容器类别信息 + * + * @param Itemclass 容器类别信息 + * @return 结果 + */ + int updateItemclass(RegItemclass Itemclass); +} diff --git a/transitPF/src/main/java/com/czlis/transitPF/service/impl/RegItemclassServiceImpl.java b/transitPF/src/main/java/com/czlis/transitPF/service/impl/RegItemclassServiceImpl.java new file mode 100644 index 0000000..f734fa2 --- /dev/null +++ b/transitPF/src/main/java/com/czlis/transitPF/service/impl/RegItemclassServiceImpl.java @@ -0,0 +1,156 @@ +package com.czlis.transitPF.service.impl; + +import com.czlis.common.constant.UserConstants; +import com.czlis.common.exception.ServiceException; +import com.czlis.common.utils.StringUtils; +import com.czlis.transitPF.mapper.RegItemclassMapper; +import com.czlis.transitPF.pojo.RegItemclass; +import com.czlis.transitPF.service.RegItemclassService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +@Slf4j +public class RegItemclassServiceImpl implements RegItemclassService { + @Autowired + RegItemclassMapper itemclassMapper; + + /** + * 查询容器类别信息集合 + * + * @param Itemclass 容器类别信息 + * @return 容器类别信息集合 + */ + @Override + public List selectItemclassList(RegItemclass Itemclass) { + return itemclassMapper.selectItemclassList(Itemclass); + } + + /** + * 查询所有容器类别 + * + * @return 容器类别列表 + */ + @Override + public List selectItemclassAll() { + return itemclassMapper.selectItemclassAll(); + } + + /** + * 通过容器类别ID查询容器类别信息 + * + * @param ItemclassId 容器类别ID + * @return 角色对象信息 + */ + @Override + public RegItemclass selectItemclassById(Long ItemclassId) { + return itemclassMapper.selectItemclassById(ItemclassId); + } + + /** + * 根据用户ID获取容器类别选择框列表 + * + * @param userId 用户ID + * @return 选中容器类别ID列表 + */ + @Override + public List selectItemclassListByUserId(Long userId) { + return null;//itemclassMapper.selectItemclassListByUserId(userId); + } + + /** + * 校验容器类别名称是否唯一 + * + * @param Itemclass 容器类别信息 + * @return 结果 + */ + @Override + public boolean checkItemclassNameUnique(RegItemclass Itemclass) { + Long ItemclassId = StringUtils.isNull(Itemclass.getItemclassId()) ? -1L : Itemclass.getItemclassId(); + RegItemclass info = itemclassMapper.checkItemclassNameUnique(Itemclass.getItemclassName()); + if (StringUtils.isNotNull(info) && info.getItemclassId().longValue() != ItemclassId.longValue()) { + return UserConstants.NOT_UNIQUE; + } + return UserConstants.UNIQUE; + } + + /** + * 校验容器类别编码是否唯一 + * + * @param Itemclass 容器类别信息 + * @return 结果 + */ + @Override + public boolean checkItemclassCodeUnique(RegItemclass Itemclass) { + Long ItemclassId = StringUtils.isNull(Itemclass.getItemclassId()) ? -1L : Itemclass.getItemclassId(); + RegItemclass info = itemclassMapper.checkItemclassCodeUnique(Itemclass.getItemclassCode()); + if (StringUtils.isNotNull(info) && info.getItemclassId().longValue() != ItemclassId.longValue()) { + return UserConstants.NOT_UNIQUE; + } + return UserConstants.UNIQUE; + } + + /** + * 通过容器类别ID查询容器类别使用数量 + * + * @param ItemclassId 容器类别ID + * @return 结果 + */ + @Override + public int countUserItemclassById(Long ItemclassId) { + return 0;//itemclassMapper.countUserItemclassById(ItemclassId); + } + + /** + * 删除容器类别信息 + * + * @param ItemclassId 容器类别ID + * @return 结果 + */ + @Override + public int deleteItemclassById(Long ItemclassId) { + return itemclassMapper.deleteItemclassById(ItemclassId); + } + + /** + * 批量删除容器类别信息 + * + * @param ItemclassIds 需要删除的容器类别ID + * @return 结果 + */ + @Override + public int deleteItemclassByIds(Long[] ItemclassIds) { + for (Long ItemclassId : ItemclassIds) { + RegItemclass Itemclass = selectItemclassById(ItemclassId); + if (countUserItemclassById(ItemclassId) > 0) { + throw new ServiceException(String.format("%1$s已分配,不能删除", Itemclass.getItemclassName())); + } + } + return itemclassMapper.deleteItemclassByIds(ItemclassIds); + } + + /** + * 新增保存容器类别信息 + * + * @param Itemclass 容器类别信息 + * @return 结果 + */ + @Override + public int insertItemclass(RegItemclass Itemclass) { + return itemclassMapper.insertItemclass(Itemclass); + } + + /** + * 修改保存容器类别信息 + * + * @param Itemclass 容器类别信息 + * @return 结果 + */ + @Override + public int updateItemclass(RegItemclass Itemclass) { + return itemclassMapper.updateItemclass(Itemclass); + } +} diff --git a/transitPF/src/main/resources/mapper/RegDiagnosisMapper.xml b/transitPF/src/main/resources/mapper/RegDiagnosisMapper.xml index 27f3ed7..bb7a32b 100644 --- a/transitPF/src/main/resources/mapper/RegDiagnosisMapper.xml +++ b/transitPF/src/main/resources/mapper/RegDiagnosisMapper.xml @@ -16,13 +16,13 @@ - + select diag_id, diag_code, diag_name, diag_Sort, status, create_by, create_time, remark from Reg_Diagnosis - + AND diag_code like '%'+#{diagCode}+'%' @@ -34,32 +34,34 @@ AND diag_name like '%'+#{diagName}+'%' + order by diag_Sort - + + order by diag_Sort - + where diag_id = #{diagId} - select top 1 diag_id, diag_code, diag_name, diag_Sort, status, create_by, create_time, remark from Reg_Diagnosis where diag_name=#{diagName} - select top 1 diag_id, diag_code, diag_name, diag_Sort, status, create_by, create_time, remark from Reg_Diagnosis where diag_code=#{diagCode} - + update Reg_Diagnosis diag_code = #{diagCode}, @@ -73,7 +75,7 @@ where diag_id = #{diagId} - + insert into Reg_Diagnosis( diag_id, diag_code, @@ -95,11 +97,11 @@ ) - + delete from Reg_Diagnosis where diag_id = #{diagId} - + delete from Reg_Diagnosis where diag_id in #{diagId} diff --git a/transitPF/src/main/resources/mapper/RegItemclassMapper.xml b/transitPF/src/main/resources/mapper/RegItemclassMapper.xml new file mode 100644 index 0000000..2416124 --- /dev/null +++ b/transitPF/src/main/resources/mapper/RegItemclassMapper.xml @@ -0,0 +1,133 @@ + + + + + + + + + + + + + + + + + + + + + + + select Itemclass_id, Itemclass_code, Itemclass_name, Itemclass_sort, status, create_by, create_time, remark, + itemclass_tips,itemclass_bkcolor,itemclass_yblx,itemclass_printcnt,itemclass_kn + from Reg_Itemclass + + + + + + + + + + + + + + + + update Reg_Itemclass + + Itemclass_code = #{ItemclassCode}, + Itemclass_name = #{ItemclassName}, + Itemclass_tips = #{ItemclassTips}, + itemclass_yblx = #{itemclassYblx}, + Itemclass_sort = #{ItemclassSort}, + Itemclass_Bkcolor = #{ItemclassBkcolor}, + Itemclass_Printcnt = #{ItemclassPrintcnt}, + Itemclass_Kn = #{ItemclassKn}, + status = #{status}, + remark = #{remark}, + update_by = #{updateBy}, + update_time = getdate() + + where Itemclass_id = #{ItemclassId} + + + + insert into Reg_Itemclass( + Itemclass_id, + Itemclass_code, + Itemclass_name, + Itemclass_Tips, + itemclass_Yblx, + Itemclass_Sort, + Itemclass_Bkcolor, + Itemclass_Printcnt, + Itemclass_Kn, + status, + remark, + create_by, + create_time + )values( + #{ItemclassId}, + #{ItemclassCode}, + #{ItemclassName}, + #{ItemclassTips}, + #{itemclassYblx}, + #{ItemclassSort}, + #{ItemclassBkcolor}, + #{ItemclassPrintcnt}, + #{ItemclassKn}, + #{status}, + #{remark}, + #{createBy}, + getdate() + ) + + + + delete from Reg_Itemclass where Itemclass_id = #{ItemclassId} + + + + delete from Reg_Itemclass where Itemclass_id in + + #{ItemclassId} + + + + + \ No newline at end of file