From aded6d51dd8cc3b7d2b5a9a0be54378c5b2ee924 Mon Sep 17 00:00:00 2001 From: luodangjia <luodangjia> Date: 星期三, 01 一月 2025 15:11:15 +0800 Subject: [PATCH] merge --- medicalWaste-admin/src/main/java/com/sinata/web/controller/applet/AppDepartmentController.java | 10 + medicalWaste-admin/src/main/java/com/sinata/web/controller/applet/AppMwCheckoutRecordController.java | 2 medicalWaste-framework/src/main/java/com/sinata/framework/config/SecurityConfig.java | 2 medicalWaste-system/src/main/java/com/sinata/system/service/impl/SysDepartmentServiceImpl.java | 23 +++ medicalWaste-admin/src/main/java/com/sinata/web/controller/applet/AppFileController.java | 50 ++++++++ medicalWaste-admin/src/main/java/com/sinata/web/controller/applet/AppMwCollectRecordController.java | 20 +++ medicalWaste-system/src/main/java/com/sinata/system/service/SysDepartmentService.java | 1 medicalWaste-admin/src/main/java/com/sinata/web/controller/applet/AppletDictDataController.java | 230 ++++++++++++++++++++++++++++++++++++++ medicalWaste-system/src/main/java/com/sinata/system/domain/MwApplication.java | 2 medicalWaste-system/src/main/resources/mapper/system/MwCollectRecordMapper.xml | 8 10 files changed, 339 insertions(+), 9 deletions(-) diff --git a/medicalWaste-admin/src/main/java/com/sinata/web/controller/applet/AppDepartmentController.java b/medicalWaste-admin/src/main/java/com/sinata/web/controller/applet/AppDepartmentController.java index d87f1e5..16f31b0 100644 --- a/medicalWaste-admin/src/main/java/com/sinata/web/controller/applet/AppDepartmentController.java +++ b/medicalWaste-admin/src/main/java/com/sinata/web/controller/applet/AppDepartmentController.java @@ -54,9 +54,15 @@ @PostMapping("/regionTree") @ApiImplicitParam(name = "keyword", value = "关键字", required = false) public R<List<SysDepartmentVO>> getRegionTree(@RequestParam(required = false) String keyword) { - return R.ok(sysDepartmentService.getRegionTree(keyword)); + return R.ok(sysDepartmentService.getRegionTree1(keyword)); } + @ApiOperation("获取单位详情") + @PostMapping("/detail") + public R<SysDepartment> getRegionTree(@RequestParam(required = true) Long id) { + return R.ok(sysDepartmentService.getById(id)); + + } /** * 获取区域树 * @@ -76,7 +82,7 @@ for (SysDepartment sysDepartment : list) { //获取医院暂存间信息 MwStagingRoom one = roomService.lambdaQuery().eq(MwStagingRoom::getDepartmentId, sysDepartment.getId()).one(); - if (one != null) { + if (one == null) { continue; } //获取存了多少数量 diff --git a/medicalWaste-admin/src/main/java/com/sinata/web/controller/applet/AppFileController.java b/medicalWaste-admin/src/main/java/com/sinata/web/controller/applet/AppFileController.java new file mode 100644 index 0000000..e0ff2ef --- /dev/null +++ b/medicalWaste-admin/src/main/java/com/sinata/web/controller/applet/AppFileController.java @@ -0,0 +1,50 @@ +package com.sinata.web.controller.applet; + +import com.sinata.common.core.domain.R; +import com.sinata.common.exception.ServiceException; +import com.sinata.system.service.OssService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestPart; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.multipart.MultipartFile; + +import java.io.IOException; +import java.util.Objects; + +/** + * @author mitao + * @date 2024/12/23 + */ +@Api(tags = {"文件上传接口"}) +@RestController +@RequiredArgsConstructor +@RequestMapping("/applet/file") +public class AppFileController { + private final OssService ossService; + + /** + * 上传文件 + * + * @param file + * @return + */ + @ApiOperation(value = "上传文件") + @PostMapping("/upload") + public R<String> upload(@RequestPart("file") MultipartFile file) { + + if (Objects.isNull(file)) { + throw new ServiceException("文件不能为空"); + } + String fileUrl; + try { + fileUrl = ossService.uploadFile(file); + } catch (IOException e) { + throw new RuntimeException(e); + } + return R.ok(fileUrl); + } +} diff --git a/medicalWaste-admin/src/main/java/com/sinata/web/controller/applet/AppMwCheckoutRecordController.java b/medicalWaste-admin/src/main/java/com/sinata/web/controller/applet/AppMwCheckoutRecordController.java index 83fb4b0..b0159f8 100644 --- a/medicalWaste-admin/src/main/java/com/sinata/web/controller/applet/AppMwCheckoutRecordController.java +++ b/medicalWaste-admin/src/main/java/com/sinata/web/controller/applet/AppMwCheckoutRecordController.java @@ -96,7 +96,7 @@ return R.ok(mwCheckoutRecordService.totalUp2(date1,date2,sysUser.getUserId())); } - @ApiOperation(value = "接收统计下",tags = "处置人员") + @ApiOperation(value = "处置统下",tags = "处置人员") @PostMapping("/end/record") public R<List<CheckOutDto>> record2(@ApiParam("日期1") LocalDate date1,@ApiParam("日期2")LocalDate date2) { SysUser sysUser = SecurityUtils.getLoginUser().getUser(); diff --git a/medicalWaste-admin/src/main/java/com/sinata/web/controller/applet/AppMwCollectRecordController.java b/medicalWaste-admin/src/main/java/com/sinata/web/controller/applet/AppMwCollectRecordController.java index b3794e3..d31c0e8 100644 --- a/medicalWaste-admin/src/main/java/com/sinata/web/controller/applet/AppMwCollectRecordController.java +++ b/medicalWaste-admin/src/main/java/com/sinata/web/controller/applet/AppMwCollectRecordController.java @@ -52,13 +52,29 @@ private final MwDisposalRecordItemService disposalRecordItemService; private final MwDisposalHandleRecordService disposalHandleRecordService; private final MwDisposalHandleRecordItemService disposalHandleRecordItemService; + private final MwStagingRoomService roomService; @ApiOperation("新增医废记录") @PostMapping("/add") public R<?> add(@Valid @RequestBody MwCollectRecord mwCollectRecord) { + SysUser sysUser = SecurityUtils.getLoginUser().getUser(); + MwBox one = boxService.lambdaQuery().eq(MwBox::getBoxNumber, mwCollectRecord.getBoxNumber()).one(); mwCollectRecord.setBoxId(one.getId()); + MwStagingRoom one1 = roomService.lambdaQuery().eq(MwStagingRoom::getDepartmentId, sysUser.getDepartmentId()).one(); + if (one1==null){ + return R.fail("当前单位没有暂存间"); + } + mwCollectRecord.setStagingRoomId(one1.getId()); + mwCollectRecord.setDepartmentId(sysUser.getDepartmentId()); + + // 创建一个随机数生成器实例 + Random random = new Random(); + + // 生成一个6位数范围内的随机整数(100000 到 999999) + int randomNumber = 10000000 + random.nextInt(90000000); + mwCollectRecord.setMedicalWasteNumber(String.valueOf(randomNumber)); collectRecordService.save(mwCollectRecord); return R.ok(); } @@ -160,7 +176,9 @@ public R<List<HospitalCollectTotalUpDto>> tanscollecttotal3(String boxNum) { SysUser sysUser = SecurityUtils.getLoginUser().getUser(); MwCollectRecord one = collectRecordService.lambdaQuery().eq(MwCollectRecord::getBoxNumber, boxNum).eq(MwCollectRecord::getStatus, 2).last("limit 1").one(); - + if (one==null){ + return R.ok(); + } //先获取医院ids List<MwCollectRecord> list = collectRecordService.lambdaQuery().eq(MwCollectRecord::getStatus,2).eq(MwCollectRecord::getCheckoutUserId, one.getCheckoutUserId()).groupBy(MwCollectRecord::getDepartmentId).list(); //循环医院,然后放入 diff --git a/medicalWaste-admin/src/main/java/com/sinata/web/controller/applet/AppletDictDataController.java b/medicalWaste-admin/src/main/java/com/sinata/web/controller/applet/AppletDictDataController.java new file mode 100644 index 0000000..ead5821 --- /dev/null +++ b/medicalWaste-admin/src/main/java/com/sinata/web/controller/applet/AppletDictDataController.java @@ -0,0 +1,230 @@ +package com.sinata.web.controller.applet; + +import com.sinata.common.annotation.Log; +import com.sinata.common.core.controller.BaseController; +import com.sinata.common.core.domain.AjaxResult; +import com.sinata.common.core.domain.R; +import com.sinata.common.core.domain.entity.SysDictData; +import com.sinata.common.core.page.TableDataInfo; +import com.sinata.common.entity.PageDTO; +import com.sinata.common.enums.BusinessType; +import com.sinata.common.utils.StringUtils; +import com.sinata.common.utils.poi.ExcelUtil; +import com.sinata.system.domain.dto.SysDictDataDTO; +import com.sinata.system.domain.query.KeyWordQuery; +import com.sinata.system.domain.vo.SysDictDataVO; +import com.sinata.system.service.ISysDictDataService; +import com.sinata.system.service.ISysDictTypeService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.util.ArrayList; +import java.util.List; + +/** + * 数据字典信息 + * + * @author ruoyi + */ +@Api(tags = {"数据字典相关接口"}) +@RestController +@Validated +@RequestMapping("/applet/system/dict/data") +public class AppletDictDataController extends BaseController +{ + @Autowired + private ISysDictDataService dictDataService; + + @Autowired + private ISysDictTypeService dictTypeService; + + /** + * 数据字典分页列表 + * + * @param page + * @return + */ + @ApiOperation("数据字典分页列表") + @PostMapping("/page") + public R<PageDTO<SysDictDataVO>> page(@Valid @RequestBody KeyWordQuery query) { + return R.ok(dictDataService.pageList(query)); + } + + /** + * 新增数据字典 + * + * @return + */ + @ApiOperation("保存数据字典信息") + @PostMapping("/save") + public R<?> add(@Valid @RequestBody SysDictDataDTO dto) { + dictDataService.save(dto); + return R.ok(); + } + + /** + * 删除 + * + * @param dictCode + * @return + */ + @ApiOperation("删除") + @DeleteMapping("/{dictCode}") + public R<?> remove(@ApiParam(name = "dictCode", value = "数据字典主键", required = true) @PathVariable("dictCode") Long dictCode) { + dictDataService.removeById(dictCode); + return R.ok(); + } + + /** + * 医废类型列表 + * + * @return + */ + @ApiOperation("医废类型列表") + @GetMapping("/medicalWasteTypeList") + public R<List<SysDictDataVO>> medicalWasteTypeList() { + return R.ok(dictDataService.medicalWasteTypeList()); + } + + /** + * 器具类型列表 + * + * @return + */ + @ApiOperation("器具类型列表") + @GetMapping("/equipmentTypeList") + public R<List<SysDictDataVO>> equipmentTypeList() { + return R.ok(dictDataService.equipmentTypeList()); + } + + /** + * 规章制度类型列表 + * + * @return + */ + @ApiOperation("规章制度类型列表") + @GetMapping("/regulationsTypeList") + public R<List<SysDictDataVO>> regulationsTypeList() { + return R.ok(dictDataService.regulationsTypeList()); + } + + /** + * 作业类型 + * + * @return + */ + @ApiOperation("作业类型") + @GetMapping("/workTypeList") + public R<List<SysDictDataVO>> workTypeList() { + return R.ok(dictDataService.workTypeList()); + } + + /** + * 医疗机构级别 + * + * @return + */ + @ApiOperation("医疗机构级别") + @GetMapping("/institutionLevelList") + public R<List<SysDictDataVO>> institutionLevelList() { + return R.ok(dictDataService.institutionLevelList()); + } + + /** + * 医疗机构性质 + * + * @return + */ + @ApiOperation("医疗机构性质") + @GetMapping("/institutionTypeList") + public R<List<SysDictDataVO>> institutionTypeList() { + return R.ok(dictDataService.institutionTypeList()); + } + + + @PreAuthorize("@ss.hasPermi('system:dict:list')") + @GetMapping("/list") + public TableDataInfo list(SysDictData dictData) + { + startPage(); + List<SysDictData> list = dictDataService.selectDictDataList(dictData); + return getDataTable(list); + } + + @Log(title = "字典数据", businessType = BusinessType.EXPORT) + @PreAuthorize("@ss.hasPermi('system:dict:export')") + @PostMapping("/export") + public void export(HttpServletResponse response, SysDictData dictData) + { + List<SysDictData> list = dictDataService.selectDictDataList(dictData); + ExcelUtil<SysDictData> util = new ExcelUtil<SysDictData>(SysDictData.class); + util.exportExcel(response, list, "字典数据"); + } + + /** + * 查询字典数据详细 + */ + @PreAuthorize("@ss.hasPermi('system:dict:query')") + @GetMapping(value = "/{dictCode}") + public AjaxResult getInfo(@PathVariable Long dictCode) + { + return success(dictDataService.selectDictDataById(dictCode)); + } + + /** + * 根据字典类型查询字典数据信息 + */ + @GetMapping(value = "/type/{dictType}") + public AjaxResult dictType(@PathVariable String dictType) + { + List<SysDictData> data = dictTypeService.selectDictDataByType(dictType); + if (StringUtils.isNull(data)) + { + data = new ArrayList<SysDictData>(); + } + return success(data); + } + + /** + * 新增字典类型 + */ + @PreAuthorize("@ss.hasPermi('system:dict:add')") + @Log(title = "字典数据", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@Validated @RequestBody SysDictData dict) + { + dict.setCreateBy(getUsername()); + return toAjax(dictDataService.insertDictData(dict)); + } + + /** + * 修改保存字典类型 + */ + @PreAuthorize("@ss.hasPermi('system:dict:edit')") + @Log(title = "字典数据", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@Validated @RequestBody SysDictData dict) + { + dict.setUpdateBy(getUsername()); + return toAjax(dictDataService.updateDictData(dict)); + } + + /** + * 删除字典类型 + */ + @PreAuthorize("@ss.hasPermi('system:dict:remove')") + @Log(title = "字典类型", businessType = BusinessType.DELETE) + @DeleteMapping("/{dictCodes}") + public AjaxResult remove(@PathVariable Long[] dictCodes) + { + dictDataService.deleteDictDataByIds(dictCodes); + return success(); + } +} diff --git a/medicalWaste-framework/src/main/java/com/sinata/framework/config/SecurityConfig.java b/medicalWaste-framework/src/main/java/com/sinata/framework/config/SecurityConfig.java index c69e72f..0c9db9c 100644 --- a/medicalWaste-framework/src/main/java/com/sinata/framework/config/SecurityConfig.java +++ b/medicalWaste-framework/src/main/java/com/sinata/framework/config/SecurityConfig.java @@ -111,7 +111,7 @@ .authorizeHttpRequests((requests) -> { permitAllUrl.getUrls().forEach(url -> requests.antMatchers(url).permitAll()); // 对于登录login 注册register 验证码captchaImage 允许匿名访问 - requests.antMatchers("/backend/login","/applet/login", "/register", "/captchaImage").permitAll() + requests.antMatchers("/backend/login","/applet/file/upload","/applet/sysDepartment/regionTree","/applet/getCode","/applet/login", "/register", "/captchaImage").permitAll() // 静态资源,可匿名访问 .antMatchers(HttpMethod.GET, "/", "/msg", "/**/*.html", "/**/*.css", "/**/*.js", "/profile/**").permitAll() .antMatchers("/swagger-ui.html", "/swagger-resources/**", "/webjars/**", "/*/api-docs", "/druid/**").permitAll() diff --git a/medicalWaste-system/src/main/java/com/sinata/system/domain/MwApplication.java b/medicalWaste-system/src/main/java/com/sinata/system/domain/MwApplication.java index b4270fe..4d00af4 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/domain/MwApplication.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/domain/MwApplication.java @@ -77,6 +77,8 @@ @ApiModelProperty("审核意见") @TableField("AUDIT_OPINION") private String auditOpinion; + @TableField(exist = false) + private String code; } diff --git a/medicalWaste-system/src/main/java/com/sinata/system/service/SysDepartmentService.java b/medicalWaste-system/src/main/java/com/sinata/system/service/SysDepartmentService.java index e88b4a2..55ff390 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/service/SysDepartmentService.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/service/SysDepartmentService.java @@ -45,6 +45,7 @@ * @return */ List<SysDepartmentVO> getRegionTree(String keyword); + List<SysDepartmentVO> getRegionTree1(String keyword); /** * 当前登录用户所在区域 diff --git a/medicalWaste-system/src/main/java/com/sinata/system/service/impl/SysDepartmentServiceImpl.java b/medicalWaste-system/src/main/java/com/sinata/system/service/impl/SysDepartmentServiceImpl.java index 2c02fab..556c15a 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/service/impl/SysDepartmentServiceImpl.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/service/impl/SysDepartmentServiceImpl.java @@ -1,9 +1,11 @@ package com.sinata.system.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.sinata.common.constant.CacheConstants; +import com.sinata.common.core.domain.entity.SysUser; import com.sinata.common.entity.PageDTO; import com.sinata.common.exception.ServiceException; import com.sinata.common.utils.BeanUtils; @@ -138,6 +140,27 @@ } return root; } + @Override + public List<SysDepartmentVO> getRegionTree1(String keyword) { + SysUser sysUser = SecurityUtils.getLoginUser().getUser(); + + List<SysDepartmentVO> root = new ArrayList<>(); + SysDepartment sysDepartment = this.baseMapper.selectById(sysUser.getDepartmentId()); + SysDepartment currentDepartment = this.baseMapper.selectById(sysDepartment.getParentId()); + if (Objects.isNull(currentDepartment)) { + return root; + } + if (!currentDepartment.getOrgType().equals(DepartmentEnum.REGION.getCode())) { + return root; + } + Map<Long, List<SysDepartment>> childrenMap = getChildrenDepartmentByOrgType(currentDepartment, Collections.singletonList(DepartmentEnum.REGION.getCode())); + SysDepartmentVO sysDepartmentVO = fillChildrenTreeModel(currentDepartment, childrenMap); + root.add(sysDepartmentVO); + if (StringUtils.isNotBlank(keyword)) { + treeMatch(root, keyword); + } + return root; + } /** * 获取当前登录用户所属区域 diff --git a/medicalWaste-system/src/main/resources/mapper/system/MwCollectRecordMapper.xml b/medicalWaste-system/src/main/resources/mapper/system/MwCollectRecordMapper.xml index 75a58d5..d023b75 100644 --- a/medicalWaste-system/src/main/resources/mapper/system/MwCollectRecordMapper.xml +++ b/medicalWaste-system/src/main/resources/mapper/system/MwCollectRecordMapper.xml @@ -212,9 +212,9 @@ <select id="getGroup" resultType="com.sinata.system.domain.dto.CollectDto"> SELECT BOX_NUMBER as boxNumber,WASTE_TYPE as wasteType,COUNT(1) as num ,sum(WEIGHT) as weight,MAX(COLLECT_TIME) as lastTime from MEDICAL_WASTE.MW_COLLECT_RECORD <where> - STATUS = 2 AND DEPARTMENT_ID = #{departmentId} + STATUS = 1 AND DEPARTMENT_ID = #{departmentId} <if test="boxNumber != null and boxNumber != ''"> - and boxNumber like concat('%',#{boxNumber},'%') + and BOX_NUMBER like concat('%',#{boxNumber},'%') </if> </where> @@ -226,7 +226,7 @@ <where> STATUS = 2 AND DEPARTMENT_ID = #{departmentId} <if test="boxNumber != null and boxNumber != ''"> - and boxNumber like concat('%',#{boxNumber},'%') + and BOX_NUMBER like concat('%',#{boxNumber},'%') </if> </where> GROUP BY BOX_ID @@ -242,7 +242,7 @@ <where> STATUS = #{status} AND DEPARTMENT_ID = #{departmentId} <if test="boxNumber != null and boxNumber != ''"> - and boxNumber like concat('%',#{boxNumber},'%') + and BOX_NUMBER like concat('%',#{boxNumber},'%') </if> </where> GROUP BY BOX_ID -- Gitblit v1.7.1