luodangjia
2025-01-01 aded6d51dd8cc3b7d2b5a9a0be54378c5b2ee924
merge
8个文件已修改
2个文件已添加
348 ■■■■■ 已修改文件
medicalWaste-admin/src/main/java/com/sinata/web/controller/applet/AppDepartmentController.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
medicalWaste-admin/src/main/java/com/sinata/web/controller/applet/AppFileController.java 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
medicalWaste-admin/src/main/java/com/sinata/web/controller/applet/AppMwCheckoutRecordController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
medicalWaste-admin/src/main/java/com/sinata/web/controller/applet/AppMwCollectRecordController.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
medicalWaste-admin/src/main/java/com/sinata/web/controller/applet/AppletDictDataController.java 230 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
medicalWaste-framework/src/main/java/com/sinata/framework/config/SecurityConfig.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
medicalWaste-system/src/main/java/com/sinata/system/domain/MwApplication.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
medicalWaste-system/src/main/java/com/sinata/system/service/SysDepartmentService.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
medicalWaste-system/src/main/java/com/sinata/system/service/impl/SysDepartmentServiceImpl.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
medicalWaste-system/src/main/resources/mapper/system/MwCollectRecordMapper.xml 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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;
            }
            //获取存了多少数量
medicalWaste-admin/src/main/java/com/sinata/web/controller/applet/AppFileController.java
New file
@@ -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);
    }
}
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();
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();
        //循环医院,然后放入
medicalWaste-admin/src/main/java/com/sinata/web/controller/applet/AppletDictDataController.java
New file
@@ -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();
    }
}
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()
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;
}
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);
    /**
     * 当前登录用户所在区域
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;
    }
    /**
     * 获取当前登录用户所属区域
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