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