zjh
2025-04-24 672ce84d5ce6545a0e81709ea736c69cbbef8c1a
ltkj-admin/src/main/java/com/ltkj/web/config/captcha/CommonController.java
@@ -2,13 +2,21 @@
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.ltkj.common.core.domain.R;
import com.ltkj.common.core.domain.entity.SysDictData;
import com.ltkj.common.utils.SnowFlake;
import com.ltkj.common.utils.uuid.UUID;
import com.ltkj.hosp.domain.SysAttachment;
import com.ltkj.hosp.service.ISysAttachmentService;
import com.ltkj.system.service.ISysDictDataService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
@@ -41,6 +49,9 @@
    @Autowired
    private ServerConfig serverConfig;
    @Value("${path.xdtfilePath}")
    private String value;
    private static final String FILE_DELIMETER = ",";
    @Value("${photoPath}")
@@ -51,6 +62,10 @@
    @Value("${ltkj.profile}")
    String path;
    @Autowired
    private ISysAttachmentService sysAttachmentService;
    @Autowired
    private ISysDictDataService sysDictDataService;
    /**
@@ -80,8 +95,8 @@
    }
    /**
    *   重新写的上传图片   适用于体检套餐
    */
     *   重新写的上传图片   适用于体检套餐
     */
    @PostMapping("/packageUpload")
    public AjaxResult packageUpload(@RequestBody MultipartFile file) {
        String fileName = file.getOriginalFilename();
@@ -107,7 +122,7 @@
        ajax.put("originalFilename", file.getOriginalFilename());
        return ajax;
    }
    /**
     * 通用上传请求(单个)
     */
@@ -132,6 +147,55 @@
        }
    }
    @PostMapping("/uploadImgExe")
    @ApiOperation(value = "EXE程序循环读取图片上传")
    public AjaxResult uploadImgExe(@RequestPart("file") MultipartFile file,@RequestParam("val")String dictVal,@RequestParam("ip")String ip){
        try {
            // 上传文件路径
            String filePath = ltkjConfig.getUploadPath();
            // 上传并返回新文件名称
            String fileName = FileUploadUtils.upload(filePath, file);
            String url = serverConfig.getUrl() + fileName;
            AjaxResult ajax = AjaxResult.success();
            ajax.put("url", url);
            //ajax.put("filePath", path+fileName);
            ajax.put("fileName", fileName);
            final String newFileName = FileUtils.getName(fileName);
            ajax.put("newFileName", newFileName);
            ajax.put("originalFilename", file.getOriginalFilename());
            SysAttachment sysAttachment = new SysAttachment();
            sysAttachment.setId(SnowFlake.getInstance().nextId());
            sysAttachment.setFileName(newFileName);
            sysAttachment.setFilePath(fileName);
            sysAttachment.setUrl(url);
            sysAttachment.setSysDictVal(dictVal);
            sysAttachment.setIp(ip);
            final Map<String, String> map = FileUploadUtils.getFileSize(file);
            sysAttachment.setFileSize(map.get("fileSizeBytes"));
            sysAttachment.setFileSizeMb(map.get("fileSizeMB"));
            sysAttachment.setFileSizeGb(map.get("fileSizeGB"));
            sysAttachmentService.insertSysAttachment(sysAttachment);
            return ajax;
        } catch (Exception e) {
            e.printStackTrace();
            return AjaxResult.error(e.getMessage());
        }
    }
    @GetMapping("/listExeVal")
    public AjaxResult listExeDictVal(){
        LambdaQueryWrapper<SysDictData> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(SysDictData::getDictType,"sys_exe_img_type");
        final List<SysDictData> list = sysDictDataService.list(queryWrapper);
        ArrayList<HashMap<String, String>> hashMaps = new ArrayList<>();
        for (SysDictData sysDictData : list) {
            HashMap<String, String> hashMap = new HashMap<>();
            hashMap.put("label",sysDictData.getDictLabel());
            hashMap.put("value",sysDictData.getDictValue());
            hashMaps.add(hashMap);
        }
        return AjaxResult.success().put("data",hashMaps);
    }
    @GetMapping("/uploadFile")
    @ApiOperation(value = "通用文件上传base64")
@@ -213,4 +277,33 @@
        }
        return AjaxResult.success("删除成功");
    }
    /**
     * 心电图报告上传图片方法
     */
    @PostMapping("/uploadXdtFile")
    @ApiOperation(value = "心电图报告上传图片方法")
    public AjaxResult uploadXdtFile(@ApiParam("文件") @RequestPart("file") MultipartFile file,
                                    @ApiParam("体检号") String tjh,@ApiParam("项目id") String proId) throws Exception {
        try {
            // 上传文件路径
            String filePath = value + File.separator;
            String outputFileName = tjh +"_" +proId;
            // 上传并返回新文件名称
            String fileName = FileUploadUtils.upload(filePath,outputFileName, file);
            String url = filePath + fileName;
            Path path = Paths.get(url);
            byte[] data = Files.readAllBytes(path);
            String base64 = Base64.getEncoder().encodeToString(data);
            AjaxResult ajax = AjaxResult.success();
            ajax.put("url", url);
            ajax.put("fileName", fileName);
            ajax.put("base64", base64);
            return ajax;
        } catch (Exception e) {
            return AjaxResult.error(e.getMessage());
        }
    }
}